using System; using System.Collections.Generic; using System.Linq; using System.Text; using EgtBEAMWALL.DataLayer.DatabaseModels; namespace EgtBEAMWALL.DataLayer.Controllers { public class ProdController : IDisposable { private DatabaseContext dbCtx; public ProdController() { // Initialize database context dbCtx = new DatabaseContext(); } public void Dispose() { // Clear database context dbCtx.Dispose(); } /// /// Get record by RawPartDbId /// /// /// public ProdModel FindByRawPartDbId(int RawPartDbId) { var rawPart = dbCtx .RawPartList .Where(x => x.RawPartDbId == RawPartDbId) .SingleOrDefault(); return FindByProdDbId(rawPart.ProdDbId); } /// /// Get record by RawPartId /// /// /// public ProdModel FindByRawPartId(int RawPartId) { var rawPart = dbCtx .RawPartList .Where(x => x.RawPartId == RawPartId) .SingleOrDefault(); return FindByProdDbId(rawPart.ProdDbId); } /// /// Get record by ProdDbId /// /// /// public ProdModel FindByProdDbId(int ProdDbId) { return dbCtx .ProdList .Where(x => x.ProdDbId == ProdDbId) .SingleOrDefault(); } /// /// Get record by ProdId /// /// /// public ProdModel FindByProdId(int ProdId) { return dbCtx .ProdList .Where(x => x.ProdId == ProdId) .SingleOrDefault(); } /// /// Get paginated data from DB (ASC ordered) /// /// /// /// public List GetPaginatedAsc(int ProdDbIdStart, int numRecord) { int numEnd = ProdDbIdStart - numRecord; // check numEnd if (numEnd < 0) numEnd = 0; // retrieve return dbCtx .ProdList .Where(x => x.ProdDbId <= ProdDbIdStart) .OrderBy(x => x.ProdDbId) .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 .ProdList .Where(x => x.ProdDbId <= PartDbIdStart) .OrderByDescending(x => x.ProdDbId) .Take(numRecord) .ToList(); } /// /// Get filtered data by ProdectId (ASC ordered) /// /// /// public List GetByProdAsc(int ProdDbId) { // retrieve return dbCtx .ProdList .Where(x => x.ProdDbId == ProdDbId) .OrderBy(x => x.ProdDbId) .ToList(); } /// /// Get filtered data by ProdectId (DESC ordered) /// /// /// public List GetByProdDesc(int ProdDbId) { // retrieve return dbCtx .ProdList .Where(x => x.ProdDbId == ProdDbId) .OrderByDescending(x => x.ProdDbId) .ToList(); } /// /// Create record on DB /// /// /// /// public ProdModel Create(int newProdId, string Description) { ProdModel newProd = new ProdModel() { ProdId = newProdId, Description = Description }; try { // Add to database dbCtx.ProdList.Add(newProd); // Commit changes dbCtx.SaveChanges(); } catch { } return newProd; } } }