public BaseResponse <CategoryResponse> CreateCategory([FromBody] CategoryCreationRequest request, [FromHeader] Guid UserID) { return(BaseResponse <CategoryResponse> .ConstructResponse( HttpStatusCode.OK, HttpStatusCode.OK.ToString(), categoryService.CreateCategory(request, UserID))); }
public CategoryResponse CreateCategory(CategoryCreationRequest request, Guid UserID) { using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction()) { try { Categories category = dbContext.Categories .Where(c => c.Name.Equals(request.Name) && c.CreatorUserId.Equals(UserID)).FirstOrDefault(); Users user = dbContext.Users.Find(UserID); if (category != null) { throw new BusinessLogicException(HttpStatusCode.BadRequest, ResponseCode.DATA_ALREADY_EXIST.ToString()); } if (user == null) { throw new BusinessLogicException(HttpStatusCode.BadRequest, ResponseCode.USER_NOT_EXIST.ToString()); } Categories createdCategory = new Categories(); createdCategory.Name = request.Name; createdCategory.CreatorUserId = UserID; createdCategory.CreatedDate = DateTime.Now; createdCategory.CreatedBy = user.Email; createdCategory.UpdatedDate = DateTime.Now; createdCategory.UpdatedBy = user.Email; dbContext.Categories.Add(createdCategory); dbContext.SaveChanges(); transaction.Commit(); CategoryResponse response = new CategoryResponse(); response.CategoryId = createdCategory.CategoryId; response.Name = createdCategory.Name; return(response); } catch (BusinessLogicException e) { transaction.Rollback(); throw e; } catch { transaction.Rollback(); throw new BusinessLogicException(HttpStatusCode.InternalServerError, ResponseCode.FAILED_TO_CREATED_DATA.ToString()); } } }