public IHttpActionResult Update(HealthRiskEditDto dto) { //Recupero l'entity var oResult = _healthRiskService.UpdateHealthRisk(dto); //Se ci sono stati errori, li notifico if (oResult.HasErrors()) { Log4NetConfig.ApplicationLog.Warn(string.Format("Errore durante la creazione di un health risk. Type: {0}, Level: {1}", dto.Type, dto.Level, oResult.GetValidationErrorsInline(" - "))); NHibernateHelper.SessionFactory.GetCurrentSession().Transaction.Rollback(); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, oResult))); } //Ritorno i risultati return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK))); }
public OperationResult <Guid?> UpdateHealthRisk(HealthRiskEditDto dto) { //Validazione argomenti if (dto == null) { throw new ArgumentNullException(nameof(dto)); } if (!dto.Id.HasValue) { throw new ArgumentNullException(nameof(dto.Id)); } //Dichiaro la lista di risultati di ritorno IList <ValidationResult> vResults = new List <ValidationResult>(); //Definisco l'entità HealthRisk entity = _healthRiskRepository.Load(dto.Id); entity.Registry = dto.Registry != null && dto.Registry.Id.HasValue ? _registryRepository.Load(dto.Registry.Id) : null; entity.Level = dto.Level?.Id; entity.Rating = dto.Rating; entity.Type = dto.Type?.Id; entity.StartDate = dto.StartDate; entity.EndDate = dto.EndDate; //Eseguo la validazione logica vResults = ValidateEntity(entity); if (!vResults.Any()) { //Salvataggio su db _healthRiskRepository.Save(entity); } //Ritorno i risultati return(new OperationResult <Guid?> { ReturnedValue = entity.Id, ValidationResults = vResults }); }