Exemple #1
0
        public void Add(LockerBlock lockerBlock)
        {
            if (lockerBlock == null)
            {
                throw new ArgumentNullException(nameof(lockerBlock));
            }

            this.dbSet.Add(lockerBlock);
        }
        private void SetLockerBlockId(LockerBlock lockerBlock)
        {
            var block         = this.unitOfWork.LockerBlockRepository.GetLastLockerBlocker();
            int lockerBlockId = 1;

            if (block != null)
            {
                lockerBlockId = block.LockerBlockId + 1;
            }

            lockerBlock.LockerBlockId = lockerBlockId;
        }
        private IEnumerable <LockerWithCustomerActivity> GetLockerWithActivities(LockerBlock block, List <DomainModel.Locker> lockerOfActualBlock)
        {
            var lockersWithActivities = new List <LockerWithCustomerActivity>();

            var customerActivities = this.unitOfWork.CustomerActivityRepository.GetAll(block.Sector.TraderId);

            foreach (var locker in lockerOfActualBlock)
            {
                var customerActivity = customerActivities.Where(c => c.LockerId == locker.LockerId).FirstOrDefault();

                var lockersWithActivity = new LockerWithCustomerActivity(locker, customerActivity);

                lockersWithActivities.Add(lockersWithActivity);
            }

            return(lockersWithActivities.AsEnumerable());
        }
        private IList <DomainModel.Locker> GenerateVerticalLockers(LockerBlock lockerBlock)
        {
            var lockers = new List <DomainModel.Locker>();

            int lockerPosition = 1;

            for (int verticalPosition = 1; verticalPosition <= lockerBlock.TotalNumberOfVerticalLockers; verticalPosition++)
            {
                for (int horizontalPosition = 1; horizontalPosition <= lockerBlock.TotalNumberOfHorizontalLockers; horizontalPosition++)
                {
                    var locker = new DomainModel.Locker(lockerBlock.LockerBlockId, verticalPosition, horizontalPosition, lockerPosition);
                    lockers.Add(locker);

                    lockerPosition++;
                }
            }

            return(lockers);
        }
        public LockerManagementResponse AddNewLockerBlock(LockerBlock lockerBlock)
        {
            try
            {
                this.unitOfWork.LockerBlockRepository.Add(lockerBlock);

                this.SetLockerBlockId(lockerBlock);

                this.AddLockersForBlock(lockerBlock);

                this.unitOfWork.Commit();

                return(new LockerManagementResponse(true));
            }
            catch (Exception ex)
            {
                return(new LockerManagementResponse(false));
            }
        }
        private void AddLockersForBlock(LockerBlock lockerBlock)
        {
            var lockers = this.GenerateVerticalLockers(lockerBlock);

            this.unitOfWork.LockerRepository.AddRange(lockers);
        }
        public JsonResult AddNewLockerBlock(LockerBlock request)
        {
            var response = this.lockerManagement.AddNewLockerBlock(request);

            return(Json(response));
        }