public static bool ChangeTransfersStatus <TTransfer>(string transfers, bool isApproved, IIdentity user) where TTransfer : class, ITransfer { string[] transfersArray = transfers.Split(','); var dbcontext = new CtsTransferContext <TTransfer>(); var editedTransfers = dbcontext.DbSet.Where(x => transfersArray.Contains(x.ID)).ToList(); var obsoleteArray = editedTransfers.Where(x => x.Status == 2).Select(m => m.InheritedFrom).ToArray(); editedTransfers.AddRange(dbcontext.DbSet.Where(x => obsoleteArray.Contains(x.ID)).ToList()); using (var transaction = dbcontext.Database.BeginTransaction()) { foreach (var t in editedTransfers) { // What the magic is happening with t.Status? // Refer to ApproveStatus Dictionary in ProjectConstants.cs and you'll get it :) if (isApproved) { t.IsValid = !t.IsValid; t.Status += 8; } else { t.Status += 4; } t.ApprovedBy = user.Name; dbcontext.Entry(t).State = EntityState.Modified; } dbcontext.SaveChanges(); transaction.Commit(); } WarehouseHandler.CalculateWarehouseTransferAfterApprove(editedTransfers); return(true); }
private void WarehouseTimer_tick(object sender, ElapsedEventArgs e) { _warehouseTimer.Enabled = false; WarehouseHandler.CalculateWarehouseTransferAutomatic(); _warehouseTimer.Interval = CalculateTimerInterval(); _warehouseTimer.Enabled = true; }
private static void SetupWarehouseChainOfResponsibilities() { var input = Resources.Data; _context = new WarehouseDataProcessingContext(new StringReader(input)); _warehouseHandler = new WarehouseHandler( new InputReaderHandler(), new WarehouseEngineHandler(), new OutputGenerationHandler()); }