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();
}
///
/// Get record by RawPartDbId
///
///
///
public RawPartModel FindByRawPartDbId(int RawPartDbId)
{
return dbCtx
.RawPartList
.Where(x => x.RawPartDbId == RawPartDbId)
.SingleOrDefault();
}
///
/// Get record by RawPartId
///
///
///
public RawPartModel FindByRawPartId(int RawPartId)
{
return dbCtx
.RawPartList
.Where(x => x.RawPartId == RawPartId)
.SingleOrDefault();
}
///
/// Get paginated data from DB (ASC ordered)
///
///
///
///
public List 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();
}
///
/// Get paginated data from DB (DESC ordered)
///
///
///
///
public List 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();
}
///
/// Get filtered data by RawPartectId (ASC ordered)
///
///
///
public List GetByProdAsc(int ProdDbId)
{
// retrieve
return dbCtx
.RawPartList
.Where(x => x.ProdDbId == ProdDbId)
.OrderBy(x => x.ProdDbId)
.ToList();
}
///
/// Get filtered data by RawPartectId (DESC ordered)
///
///
///
public List GetByProdDesc(int ProdDbId)
{
// retrieve
return dbCtx
.RawPartList
.Where(x => x.ProdDbId == ProdDbId)
.OrderByDescending(x => x.ProdDbId)
.ToList();
}
///
/// Create record on DB
///
///
///
///
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;
}
///
/// Update single RawPart
///
/// Item to update (with updated values)
///
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;
}
}
}