using System; using System.Collections.Generic; using System.Linq; using System.Text; using EgtBEAMWALL.DataLayer.DatabaseModels; namespace EgtBEAMWALL.DataLayer.Controllers { public class MachGroupController : IDisposable { #region Private Fields private DatabaseContext dbCtx; #endregion Private Fields #region Public Constructors public MachGroupController() { // Initialize database context dbCtx = new DatabaseContext(); } #endregion Public Constructors #region Public Methods /// /// Create record on DB /// /// /// /// public MachGroupModel Create(int newMachGroupId, string description) { MachGroupModel newMachGroup = new MachGroupModel() { MachGroupId = newMachGroupId, Description = description, State = MachGroupState.ND }; try { // Add to database dbCtx.MachGroupList.Add(newMachGroup); // Commit changes dbCtx.SaveChanges(); } catch { } return newMachGroup; } public void Dispose() { // Clear database context dbCtx.Dispose(); } /// /// Get record by MachGroupDbId /// /// /// public MachGroupModel FindByMachGroupDbId(int MachGroupDbId) { return dbCtx .MachGroupList .Where(x => x.MachGroupDbId == MachGroupDbId) .SingleOrDefault(); } /// /// Get record by MachGroupId /// /// /// public MachGroupModel FindByMachGroupId(int MachGroupId) { return dbCtx .MachGroupList .Where(x => x.MachGroupId == MachGroupId) .SingleOrDefault(); } /// /// Get filtered data by MachGroupectId (ASC ordered) /// /// /// public List GetByProdAsc(int ProdDbId) { // retrieve return dbCtx .MachGroupList .Where(x => x.ProdDbId == ProdDbId) .OrderBy(x => x.ProdDbId) .ToList(); } /// /// Get filtered data by MachGroupectId (DESC ordered) /// /// /// public List GetByProdDesc(int ProdDbId) { // retrieve return dbCtx .MachGroupList .Where(x => x.ProdDbId == ProdDbId) .OrderByDescending(x => x.ProdDbId) .ToList(); } /// /// Get paginated data from DB (ASC ordered) /// /// /// /// public List GetPaginatedAsc(int MachGroupDbIdStart, int numRecord) { int numEnd = MachGroupDbIdStart - numRecord; // check numEnd if (numEnd < 0) numEnd = 0; // retrieve return dbCtx .MachGroupList .Where(x => x.MachGroupDbId <= MachGroupDbIdStart) .OrderBy(x => x.MachGroupDbId) .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 .MachGroupList .Where(x => x.MachGroupDbId <= PartDbIdStart) .OrderByDescending(x => x.MachGroupDbId) .Take(numRecord) .ToList(); } /// /// Update single MachGroup /// /// Item to update (with updated values) /// public bool Update(MachGroupModel updItem) { bool done = false; var item2update = dbCtx .MachGroupList .Where(x => x.MachGroupDbId == updItem.MachGroupDbId) .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; } #endregion Public Methods } }