private void NormalizeProcessMacrosIds(ProcessInstanceEditDto dto) { foreach (var processMacro in dto.Process.ProcessMacros) { processMacro.Id = null; processMacro.Process = null; } }
private void NormalizeParametersIds(ProcessInstanceEditDto dto) { foreach (var parameter in dto.Process.Parameters) { parameter.Id = null; parameter.Process = null; } }
private void NormalizeAlarmsIds(ProcessInstanceEditDto dto) { foreach (var parameter in dto.Process.Parameters) { foreach (var alarm in parameter.Alarms) { alarm.Id = null; alarm.Parameter = null; } } }
public IHttpActionResult Update(ProcessInstanceEditDto dto) { //Recupero l'entity var oResult = _processInstanceService.UpdateProcessInstance(dto); //Se ci sono stati errori, li notifico if (oResult.HasErrors()) { Log4NetConfig.ApplicationLog.Warn(string.Format("Errore durante la modifica di un ProcessInstanceo. Nome: {0}", dto.Name, 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?> CreateProcessInstance(ProcessInstanceEditDto dto) { //Validazione argomenti if (dto == null) { throw new ArgumentNullException(nameof(dto)); } //Dichiaro la lista di risultati di ritorno IList <ValidationResult> vResults = new List <ValidationResult>(); NormalizeParametersIds(dto); NormalizeProcessMacrosIds(dto); NormalizeAlarmsIds(dto); dto.Process.ProcessType = ProcessType.Instance; var oResult = _processService.CreateProcess(dto.Process); if (oResult.HasErrors()) { return(oResult); } //Definisco l'entità ProcessInstance entity = new ProcessInstance(); entity.Name = dto.Name; entity.Patient = dto.Patient.HasValue ? _registryRepository.Load(dto.Patient) : null; entity.Process = _processService.Load <Process, Guid?>(oResult.ReturnedValue); entity.ProcessInstanceState = ProcessInstanceState.Open; entity.Doctors.Clear(); if (dto.Doctors != null && dto.Doctors.Count() > 0) { foreach (var doctor in dto.Doctors) { Registry doctorEntity = _registryRepository.Load(doctor.Id); entity.Doctors.Add(doctorEntity); } } entity.ReferencePersons.Clear(); if (dto.ReferencePersons != null && dto.ReferencePersons.Count() > 0) { foreach (var referencePerson in dto.ReferencePersons) { Registry referencePersonEntity = _registryRepository.Load(referencePerson.Id); entity.ReferencePersons.Add(referencePersonEntity); } } //Eseguo la validazione logica vResults = ValidateEntity(entity); if (!vResults.Any()) { //Salvataggio su db _processInstanceRepository.Save(entity); } //Ritorno i risultati return(new OperationResult <Guid?> { ReturnedValue = entity.Id, ValidationResults = vResults }); }