public ActionResult doc_detail_BoilerUnitNorm() { using (var db = new CtsDbContext()) { var skipWeighs = db.BoilerConsNorms; if (getUserLang(Request.Cookies["lang"]) == "en") { return(View("Doc-detail/doc_detail_BoilerUnitNorm", skipWeighs.Select(s => new BoilerNorm() { Location = s.Location.LocationNameEng, ConsumptionNorm = s.ConsNorm.ToString() }).ToArray())); } if (getUserLang(Request.Cookies["lang"]) == "kk") { return(View("Doc-detail/doc_detail_BoilerUnitNorm", skipWeighs.Select(s => new BoilerNorm() { Location = s.Location.LocationNameKZ, ConsumptionNorm = s.ConsNorm.ToString() }).ToArray())); } return(View("Doc-detail/doc_detail_BoilerUnitNorm", skipWeighs.Select(s => new BoilerNorm() { Location = s.Location.LocationName, ConsumptionNorm = s.ConsNorm.ToString() }).ToArray())); } }
public ActionResult doc_detail_Wagons() { using (var db = new CtsDbContext()) { var beltScales = db.WagonScales; if (getUserLang(Request.Cookies["lang"]) == "en") { return(View("Doc-detail/doc_detail_Wagons", beltScales.Select(s => new DocWagonScales() { Name = s.NameEng, Location = s.Location.LocationNameEng }).ToArray())); } if (getUserLang(Request.Cookies["lang"]) == "kk") { return(View("Doc-detail/doc_detail_Wagons", beltScales.Select(s => new DocWagonScales() { Name = s.NameKZ, Location = s.Location.LocationNameKZ }).ToArray())); } return(View("Doc-detail/doc_detail_Wagons", beltScales.Select(s => new DocWagonScales() { Name = s.Name, Location = s.Location.LocationName }).ToArray())); } }
public ActionResult doc_detail_Conveyors() { using (var db = new CtsDbContext()) { var beltScales = db.BeltScales; if (getUserLang(Request.Cookies["lang"]) == "en") { return(View("Doc-detail/doc_detail_Conveyors", beltScales.Select(s => new DocBeltScale() { Name = s.NameEng, Location = s.Location.LocationNameEng, FromDest = s.FromInnerDest.NameEng, ToDest = s.ToInnerDest.NameEng }).ToArray())); } if (getUserLang(Request.Cookies["lang"]) == "kk") { return(View("Doc-detail/doc_detail_Conveyors", beltScales.Select(s => new DocBeltScale() { Name = s.NameKZ, Location = s.Location.LocationNameKZ, FromDest = s.FromInnerDest.NameKZ, ToDest = s.ToInnerDest.NameKZ }).ToArray())); } return(View("Doc-detail/doc_detail_Conveyors", beltScales.Select(s => new DocBeltScale() { Name = s.Name, Location = s.Location.LocationName, FromDest = s.FromInnerDest.Name, ToDest = s.ToInnerDest.Name }).ToArray())); } }
public static List <T> GetUserAuthorizedEquipment <T>(CtsDbContext cdb, IIdentity user) where T : class, IEquip { var userLogin = user.Name.Split(new char[] { '\\' }).Last(); var domain = user.Name.Split(new char[] { '\\' }).First(); string equipName = typeof(T).ToString(); var equipment = Cacher.Instance.TryRead(domain + userLogin + equipName) as List <T>; if (equipment == null) { equipment = new List <T>(); var locations = GetUserLocations(cdb, user); if (locations != null) { var locationsArray = locations.Select(x => x.ID).ToList(); var genericContext = new CtsEquipContext <T>(); equipment.AddRange(genericContext.DbSet.Where(n => locationsArray.Contains(n.LocationID)).ToList()); } if (equipment.Count > 0) { Cacher.Instance.Write(domain + userLogin + equipName, equipment); } } return(equipment); }
public static bool UserHasLocationRole(IIdentity user, string locationID) { bool flag = false; object loginDB, domainDB, rolesDB; string users = user.Name; users = users.Remove(0, 7); using (var cdb = new CtsDbContext()) { locationID = cdb.Locations.Find(locationID).LocationName; string connectionString = ConfigurationManager.ConnectionStrings["CentralDbConnection"].ConnectionString; List <string> roleList = new List <string>(); string sql = $"SELECT CtsUser_Login, CtsUser_Domain, CtsRole_RoleName FROM CtsUserCtsRoles WHERE CtsUser_Login = '******'"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader = command.ExecuteReader(); try { if (reader.HasRows) { while (reader.Read()) { loginDB = reader.GetValue(0); domainDB = reader.GetValue(1); rolesDB = reader.GetValue(2); if (loginDB.ToString().ToLower() == users.ToLower().ToString()) { if (rolesDB.ToString().ToLower() == locationID.ToString().ToLower()) { flag = true; } } } } reader.Close(); } catch (Exception ex) { } if (flag) { return(true); } else { return(false); } } } }
public ActionResult doc_detail_Skips() { using (var db = new CtsDbContext()) { var skips = db.Skips; if (getUserLang(Request.Cookies["lang"]) == "en") { return(View("Doc-detail/doc_detail_Skips", skips.Select(s => new DocSkip() { Weight = s.Weight, Name = s.NameEng, Location = s.Location.LocationNameEng }).ToArray())); } if (getUserLang(Request.Cookies["lang"]) == "kk") { return(View("Doc-detail/doc_detail_Skips", skips.Select(s => new DocSkip() { Weight = s.Weight, Name = s.NameKZ, Location = s.Location.LocationNameKZ }).ToArray())); } return(View("Doc-detail/doc_detail_Skips", skips.Select(s => new DocSkip() { Weight = s.Weight, Name = s.Name, Location = s.Location.LocationName }).ToArray())); } }
private static string[] GetReprtRoles() { var cdb = new CtsDbContext(); return(cdb.CtsRole .Where(r => r.RoleName.ToLower().StartsWith("rep")) .Select(r => r.RoleName) .ToArray()); }
public static bool SyncWagonNums() { var recogns = new List <Recogn>(); var nums = new List <WagonNumsCache>(); try { using (CtsDbContext centralDB = new CtsDbContext()) { recogns.AddRange(centralDB.Recogn.ToList()); } using (var wagDB = new WagonDBcontext()) { foreach (var r in recogns) { nums.AddRange(wagDB.vagon_nums.Where(x => x.recognid == r.ID).OrderByDescending(x => x.date_time).Take(50) .Select(x => new WagonNumsCache { ID = x.id, Date_time = x.date_time, RecognID = x.recognid, Id_sostav = x.id_sostav, Number = x.number, Number_operator = x.number_operator, Id_operator = x.id_operator, Camera = x.camera, }).ToList()); } } if (nums.Any()) { using (CtsDbContext centralDB = new CtsDbContext()) { using (var transaction = centralDB.Database.BeginTransaction()) { centralDB.WagonNumsCache.RemoveRange(centralDB.WagonNumsCache); centralDB.WagonNumsCache.AddRange(nums); centralDB.SaveChanges(); transaction.Commit(); } } } _logger.Trace("Successfully Synchronized WagonNums"); return(true); } catch (Exception ex) { _logger.Error("Unsuccess with SyncWagonNums"); _logger.Error(ex.Message.ToString()); return(false); } }
public UtilizationController(CtsDbContext cdbcontext) { if (cdbcontext != null) { _cdb = cdbcontext; } else { _cdb = new CtsDbContext(); } }
public WagonScalesController(CtsDbContext cdbcontext) { if (cdbcontext != null) { _cdb = cdbcontext; } else { _cdb = new CtsDbContext(); } }
public SkipController(CtsDbContext cdbcontext) { if (cdbcontext != null) { _cdb = cdbcontext; } else { _cdb = new CtsDbContext(); } }
public ActionResult Mine_counter() { using (CTS_Models.DBContext.CtsDbContext db = new CtsDbContext()) { var sumCounter = db.RailWeighbridges.Select(x => new { TransferTimeStamp = x.TransferTimeStamp, Weight = x.Weight }).ToList(); return(View(sumCounter.ToList())); } }
public static bool UserHasLocationRole(IIdentity user, string locationID) { var cacheKey = user.Name + "UserHasLocationRole" + locationID; if (Cacher.Instance.TryRead(cacheKey) is bool) { return((bool)Cacher.Instance.TryRead(cacheKey)); } var cdb = new CtsDbContext(); var userHasLocationRole = CtsAuthorizeProvider.CheckIsInRole(user, cdb.Locations.Find(locationID).LocationName); Cacher.Instance.Write(cacheKey, userHasLocationRole); return(userHasLocationRole); }
private static bool SyncFromCentralToLocalAndDeleteWarehouseTransfers(ConnectionStringSettings connectionStringSettings) { List <WarehouseTransfer> centralTransferList = new List <WarehouseTransfer>(); string stringForLogger = ""; try { using (CtsDbContext centralDB = new CtsDbContext()) { centralTransferList.AddRange(centralDB.WarehouseTransfers.Where(x => x.Warehouse.LocationID == connectionStringSettings.Name.ToString()) .Where(x => x.TransferTimeStamp > DbFunctions.AddDays(System.DateTime.Today, -2))); } if (centralTransferList.Count != 0) { using (CtsDbContext localDB = new CtsDbContext(connectionStringSettings.ConnectionString)) { using (var transaction = localDB.Database.BeginTransaction()) { foreach (var t in centralTransferList) { localDB.WarehouseTransfers.AddOrUpdate(t); stringForLogger = String.Concat(stringForLogger, t.ID, ";"); } List <WarehouseTransfer> localTransferList = new List <WarehouseTransfer>(); localTransferList.AddRange(localDB.WarehouseTransfers.Where(x => x.TransferTimeStamp <= DbFunctions.AddDays(System.DateTime.Today, -3))); localDB.WarehouseTransfers.RemoveRange(localTransferList); localDB.SaveChanges(); transaction.Commit(); } } } _logger.Trace(string.Format("{0} Successfully synchronized SyncFromCentralToLocalAndDeleteWarehouseTransfers: {1}", connectionStringSettings.Name.ToString(), stringForLogger)); return(true); } catch (Exception ex) { _logger.Error(string.Format("{0} Unsuccess with SyncFromCentralToLocalAndDeleteWarehouseTransfers", connectionStringSettings.Name.ToString())); _logger.Error(ex.ToString()); return(false); } }
protected override bool AuthorizeCore(HttpContextBase httpContext) { string user = httpContext.User.Identity.Name; user = user.Substring(7); var db = new CtsDbContext(); bool isValid = db.CtsUserCtsRole.Any(d => d.CtsRole_RoleName == _allowedRoles.ToString()); if (isValid) { return(true); } else { return(false); } }
public static List <Item> GetItems(CtsDbContext cdb, IIdentity user) { var userLogin = user.Name.Split(new char[] { '\\' }).Last(); var domain = user.Name.Split(new char[] { '\\' }).First(); if (!(Cacher.Instance.TryRead(domain + userLogin + "Items") is List <Item> items)) { items = new List <Item>(); var groups = CtsAuthorizeProvider.GetUserRolesFromDb(user).Select(x => x.RoleName).ToArray(); items.AddRange(cdb.Items.Where(n => groups.Contains(n.Location.DomainName)).ToList()); if (items.Count > 0) { Cacher.Instance.Write(domain + userLogin + "Items", items); } } return(items); }
public ActionResult doc_detail_SkipsWeights() { using (var db = new CtsDbContext()) { var skipWeighs = db.SkipWeights; SkipWeights[] model; if (getUserLang(Request.Cookies["lang"]) == "en") { model = skipWeighs.Select(s => new SkipWeights() { Name = s.Skip.NameEng, Location = s.Skip.Location.LocationNameEng, Weight = s.Weight.ToString(), SkipWeight = s, }).ToArray(); } if (getUserLang(Request.Cookies["lang"]) == "kk") { model = skipWeighs.Select(s => new SkipWeights() { Name = s.Skip.NameKZ, Location = s.Skip.Location.LocationNameKZ, Weight = s.Weight.ToString(), SkipWeight = s, }).ToArray(); } model = skipWeighs.Select(s => new SkipWeights() { Name = s.Skip.Name, Location = s.Skip.Location.LocationName, Weight = s.Weight.ToString(), SkipWeight = s, }).ToArray(); foreach (var s in model) { s.ActFilePath = Directory.EnumerateFiles(CTS_Core.ProjectConstants.SkipActFolderPath, s.SkipWeight.ID + ".*").FirstOrDefault(); } //model.Select(s => s.ActFilePath = Directory.EnumerateFiles(ProjectConstants.SkipActFolderPath, s.SkipWeight.ID.ToString() + ".*").FirstOrDefault()); return(View("Doc-detail/doc_detail_SkipWeights", model)); } }
public string GetLocationNameOnCurrentLanguate(string locationID) { if (!string.IsNullOrEmpty(locationID)) { var db = new CtsDbContext(); var location = db.Locations.Find(locationID); var name = location.LocationName; if (getUserLang(Request.Cookies["lang"]) == "en") { name = location.LocationNameEng; } if (getUserLang(Request.Cookies["lang"]) == "kk") { name = location.LocationNameKZ; } return(name); } return(""); }
public static List <Location> GetUserLocations(CtsDbContext cdb, IIdentity user) { var userLogin = user.Name.Split(new char[] { '\\' }).Last(); var domain = user.Name.Split(new char[] { '\\' }).First(); if (!(Cacher.Instance.TryRead(domain + userLogin + "Locations") is List <Location> locations)) { locations = new List <Location>(); #if DEBUG return(cdb.Locations.ToList()); #endif var groups = CtsAuthorizeProvider.GetUserRolesFromDb(user).Select(x => x.RoleName).ToArray(); locations.AddRange(cdb.Locations.Where(n => groups.Contains(n.LocationName)).ToList()); if (locations.Count > 0) { Cacher.Instance.Write(domain + userLogin + "Locations", locations); } } return(locations); }
public static ICollection <CtsRole> GetUserRolesFromDb(IIdentity user) { var cdb = new CtsDbContext(); var userLogin = user.Name.Split(new char[] { '\\' }).Last(); var domain = user.Name.Split(new char[] { '\\' }).First(); if (!(Cacher.Instance.TryRead(domain + userLogin + "Roles") is CtsUser ctsUser)) { ctsUser = cdb.CtsUser.Where(x => x.Login == userLogin).FirstOrDefault(x => x.Domain == domain); if (ctsUser != null) { cdb.Entry(ctsUser).Collection(x => x.CtsRoles).Load(); Cacher.Instance.Write(domain + userLogin + "Roles", ctsUser); } else { ctsUser = new CtsUser(); } } return(ctsUser.CtsRoles); }
public static void ManageWeights() { var stringForLogger = new StringBuilder(); try { CtsDbContext centralDB = new CtsDbContext(); var skips = centralDB.Skips.ToList(); foreach (var s in skips) { var skipWeight = centralDB.SkipWeights.Where(x => x.SkipID == s.ID) .Where(d => d.ValidFrom <= System.DateTime.Now).OrderByDescending(m => m.ValidFrom).FirstOrDefault(); if (skipWeight != null) { if (s.Weight != skipWeight.Weight) { s.Weight = skipWeight.Weight; centralDB.Entry(s).State = EntityState.Modified; stringForLogger.Append("SkipID "); stringForLogger.Append(s.ID); stringForLogger.Append(" = "); stringForLogger.Append(s.Weight); stringForLogger.Append("; "); } } } centralDB.SaveChanges(); stringForLogger.Insert(0, "Weight changed for "); _logger.Trace(stringForLogger.ToString()); } catch (Exception ex) { _logger.Error("Unsuccess with SkipWeightHandler"); _logger.Error(ex.ToString()); } }
private static bool SyncFromCentralToLocalAndDeleteWagonNumsCache(ConnectionStringSettings connectionStringSettings) { var nums = new List <WagonNumsCache>(); try { using (CtsDbContext centralDB = new CtsDbContext()) { nums.AddRange(centralDB.WagonNumsCache.Where(x => x.Recogn.LocationID == connectionStringSettings.Name.ToString()).ToList()); } if (nums.Any()) { using (CtsDbContext localDB = new CtsDbContext(connectionStringSettings.ConnectionString)) { using (var transaction = localDB.Database.BeginTransaction()) { localDB.WagonNumsCache.RemoveRange(localDB.WagonNumsCache); localDB.WagonNumsCache.AddRange(nums); localDB.SaveChanges(); transaction.Commit(); } } } return(true); } catch (Exception ex) { lock (log) { log.Message(ex); } return(false); } }
private static bool SyncFromCentralToLocalAndDeleteWagonNumsCache(ConnectionStringSettings connectionStringSettings) { var nums = new List <WagonNumsCache>(); try { using (CtsDbContext centralDB = new CtsDbContext()) { nums.AddRange(centralDB.WagonNumsCache.Where(x => x.Recogn.LocationID == connectionStringSettings.Name.ToString()).ToList()); } if (nums.Any()) { using (CtsDbContext localDB = new CtsDbContext(connectionStringSettings.ConnectionString)) { using (var transaction = localDB.Database.BeginTransaction()) { localDB.WagonNumsCache.RemoveRange(localDB.WagonNumsCache); localDB.WagonNumsCache.AddRange(nums); localDB.SaveChanges(); transaction.Commit(); } } } _logger.Trace(string.Format("{0} Successfully synchronized SyncFromCentralToLocalAndDeleteWagonNumsCache", connectionStringSettings.Name.ToString())); return(true); } catch (Exception ex) { _logger.Error(string.Format("{0} Unsuccess with SyncFromCentralToLocalAndDeleteWagonNumsCache", connectionStringSettings.Name.ToString())); _logger.Error(ex.ToString()); return(false); } }
public string GetWagonWeightDetails(int weightScaleId) { var fromDate = GetDateFromCookie("fromdate"); var toDate = GetDateFromCookie("todate"); using (var cdb = new CtsDbContext()) { var weightTransfers = cdb.WagonTransfers .Where(d => d.TransferTimeStamp >= fromDate && d.TransferTimeStamp <= toDate) .Where(t => t.EquipID == weightScaleId); var periodWeight = weightTransfers.Sum(s => s.Netto); var trainWeight = weightTransfers .OrderByDescending(t => t.TransferTimeStamp) .GroupBy(v => v.LotName) .FirstOrDefault()? .Sum(s => s.Netto); return(" <div class='block-info green' id='bi1'>" + "<div class='title'>" + "</div>" + "<div class='line'>" + "<span class='name'>" + Resources.ResourceMnemonic.WeightConclusionIn1Train + "</span>" + "<div class='count'>" + (int?)trainWeight + "</div>" + "<span class='caption'>" + Resources.ResourceMnemonic.Tonns + "</span>" + "<div class='clearfix'></div>" + "</div>" + "<div class='line'>" + "<span class='name'>" + Resources.ResourceMnemonic.WeightConclusionWeightPerPeriod + "</span>" + "<div class='count'>" + (int?)periodWeight + "</div>" + "<span class='caption'>" + Resources.ResourceMnemonic.Tonns + "</span>" + "<div class='clearfix'></div>" + "</div>" + "</div>"); } }
public static bool SyncVesWagon() { string stringForLoggerAccepted = ""; string stringForLoggerRejected = ""; string stringForLoggerWrong = ""; //int lastID; List <WagonScale> wagonScales; List <Item> items; Int32.TryParse(ConfigurationManager.AppSettings["WagonDBSyncDepth_Days"], out int syncDepth); var dueDate = syncDepth == 0 ? default(DateTime) : DateTime.Now.AddDays(syncDepth * -1); try { using (CtsDbContext centralDB = new CtsDbContext()) { //var ltr = centralDB.WagonTransfers.Where(x => !x.ID.StartsWith("W")).OrderByDescending(t => t.TransferTimeStamp).Take(1000).Select(m => m.ID).ToArray(); //lastID = (ltr.Length != 0) ? ltr.Select(x => int.Parse(x)).OrderByDescending(m => m).FirstOrDefault() : 0; wagonScales = centralDB.WagonScales.Include(m => m.Location).ToList(); items = centralDB.Items.Include(m => m.Location).ToList(); } var transfers = new List <ves_vagon>(); using (var wagDB = new WagonDBcontext()) { //transfers = wagDB.ves_vagon.Where(x => x.id > lastID).Include(m => m.scales).Include(h => h.napravlenie) // .Include(n => n.otpravl).Include(k => k.poluch).ToList(); transfers = wagDB.ves_vagon.Where(x => x.id_operator != null) .Where(x => x.id_operator != 0) .Where(x => x.sync != 1) .Where(x => x.date_time_brutto >= dueDate) .Include(m => m.scales) .Include(h => h.napravlenie) .Include(n => n.otpravl).Include(k => k.poluch).ToList(); } if (transfers.Count > 0) { var acceptedTransfers = new List <WagonTransfer>(); using (var centralDB = new CtsDbContext()) { using (var transaction = centralDB.Database.BeginTransaction()) { foreach (var trans in transfers) { try { var scale = GetCTSWagonScale(trans.scales.name, wagonScales); var item = items.Where(x => x.Name == trans.gruz).FirstOrDefault(); var transfer = new WagonTransfer() { ID = trans.id.ToString(), TransferTimeStamp = trans.date_time_brutto, LasEditDateTime = DateTime.Now, OperatorName = "DBSync", LotName = trans.id_sostav.ToString() ?? "", SublotName = trans.vagon_num ?? "", OrderNumber = trans.nakladn ?? "", FromDestID = trans.otpravl.name ?? "", ToDest = trans.poluch.display_name ?? "", Tare = (float)trans.ves_tara / 1000, Brutto = (float)trans.ves_brutto / 1000, Netto = (float)trans.ves_netto / 1000, NettoByOrder = (float)trans.ves_netto_docs / 1000, EquipID = (scale != null) ? scale.ID : 1, ItemID = (item != null) ? item.ID : 1, Direction = trans.napravlenie.display_name ?? "", IsValid = true, Status = 0, }; var vc = new ValidationContext(transfer, null, null); var vResults = new List <ValidationResult>(); var isValid = Validator.TryValidateObject(transfer, vc, vResults, true); if (isValid && (transfer.SublotName != "")) { acceptedTransfers.Add(transfer); centralDB.WagonTransfers.AddOrUpdate(transfer); stringForLoggerAccepted = String.Concat(stringForLoggerAccepted, trans.id, ";"); } else { stringForLoggerRejected = String.Concat(stringForLoggerRejected, trans.id, ";"); } } catch (Exception) { stringForLoggerWrong = String.Concat(stringForLoggerWrong, trans.id, ";"); } } centralDB.SaveChanges(); transaction.Commit(); } } using (var wagDB = new WagonDBcontext()) { foreach (var t in acceptedTransfers) { var originalTransfer = wagDB.ves_vagon.Find(Int32.Parse(t.ID)); if (originalTransfer != null) { originalTransfer.sync = 1; wagDB.Entry(originalTransfer).State = EntityState.Modified; } } using (var transaction = wagDB.Database.BeginTransaction()) { wagDB.SaveChanges(); transaction.Commit(); } } } _logger.Trace(string.Format("Successfully Synchronized VesWagon: {0}", stringForLoggerAccepted)); _logger.Trace(string.Format("Successfully Synchronized VesWagon, not accepted transfers: {0}", stringForLoggerRejected)); _logger.Trace(string.Format("Successfully Synchronized VesWagon, transfers with wrong properties: {0}", stringForLoggerWrong)); return(true); } catch (Exception ex) { _logger.Error("Unsuccess with SyncVesWagon"); _logger.Error(ex.Message.ToString()); return(false); } }
public SkipController() { _cdb = new CtsDbContext(); }
public ApproveController() { _cdb = new CtsDbContext(); }
public WagonScalesController() { _cdb = new CtsDbContext(); }
public LabBeltController() { _cdb = new CtsDbContext(); }
public static TransfersToApprove <TTransfer> GetTransfersToApprove <TTransfer, TEquip>(CtsDbContext cdb, IIdentity user) where TTransfer : class, ITransfer where TEquip : class, IEquip { var equips = EquipmentProvider.GetUserAuthorizedEquipment <TEquip>(cdb, user); var equipsArray = equips.Select(x => x.ID).ToArray(); var dbcontext = new CtsTransferContext <TTransfer>(); var transfers = dbcontext.DbSet.Where(t => equipsArray.Contains((int)t.EquipID)) .Where(d => d.TransferTimeStamp >= DbFunctions.AddDays(System.DateTime.Now, -2)).ToList(); var transfersToApprove = new TransfersToApprove <TTransfer>(); transfersToApprove.CreatedTransfers = transfers.Where(m => m.Status == 1).ToList(); transfersToApprove.EditedTransfers = transfers.Where(m => m.Status == 2).ToList(); var obsoleteArray = transfersToApprove.EditedTransfers.Select(x => x.InheritedFrom).ToArray(); transfersToApprove.ObsoleteTransfers = dbcontext.DbSet.Where(m => obsoleteArray.Contains(m.ID)).ToList(); transfersToApprove.DeletedTransfers = transfers.Where(m => m.Status == 4).ToList(); return(transfersToApprove); }