예제 #1
0
        // Dressing
        public async Task <DressingViewModel> DressingGet(int?machineId, DateTime?processDate)
        {
            DressingViewModel viewModel = new DressingViewModel();

            if (machineId == null || processDate == null)
            {
                // returning blank model
                viewModel.Model = new DressingModel()
                {
                    ProcessDate = DateTime.Now.Date, Blocks = new List <BlockDressingModel>()
                };
                viewModel.MachineOperators = new List <MachineOperatorModel>();
                viewModel.MachineStoppages = new List <MachineStoppageModel>();

                for (int counter = 0; counter < 2; counter++)
                {
                    // 6 blank blocks
                    viewModel.Model.Blocks.Add(new BlockDressingModel());
                }
            }

            viewModel.Machines = await this.plantRepository.MachineListItemGet();

            viewModel.Operators = await this.plantRepository.OperatorListItemGet();

            return(viewModel);
        }
예제 #2
0
        public async Task DressingSave(DressingViewModel viewModel, SharedDomain sharedDomain)
        {
            List <NTError> errors = new List <NTError>();

            // validating BlockNumbers
            string[] blockNumbers = viewModel.Model.Blocks.Select(m => m.BlockNumber).ToArray();
            List <BlockStateModel> blockStates = await sharedDomain.BlockStatesGet(blockNumbers);

            string[] invalidBlockNumbers = blockNumbers.Except(blockStates.Where(b => b.State == (int)State.Excavate).Select(b => b.BlockNumber)).ToArray();
            if (invalidBlockNumbers.Length > 0)
            {
                errors.Add(new NTError()
                {
                    Description = string.Format(PlantMessages.BlockNumbersInvalid, string.Join(", ", invalidBlockNumbers))
                });
            }

            // validating time for Stoppages
            if (!viewModel.MachineStoppages.ValidateTimeRange())
            {
                errors.Add(new NTError()
                {
                    Description = PlantMessages.StoppageTimeRangeInvalid
                });
            }

            // checking for one operator
            if (viewModel.MachineOperators.Count == 0)
            {
                errors.Add(new NTError()
                {
                    Description = PlantMessages.OperatorRequired
                });
            }
            else if (!viewModel.MachineOperators.ValidateTimeRange())
            {
                errors.Add(new NTError()
                {
                    Description = PlantMessages.OperatorTimeRangeInvalid
                });
            }

            if (errors.Count > 0)
            {
                throw new NTException(PlantMessages.DressingError, errors);
            }

            // saving the Block Dressing
            await this.plantRepository.DressingSave(viewModel);

            // finally saving the state info
            foreach (var state in blockStates)
            {
                state.State = (int)State.Dress;
            }

            await sharedDomain.BlockStatesSave(blockStates);
        }
예제 #3
0
        public async Task DressingSave(DressingViewModel viewModel)
        {
            await this.DbContext.Database.BeginTransactionAsync();

            //Saving Dressing Model
            DressingEntity dressingEntity = await SaveEntity <DressingEntity, DressingModel>(viewModel.Model, false);

            BlockDressingEntity blockDressingEntity;

            foreach (var block in viewModel.Model.Blocks)
            {
                blockDressingEntity = await SaveEntity <BlockDressingEntity, BlockDressingModel>(block, false);

                blockDressingEntity.Dressing = dressingEntity;
            }

            //saving Stoppages & Operators
            await StoppagesSave(viewModel.MachineStoppages, viewModel.Model.MachineId);
            await OperatorsSave(viewModel.MachineOperators, viewModel.Model.MachineId);
        }
예제 #4
0
        // Dressing
        public async Task<DressingViewModel> DressingGet(int? machineId, DateTime? processDate)
        {
            DressingViewModel viewModel = new DressingViewModel();
            if (machineId == null || processDate == null)
            {
                // returning blank model
                viewModel.Model = new DressingModel() { ProcessDate = DateTime.Now.Date, Blocks = new List<BlockDressingModel>() };
                viewModel.MachineOperators = new List<MachineOperatorModel>();
                viewModel.MachineStoppages = new List<MachineStoppageModel>();

                for (int counter = 0; counter < 2; counter++)
                {
                    // 6 blank blocks
                    viewModel.Model.Blocks.Add(new BlockDressingModel());
                }
            }

            viewModel.Machines = await this.plantRepository.MachineListItemGet();
            viewModel.Operators = await this.plantRepository.OperatorListItemGet();

            return viewModel;
        }
예제 #5
0
        public async Task DressingSave(DressingViewModel viewModel, SharedDomain sharedDomain)
        {
            List<NTError> errors = new List<NTError>();

            // validating BlockNumbers
            string[] blockNumbers = viewModel.Model.Blocks.Select(m => m.BlockNumber).ToArray();
            List<BlockStateModel> blockStates = await sharedDomain.BlockStatesGet(blockNumbers);

            string[] invalidBlockNumbers = blockNumbers.Except(blockStates.Where(b => b.State == (int)State.Excavate).Select(b => b.BlockNumber)).ToArray();
            if (invalidBlockNumbers.Length > 0)
            {
                errors.Add(new NTError() { Description = string.Format(PlantMessages.BlockNumbersInvalid, string.Join(", ", invalidBlockNumbers)) });
            }

            // validating time for Stoppages
            if (!viewModel.MachineStoppages.ValidateTimeRange())
            {
                errors.Add(new NTError() { Description = PlantMessages.StoppageTimeRangeInvalid });
            }

            // checking for one operator
            if (viewModel.MachineOperators.Count == 0)
            {
                errors.Add(new NTError() { Description = PlantMessages.OperatorRequired });
            }
            else if (!viewModel.MachineOperators.ValidateTimeRange())
            {
                errors.Add(new NTError() { Description = PlantMessages.OperatorTimeRangeInvalid });
            }

            if (errors.Count > 0)
            {
                throw new NTException(PlantMessages.DressingError, errors);
            }

            // saving the Block Dressing
            await this.plantRepository.DressingSave(viewModel);

            // finally saving the state info
            foreach (var state in blockStates)
            {
                state.State = (int)State.Dress;
            }

            await sharedDomain.BlockStatesSave(blockStates);
        }
예제 #6
0
 public async Task <AjaxModel <NTModel> > DressingSave([FromBody] DressingViewModel viewModel)
 {
     return(await AjaxHelper.SaveAsync(m => domain.DressingSave(viewModel, HttpContext.RequestServices.GetRequiredService <SharedDomain>()), PlantMessages.DressingSaveSuccess));
 }