public async Task <IHttpActionResult> Post(TContract contract) { IEnumerable <string> validationErrors = new List <string>(); validationErrors = validationErrors.Concat(await ContractValidator.ValidateContract(contract)); if (validationErrors.Any()) { return(BadRequest(string.Join("\n", validationErrors))); } contract.CreatedByUserId = IdPrincipal.Id; contract.CreatedOn = DateTimeOffset.UtcNow; contract.LastUpdatedByUserId = null; contract.LastUpdatedOn = null; var createdTDto = await Dal.Create(Mapper.Map <TDto>(contract)); var createdT = Mapper.Map <TContract>(createdTDto); return(Created(Url.Link(CreatedRouteName, new { id = createdT.Id, controller = ControllerName }), createdT)); }
public async Task <IHttpActionResult> Put(TContract contract) { IEnumerable <string> validationErrors = new List <string>(); validationErrors = validationErrors.Concat(await ContractValidator.ValidateContract(contract)); if (validationErrors.Any()) { return(BadRequest(string.Join("\n", validationErrors))); } try { contract.LastUpdatedByUserId = IdPrincipal.Id; contract.LastUpdatedOn = DateTimeOffset.UtcNow; var updatedTDto = await Dal.Update(Mapper.Map <TDto>(contract)); var updatedT = Mapper.Map <TContract>(updatedTDto); return(Ok(updatedT)); } catch (ObjectNotFoundException) { return(NotFound()); } }