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; } } }