Files
egtbeamwall/EgtBEAMWALL.DataLayer/Controllers/MachGroupController.cs
T
2021-03-05 18:03:29 +01:00

188 lines
5.5 KiB
C#

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
/// <summary>
/// Create record on DB
/// </summary>
/// <param name="newMachGroupId"></param>
/// <param name="description"></param>
/// <returns></returns>
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();
}
/// <summary>
/// Get record by MachGroupDbId
/// </summary>
/// <param name="MachGroupDbId"></param>
/// <returns></returns>
public MachGroupModel FindByMachGroupDbId(int MachGroupDbId)
{
return dbCtx
.MachGroupList
.Where(x => x.MachGroupDbId == MachGroupDbId)
.SingleOrDefault();
}
/// <summary>
/// Get record by MachGroupId
/// </summary>
/// <param name="MachGroupId"></param>
/// <returns></returns>
public MachGroupModel FindByMachGroupId(int MachGroupId)
{
return dbCtx
.MachGroupList
.Where(x => x.MachGroupId == MachGroupId)
.SingleOrDefault();
}
/// <summary>
/// Get filtered data by MachGroupectId (ASC ordered)
/// </summary>
/// <param name="ProdDbId"></param>
/// <returns></returns>
public List<MachGroupModel> GetByProdAsc(int ProdDbId)
{
// retrieve
return dbCtx
.MachGroupList
.Where(x => x.ProdDbId == ProdDbId)
.OrderBy(x => x.ProdDbId)
.ToList();
}
/// <summary>
/// Get filtered data by MachGroupectId (DESC ordered)
/// </summary>
/// <param name="ProdDbId"></param>
/// <returns></returns>
public List<MachGroupModel> GetByProdDesc(int ProdDbId)
{
// retrieve
return dbCtx
.MachGroupList
.Where(x => x.ProdDbId == ProdDbId)
.OrderByDescending(x => x.ProdDbId)
.ToList();
}
/// <summary>
/// Get paginated data from DB (ASC ordered)
/// </summary>
/// <param name="MachGroupDbIdStart"></param>
/// <param name="numRecord"></param>
/// <returns></returns>
public List<MachGroupModel> 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();
}
/// <summary>
/// Get paginated data from DB (DESC ordered)
/// </summary>
/// <param name="PartDbIdStart"></param>
/// <param name="numRecord"></param>
/// <returns></returns>
public List<MachGroupModel> 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();
}
/// <summary>
/// Update single MachGroup
/// </summary>
/// <param name="updItem">Item to update (with updated values)</param>
/// <returns></returns>
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
}
}