public async Task <ActionResult> Put([FromBody] GrupoDTOUpdate grupo) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var result = await _service.Put(grupo); if (result != null) { return(Ok(await _service.Get(result.Idgrupo))); } else { return(BadRequest()); } } catch (ArgumentException ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); } }
public async Task <GrupoDTOUpdateReturn> Put(GrupoDTOUpdate grupo) { try { var model = _mapper.Map <GrupoModel>(grupo); var entity = _mapper.Map <Grupo>(model); entity.Lojas.ToList().ForEach(x => x.Grupo = entity); entity.Lojas.ToList().ForEach(x => x.Ativo = 'A'); entity.Lojas.ToList().ForEach(x => x.Datadeinclusao = DateTime.UtcNow); entity.Lojas.ToList().ForEach(x => x.Usuariodeinclusao = _currentUserAccessor.GetCurrentUser().Idusuario); entity.Lojas.ToList().ForEach(x => x.Fkparceiro = _currentUserAccessor.GetCurrentUser().Idparceiro); entity.Parametros.ToList().ForEach(x => x.Grupo = entity); entity.Parametros.ToList().ForEach(x => x.Ativo = 'A'); entity.Parametros.ToList().ForEach(x => x.Datadeinclusao = DateTime.UtcNow); entity.Parametros.ToList().ForEach(x => x.Usuariodeinclusao = _currentUserAccessor.GetCurrentUser().Idusuario); entity.Parametros.ToList().ForEach(x => x.Fkparceiro = _currentUserAccessor.GetCurrentUser().Idparceiro); var _itemCadastrado = await _repository.SelectAsync(entity.Idgrupo); foreach (Loja loja in _itemCadastrado.Lojas) { if (entity.Lojas.FirstOrDefault(x => x.Idloja == loja.Idloja) == null) { loja.Ativo = 'I'; loja.Datadeinativacao = DateTime.UtcNow; loja.Usuariodeinativacao = _currentUserAccessor.GetCurrentUser().Idusuario; entity.Lojas.Add(loja); } } foreach (Parametro parametro in _itemCadastrado.Parametros) { if (entity.Parametros.FirstOrDefault(x => x.Idparametro == parametro.Idparametro) == null) { parametro.Ativo = 'I'; parametro.Datadeinativacao = DateTime.UtcNow; parametro.Usuariodeinativacao = _currentUserAccessor.GetCurrentUser().Idusuario; entity.Parametros.Add(parametro); } } foreach (Loja loja in entity.Lojas) { var _itemFilhoCadastrado = _itemCadastrado.Lojas.FirstOrDefault(x => x.Idloja == loja.Idloja); if (_itemFilhoCadastrado != null) { loja.Usuariodeinclusao = _itemFilhoCadastrado.Usuariodeinclusao; loja.Datadeinclusao = _itemFilhoCadastrado.Datadeinclusao; } } foreach (Parametro parametro in entity.Parametros) { var _itemFilhoCadastrado = _itemCadastrado.Parametros.FirstOrDefault(x => x.Idparametro == parametro.Idparametro); if (_itemFilhoCadastrado != null) { parametro.Usuariodeinclusao = _itemFilhoCadastrado.Usuariodeinclusao; parametro.Datadeinclusao = _itemFilhoCadastrado.Datadeinclusao; } } var result = await _repository.UpdateAsync(entity, entity.Idgrupo); var retornodeAlteracao = await _repository.SelectAsync(entity.Idgrupo); return(_mapper.Map <GrupoDTOUpdateReturn>(retornodeAlteracao)); } catch (Exception ex) { throw ex; } }