Пример #1
0
 private void NormalizeProcessMacrosIds(ProcessInstanceEditDto dto)
 {
     foreach (var processMacro in dto.Process.ProcessMacros)
     {
         processMacro.Id      = null;
         processMacro.Process = null;
     }
 }
Пример #2
0
 private void NormalizeParametersIds(ProcessInstanceEditDto dto)
 {
     foreach (var parameter in dto.Process.Parameters)
     {
         parameter.Id      = null;
         parameter.Process = null;
     }
 }
Пример #3
0
 private void NormalizeAlarmsIds(ProcessInstanceEditDto dto)
 {
     foreach (var parameter in dto.Process.Parameters)
     {
         foreach (var alarm in parameter.Alarms)
         {
             alarm.Id        = null;
             alarm.Parameter = null;
         }
     }
 }
Пример #4
0
        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)));
        }
Пример #5
0
        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
            });
        }