public async Task <ViewResult> Create(int?taskId, int?componentId)
        {
            MontageSupplyRequest viewModel = new MontageSupplyRequest
            {
                ComponentId = componentId ?? 0,
                DesiredDate = DateTime.Now
            };

            if (taskId.HasValue)
            {
                viewModel.TaskId   = taskId;
                ViewBag.Components = (await _taskService.GetByIdAsync(viewModel.TaskId.Value)).ObtainedMontages
                                     .Select(c => new SelectListItem(
                                                 _montageService.GetByIdAsync(c.ComponentId).Result.ToString(),
                                                 c.ComponentId.ToString()
                                                 )).AsEnumerable();
            }
            else
            {
                ViewBag.Components = (await _montageService.GetAllAsync())
                                     .Select(c => new SelectListItem(c.ToString(), c.Id.ToString())).AsEnumerable();
            }

            return(View(viewModel));
        }
        public async Task <IActionResult> Edit(MontageSupplyRequest viewModel)
        {
            if (ModelState.IsValid)
            {
                await _montageSupplyRequestService.UpdateAsync(viewModel);

                return(RedirectToAction(nameof(Details), new { id = viewModel.Id }));
            }

            return(View(viewModel));
        }
        public async Task <IActionResult> CreatePost(MontageSupplyRequest viewModel)
        {
            if (ModelState.IsValid)
            {
                viewModel.DateAdded    = DateTime.Now;
                viewModel.StatusSupply = SupplyStatusEnum.NotAccepted;

                await _montageSupplyRequestService.CreateAsync(viewModel);

                return(RedirectToAction(nameof(Index)));
            }

            return(View(nameof(Create), viewModel));
        }