public virtual async Task <IHttpActionResult> Post(TCreateProfile entity) { if (!ModelState.IsValid) { var modelErrors = ModelState.Values.SelectMany(x => x.Errors); return(new ModelErrorResult(Request, modelErrors)); } var isValid = await _service.ValidateAsync(entity); if (!isValid) { return(new ContentErrorResult(Request, HttpStatusCode.Forbidden, "User email already exists")); } var result = await _service.AddAsync(entity); if (!result.Item2) { return(new ContentErrorResult(Request, HttpStatusCode.BadRequest, result.Item3)); } entity.Id = result.Item1.Id; NotifyUser(entity); return(Ok(result)); }