public IActionResult AddComponent()
        {
            var viewModel = new AddComponentViewModel
            {
                ComponentTypes = componentTypesManager.LoadAll().Select(ct => new SelectListItem {
                    Text = ct.Name, Value = ct.Id.ToString()
                })
            };

            return(View(viewModel));
        }
        public IActionResult EditComponent(long id)
        {
            var component = componentsManager.GetById(id);
            var viewModel = new AddComponentViewModel
            {
                Id = component.Id,
                SelectedComponentTypeId = component.ComponentTypeId,
                Name           = component.Name,
                Price          = component.Price,
                ComponentTypes = componentTypesManager.LoadAll().Select(ct => new SelectListItem {
                    Text = ct.Name, Value = ct.Id.ToString()
                }),
            };

            return(View(viewModel));
        }
        public IActionResult AddComponent([FromForm] AddComponentViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                model.ComponentTypes = componentTypesManager.LoadAll()
                                       .Select(ct => new SelectListItem {
                    Text = ct.Name, Value = ct.Id.ToString(), Selected = ct.Id == model.SelectedComponentTypeId
                });
                return(this.View(model));
            }

            componentsManager.Add(new ComponentWriteModel {
                Name = model.Name, ComponentTypeId = model.SelectedComponentTypeId, Price = model.Price
            });

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