171 lines
4.8 KiB
C#
171 lines
4.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
|
|
|
namespace EgtBEAMWALL.DataLayer.Controllers
|
|
{
|
|
public class RawPartController : IDisposable
|
|
{
|
|
private DatabaseContext dbCtx;
|
|
|
|
public RawPartController()
|
|
{
|
|
// Initialize database context
|
|
dbCtx = new DatabaseContext();
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
// Clear database context
|
|
dbCtx.Dispose();
|
|
}
|
|
/// <summary>
|
|
/// Get record by RawPartDbId
|
|
/// </summary>
|
|
/// <param name="RawPartDbId"></param>
|
|
/// <returns></returns>
|
|
public RawPartModel FindByRawPartDbId(int RawPartDbId)
|
|
{
|
|
return dbCtx
|
|
.RawPartList
|
|
.Where(x => x.RawPartDbId == RawPartDbId)
|
|
.SingleOrDefault();
|
|
}
|
|
/// <summary>
|
|
/// Get record by RawPartId
|
|
/// </summary>
|
|
/// <param name="RawPartId"></param>
|
|
/// <returns></returns>
|
|
public RawPartModel FindByRawPartId(int RawPartId)
|
|
{
|
|
return dbCtx
|
|
.RawPartList
|
|
.Where(x => x.RawPartId == RawPartId)
|
|
.SingleOrDefault();
|
|
}
|
|
/// <summary>
|
|
/// Get paginated data from DB (ASC ordered)
|
|
/// </summary>
|
|
/// <param name="RawPartDbIdStart"></param>
|
|
/// <param name="numRecord"></param>
|
|
/// <returns></returns>
|
|
public List<RawPartModel> GetPaginatedAsc(int RawPartDbIdStart, int numRecord)
|
|
{
|
|
int numEnd = RawPartDbIdStart - numRecord;
|
|
// check numEnd
|
|
if (numEnd < 0)
|
|
numEnd = 0;
|
|
// retrieve
|
|
return dbCtx
|
|
.RawPartList
|
|
.Where(x => x.RawPartDbId <= RawPartDbIdStart)
|
|
.OrderBy(x => x.RawPartDbId)
|
|
.Take(numRecord)
|
|
.ToList();
|
|
}
|
|
/// <summary>
|
|
/// Get paginated data from DB (DESC ordered)
|
|
/// </summary>
|
|
/// <param name="PartDbIdStart"></param>
|
|
/// <param name="numRecord"></param>
|
|
/// <returns></returns>
|
|
public List<RawPartModel> GetPaginatedDesc(int PartDbIdStart, int numRecord)
|
|
{
|
|
int numEnd = PartDbIdStart - numRecord;
|
|
// check numEnd
|
|
if (numEnd < 0)
|
|
numEnd = 0;
|
|
// retrieve
|
|
return dbCtx
|
|
.RawPartList
|
|
.Where(x => x.RawPartDbId <= PartDbIdStart)
|
|
.OrderByDescending(x => x.RawPartDbId)
|
|
.Take(numRecord)
|
|
.ToList();
|
|
}
|
|
/// <summary>
|
|
/// Get filtered data by RawPartectId (ASC ordered)
|
|
/// </summary>
|
|
/// <param name="ProdDbId"></param>
|
|
/// <returns></returns>
|
|
public List<RawPartModel> GetByProdAsc(int ProdDbId)
|
|
{
|
|
// retrieve
|
|
return dbCtx
|
|
.RawPartList
|
|
.Where(x => x.ProdDbId == ProdDbId)
|
|
.OrderBy(x => x.ProdDbId)
|
|
.ToList();
|
|
}
|
|
/// <summary>
|
|
/// Get filtered data by RawPartectId (DESC ordered)
|
|
/// </summary>
|
|
/// <param name="ProdDbId"></param>
|
|
/// <returns></returns>
|
|
public List<RawPartModel> GetByProdDesc(int ProdDbId)
|
|
{
|
|
// retrieve
|
|
return dbCtx
|
|
.RawPartList
|
|
.Where(x => x.ProdDbId == ProdDbId)
|
|
.OrderByDescending(x => x.ProdDbId)
|
|
.ToList();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Create record on DB
|
|
/// </summary>
|
|
/// <param name="newRawPartId"></param>
|
|
/// <param name="description"></param>
|
|
/// <returns></returns>
|
|
public RawPartModel Create(int newRawPartId, string description)
|
|
{
|
|
RawPartModel newRawPart = new RawPartModel() { RawPartId=newRawPartId, Description=description, State= RawPartState.ND };
|
|
|
|
try
|
|
{
|
|
// Add to database
|
|
dbCtx.RawPartList.Add(newRawPart);
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
}
|
|
catch
|
|
{ }
|
|
|
|
return newRawPart;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Update single RawPart
|
|
/// </summary>
|
|
/// <param name="updItem">Item to update (with updated values)</param>
|
|
/// <returns></returns>
|
|
public bool Update(RawPartModel updItem)
|
|
{
|
|
bool done = false;
|
|
var item2update = dbCtx
|
|
.RawPartList
|
|
.Where(x => x.RawPartDbId == updItem.RawPartDbId)
|
|
.SingleOrDefault();
|
|
try
|
|
{
|
|
// update, vers 1...
|
|
dbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
|
|
|
//// update, vers 2
|
|
//dbCtx.BTLPartList.Remove(item2del);
|
|
//dbCtx.BTLPartList.Add(updItem);
|
|
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
done = true;
|
|
}
|
|
catch
|
|
{ }
|
|
return done;
|
|
}
|
|
}
|
|
}
|