private BuildingType CreateBuildingTypeObject(BuildingTypeEditingModel obj)
        {
            BuildingType entityObject = new BuildingType();

            entityObject.Id          = obj.Id;
            entityObject.Name        = obj.Name;
            entityObject.Parent      = repository.GetByName(obj.ParentName);
            entityObject.ParentId    = entityObject.Parent?.Id;
            entityObject.Description = obj.Description;
            entityObject.UserId      = User.Identity.GetUserId();
            //entityObject.UserId = obj.UserId;
            return(entityObject);
        }
        public ActionResult Create(BuildingTypeEditingModel model)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.ParentName = SelectTypeNames(repository);
                return(View(model));
            }

            BuildingType obj = CreateBuildingTypeObject(model);

            repository.Create(obj);
            uow.Save();

            TempData["message"] = "Дані про тип будівлі збережено";
            return(RedirectToAction("Create"));
        }
        public ActionResult Edit(BuildingTypeEditingModel model)
        {
            BuildingType obj  = CreateBuildingTypeObject(model);
            BuildingType item = repository.Get(obj.Id);

            if (User.Identity.GetUserId() == item.UserId)
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.ParentName = SelectTypeNames(repository);
                    return(View(model));
                }

                ModifyBuildingType(item, obj);
                repository.Update(item);
                uow.Save();

                TempData["message"] = "Дані про тип будівлі змінено";
            }

            return(RedirectToAction("BuildingType", "BuildingTypes", new { id = model.Id }));
        }