public void update(PageCategoryDto pageCategoryDto)
        {
            try
            {
                _transactionManager.beginTransaction();

                var pageCategoryId = _pageCategoryRepo.getById(pageCategoryDto.page_category_id);

                if (pageCategoryId == null)
                {
                    throw new ItemNotFoundException($"Page Category with id {pageCategoryDto.page_category_id} doesnot exist.");
                }

                var pageCategoryWithSameName = _pageCategoryRepo.getByName(pageCategoryDto.name);

                bool isNameAllowed = pageCategoryWithSameName == null || pageCategoryWithSameName.page_category_id == pageCategoryDto.page_category_id;
                if (!isNameAllowed)
                {
                    throw new DuplicateItemException("Page category with same name already exist.");
                }

                _pageCategoryMaker.copy(ref pageCategoryId, pageCategoryDto);
                _pageCategoryRepo.update(pageCategoryId);

                _transactionManager.commitTransaction();
            }
            catch (Exception)
            {
                _transactionManager.rollbackTransaction();
                throw;
            }
        }
 public void copy(ref PageCategory page_category, PageCategoryDto page_category_dto)
 {
     page_category.page_category_id = page_category_dto.page_category_id;
     page_category.name             = page_category_dto.name.Trim();
     page_category.is_enabled       = page_category_dto.is_enabled;
     page_category.slug             = _slugGenerator.generate(page_category_dto.name);
 }
 public IActionResult edit(PageCategoryModel model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             PageCategoryDto pageCategoryDto = new PageCategoryDto()
             {
                 page_category_id = model.page_category_id,
                 name             = model.name,
             };
             _pageCategoryService.update(pageCategoryDto);
             return(RedirectToAction("index"));
         }
     }
     catch (Exception ex)
     {
         AlertHelper.setMessage(this, ex.Message, messageType.error);
     }
     return(View(model));
 }
        public void save(PageCategoryDto pageCategoryDto)
        {
            try
            {
                _transactionManager.beginTransaction();
                var pageCategoryWithSameName = _pageCategoryRepo.getByName(pageCategoryDto.name);
                if (pageCategoryWithSameName != null)
                {
                    throw new DuplicateItemException("Page category with same name already exist.");
                }

                PageCategory page_category = new PageCategory();
                _pageCategoryMaker.copy(ref page_category, pageCategoryDto);
                _pageCategoryRepo.insert(page_category);
                _transactionManager.commitTransaction();
            }
            catch (Exception)
            {
                _transactionManager.rollbackTransaction();
                throw;
            }
        }
        public IActionResult add(PageCategoryModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    PageCategoryDto pageCategoryDto = new PageCategoryDto()
                    {
                        name       = model.name,
                        is_enabled = model.is_enabled,
                    };
                    _pageCategoryService.save(pageCategoryDto);
                    AlertHelper.setMessage(this, "Page Category saved successfully.", messageType.success);
                    return(RedirectToAction("index"));
                }
            }
            catch (Exception ex)
            {
                AlertHelper.setMessage(this, ex.Message, messageType.error);
            }

            return(View(model));
        }