Exemplo n.º 1
0
        public IHttpActionResult Create(ParameterEditDto dto)
        {
            //Recupero l'entity
            var oResult = _parameterService.CreateParameter(dto);

            //Se ci sono stati errori, li notifico
            if (oResult.HasErrors())
            {
                Log4NetConfig.ApplicationLog.Warn(string.Format("Errore durante la creazione di un Parametro. 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, new { id = oResult.ReturnedValue.Value })));
        }
Exemplo n.º 2
0
        public OperationResult <Guid?> CreateProcess(ProcessEditDto dto)
        {
            //Validazione argomenti
            if (dto == null)
            {
                throw new ArgumentNullException(nameof(dto));
            }

            //Dichiaro la lista di risultati di ritorno
            IList <ValidationResult> vResults = new List <ValidationResult>();

            //Definisco l'entità
            Process entity = new Process();

            entity.Name        = dto.Name;
            entity.ProcessType = dto.ProcessType;
            entity.IsEnabled   = !dto.IsEnabled.HasValue ? false : dto.IsEnabled;

            //Eseguo la validazione logica
            vResults = ValidateEntity(entity);

            if (!vResults.Any())
            {
                //Salvataggio su db
                _processRepository.Save(entity);
            }

            if (dto.Parameters != null && dto.Parameters.Count > 0)
            {
                entity.Parameters.Clear();
                foreach (var item in dto.Parameters)
                {
                    item.Process = entity.Id;
                    var oResult = _parameterService.CreateParameter(item);
                    if (oResult.HasErrors())
                    {
                        return(new OperationResult <Guid?>
                        {
                            ValidationResults = oResult.ValidationResults
                        });
                    }
                    var parameter = _parameterService.Load <Parameter, Guid?>(oResult.ReturnedValue);
                    entity.Parameters.Add(parameter);
                }
            }

            if (dto.ProcessMacros != null && dto.ProcessMacros.Count > 0)
            {
                entity.ProcessMacros.Clear();
                foreach (var item in dto.ProcessMacros)
                {
                    item.Process = entity.Id;
                    var oResult = _processMacroService.CreateProcessMacro(item);
                    if (oResult.HasErrors())
                    {
                        return(new OperationResult <Guid?>
                        {
                            ValidationResults = oResult.ValidationResults
                        });
                    }
                    var processMacro = _processMacroService.Load <ProcessMacro, Guid?>(oResult.ReturnedValue);
                    entity.ProcessMacros.Add(processMacro);
                }
            }

            //Eseguo la validazione logica
            vResults = ValidateEntity(entity);

            if (!vResults.Any())
            {
                //Salvataggio su db
                _processRepository.Save(entity);
            }

            //Ritorno i risultati
            return(new OperationResult <Guid?>
            {
                ReturnedValue = entity.Id,
                ValidationResults = vResults
            });
        }