/// <summary>
        ///     Maps WorkCycle type to WpfWorkCycle
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        internal static WpfWorkCycle MapWorkCycleToWpfWorkCycle(WorkCycle source)
        {
            var config = new MapperConfiguration(cfg => { cfg.CreateMap <WorkCycle, WpfWorkCycle>(); });

            var iMapper = config.CreateMapper();

            return(iMapper.Map <WorkCycle, WpfWorkCycle>(source));
        }
        public static WorkCycle CreateWorkCycle(string workCycleId, int daysPerPeriod)
        {
            WorkCycle workCycle = new WorkCycle();

            workCycle.WorkCycleId   = workCycleId;
            workCycle.DaysPerPeriod = daysPerPeriod;
            return(workCycle);
        }
Beispiel #3
0
        public Worker(string workName, WorkCycle cycle, int interval, Action action)
        {
            Ensure.NotNull(workName, "The work name cannot be null!");
            Ensure.GrandThan(interval, 0, "The interval val cannot be less than zero!", false);

            _workName = workName;
            _option   = new WorkOption(cycle, interval);
            _action   = action;
            _logger   = ObjectContainer.Resolve <ILoggerFactory>().Create(this.GetType());

            InitialingScheduleInterval();
        }
Beispiel #4
0
        private PurchaseOrder CreateNewPurchaseOrderForInsert(WorkCycle fullWorkCycleFromDb)
        {
            var purchaseOrderToDb = new PurchaseOrder
            {
                PurchaseOrderNumber = GenerateNewPurchaseOrderNumber(),
                DateCreated         = DateTime.Now,
                CreatedBy           = _user.Id,
                StatusId            = PurchaseOrderStatus.New.ToString(),
                WorkCycleId         = fullWorkCycleFromDb.Id,
                Active = true,
                Lines  = fullWorkCycleFromDb.WorkCycleLines.Select(wcLine => new PurchaseOrderLine
                {
                    SupplierId    = wcLine.SupplierId,
                    RawMaterialId = wcLine.RawMaterialId,
                    UnitPrice     = wcLine.UnitPrice,
                    Quantity      = wcLine.PlannedQuantity,
                    UnitOfMeasure = wcLine.UnitOfMeasure
                })
                         .ToList()
            };

            return(purchaseOrderToDb);
        }
Beispiel #5
0
        internal void AddWorkCycleTransactions(WorkCycle workCycle)
        {
            if (workCycle == null)
            {
                throw new ArgumentNullException("workCycle");
            }

            var workCycleInDb = _unitOfWork.WorkCycles
                                .SingleOrDefault(wc => wc.Name == workCycle.Name);

            if (workCycle.Id != workCycleInDb.Id)
            {
                throw new ApplicationException("Work Cycle Id mismatch");
            }

            if (workCycleInDb == null)
            {
                throw new ApplicationException("Work Cycle not in database");
            }

            var timeStamp = DateTime.Now;

            foreach (var line in workCycle.WorkCycleLines)
            {
                _unitOfWork.WorkCycleTransactions.Add(new WorkCycleTransaction
                {
                    WorkCycleId     = workCycleInDb.Id,
                    RawMaterialId   = line.RawMaterialId,
                    TrackingNumber  = 0,
                    UsedQuantity    = -1.0 * line.PlannedQuantity,
                    DateUsed        = timeStamp,
                    CreatedBy       = workCycle.UserId,
                    TransactionDate = timeStamp
                });
                _unitOfWork.Complete();
            }
        }
        private WorkCycle GetWorkCycle(string workCycleName, bool isActive)
        {
            var wcs      = _unitOfWork.WorkCycles.GetAll().ToArray();
            var supps    = _unitOfWork.Suppliers.GetAll().ToArray();
            var rms      = _unitOfWork.RawMaterials.GetAll().ToArray();
            var statuses = _unitOfWork.Statuses.GetAll().ToArray();
            var users    = _unitOfWork.Users.GetAll().ToArray();

            if (supps.Length == 0)
            {
                throw new AssertFailedException("No suppliers in Database");
            }
            if (wcs.Length == 0)
            {
                throw new AssertFailedException("No Working Cycles in Database");
            }
            if (rms.Length == 0)
            {
                throw new AssertFailedException("No Raw Materials in Database");
            }
            if (statuses.Length == 0)
            {
                throw new AssertFailedException("No Statuses in Database");
            }
            if (users.Length == 0)
            {
                throw new AssertFailedException("NO users in database");
            }

            var wc = new WorkCycle
            {
                Name      = workCycleName,
                DateBegin = new DateTime(2017, 12, 10),
                DateEnd   = new DateTime(2017, 12, 23),
                Active    = isActive,
                UserId    = users[0].Id,
                StatusId  = WorkCycleStatus.Draft.ToString()
            };

            var wcLines = new List <WorkCycleLines>
            {
                new WorkCycleLines {
                    RawMaterialId = rms[0].Id, SupplierId = supps[0].Id, UnitPrice = 125, PlannedQuantity = 91, UnitOfMeasure = "crates"
                },
                new WorkCycleLines {
                    RawMaterialId = rms[1].Id, SupplierId = supps[1].Id, UnitPrice = 125, PlannedQuantity = 91, UnitOfMeasure = "crates"
                },
                new WorkCycleLines {
                    RawMaterialId = rms[2].Id, SupplierId = supps[2].Id, UnitPrice = 125, PlannedQuantity = 91, UnitOfMeasure = "crates"
                },
                new WorkCycleLines {
                    RawMaterialId = rms[3].Id, SupplierId = supps[3].Id, UnitPrice = 125, PlannedQuantity = 91, UnitOfMeasure = "crates"
                },
                new WorkCycleLines {
                    RawMaterialId = rms[4].Id, SupplierId = supps[1].Id, UnitPrice = 125, PlannedQuantity = 91, UnitOfMeasure = "crates"
                },
            };

            wc.Lines = wcLines;

            return(wc);
        }
Beispiel #7
0
 public WorkOption(WorkCycle cycle, int interval)
 {
     this.Cycle    = cycle;
     this.Interval = interval;
 }
 private void OnListChanged(object sender, ListChangedEventArgs e)
 {
     WorkCycle.UpdateSubTotalSection();
 }