Ejemplo n.º 1
0
        public OperationResult <Guid?> UpdateParameter(ParameterEditDto 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à
            Parameter entity = _parameterRepository.Load(dto.Id);

            entity.Name          = dto.Name;
            entity.Process       = dto.Process.HasValue ? _processRepository.Load(dto.Process) : null;
            entity.Frequency     = dto.Frequency;
            entity.FrequencyType = dto.FrequencyType?.Id;
            entity.IsEnabled     = !dto.IsEnabled.HasValue ? false : dto.IsEnabled;

            if (dto.Alarms != null && dto.Alarms.Count > 0)
            {
                entity.Alarms.Clear();
                foreach (var item in dto.Alarms)
                {
                    item.Parameter = entity.Id;
                    var oResult = item.Id.HasValue ? _alarmService.UpdateAlarm(item): _alarmService.CreateAlarm(item);

                    if (oResult.HasErrors())
                    {
                        return(new OperationResult <Guid?>
                        {
                            ValidationResults = oResult.ValidationResults
                        });
                    }
                    var alarm = _alarmService.Load <Alarm, Guid?>(oResult.ReturnedValue);
                    entity.Alarms.Add(alarm);
                }
            }

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

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

            //Ritorno i risultati
            return(new OperationResult <Guid?>
            {
                ReturnedValue = entity.Id,
                ValidationResults = vResults
            });
        }
        protected virtual async Task Update(ParameterEditDto input)
        {
            //TODO:更新前的逻辑判断,是否允许更新

            var entity = await _entityRepository.GetAsync(input.Id.Value);

            input.MapTo(entity);

            // ObjectMapper.Map(input, entity);
            await _entityRepository.UpdateAsync(entity);
        }
        protected virtual async Task <ParameterEditDto> Create(ParameterEditDto input)
        {
            //TODO:新增前的逻辑判断,是否允许新增

            //var entity2 = ObjectMapper.Map <Parameter>(input);
            var entity = input.MapTo <Parameter>();


            entity = await _entityRepository.InsertAsync(entity);

            return(entity.MapTo <ParameterEditDto>());
        }
Ejemplo n.º 4
0
        public IHttpActionResult Update(ParameterEditDto dto)
        {
            //Recupero l'entity
            var oResult = _parameterService.UpdateParameter(dto);

            //Se ci sono stati errori, li notifico
            if (oResult.HasErrors())
            {
                Log4NetConfig.ApplicationLog.Warn(string.Format("Errore durante la modifica 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)));
        }
        public async Task <GetParameterForEditOutput> GetForEdit(NullableIdDto <long> input)
        {
            var output = new GetParameterForEditOutput();
            ParameterEditDto editDto;

            if (input.Id.HasValue)
            {
                var entity = await _entityRepository.GetAsync(input.Id.Value);

                editDto = entity.MapTo <ParameterEditDto>();

                //parameterEditDto = ObjectMapper.Map<List<parameterEditDto>>(entity);
            }
            else
            {
                editDto = new ParameterEditDto();
            }

            output.Parameter = editDto;
            return(output);
        }