public ProcedureEditModel BuildModel(ProcedureEditModel model)
        {
            var categories = _unitOfWork.GetRepository<Domain.ProcedureCategory>().Get();
            model.Categories = categories.Select(x => _categoryModelConverter.ConvertToModel(x)).ToList();

            var categoryTypes = _unitOfWork.GetRepository<ProcedureType>().Get();
            model.Types = categoryTypes.Select(x => _typesModelConverter.ConvertToModel(x)).ToList();

            return model;
        }
        public ActionResult Edit(ProcedureEditModel viewModel)
        {
            if (ModelState.IsValid)
            {
                _procedureRepository.Update(viewModel);
                return RedirectToAction("Index");
            }

            var rebuilt = _procedureModelConverter.BuildModel(viewModel);
            return View(rebuilt);
        }
        public Procedure ConvertToSource(ProcedureEditModel model)
        {
            var procedure = model.Id != 0 ? _unitOfWork.GetRepository<Procedure>().FindById(model.Id)
                                          : new Procedure();

            procedure.Category = _unitOfWork.GetRepository<Domain.ProcedureCategory>().FindById(model.SelectedCategoryId);
            procedure.Type = _unitOfWork.GetRepository<ProcedureType>().FindById(model.SelectedTypeId);
            procedure.Description = model.Description;
            procedure.RegularPrice = model.RegularPrice;
            procedure.SalePrice = model.SalePrice;
            procedure.CategoryId = model.SelectedCategoryId;
            procedure.TypeId = model.SelectedTypeId;
            procedure.PicPath = model.PicturePath;
            return procedure;
        }