示例#1
0
        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);
        }
示例#2
0
        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());
        }