public async Task <IActionResult> AddCategory(SubCategoryAddRequest model) { Response oR = new Response(); try { if (!ModelState.IsValid) { oR.Status = StatusCodes.Status400BadRequest; oR.Message = Messages.ValidationsFailed; oR.Data = GetModelErrors(ModelState); return(BadRequest(oR)); } if (!await _service.ExistsName(model.CategoryId, model.Name)) { ModelState.AddModelError("Name", Messages.ResourceNameAlreadyExists); oR.Status = StatusCodes.Status400BadRequest; oR.Message = Messages.ValidationsFailed; oR.Data = GetModelErrors(ModelState); return(BadRequest(oR)); } var oCategory = await _service.Add(model); if (oCategory != null) { oR.Status = StatusCodes.Status201Created; oR.Data = oCategory; return(CreatedAtAction(nameof(GetById), new { id = oCategory.Id }, oR)); } else { oR.Status = StatusCodes.Status500InternalServerError; oR.Message = Messages.InternalServerError; return(StatusCode(StatusCodes.Status500InternalServerError, oR)); } } catch (Exception ex) { oR.Status = StatusCodes.Status500InternalServerError; oR.Message = Messages.InternalServerError; return(StatusCode(StatusCodes.Status500InternalServerError, oR)); } }