/// <summary> /// Atualiza grupo /// </summary> public async Task Atualizar(int id, GrupoRequest model) { Grupo entidade = this.mapper.Map <Grupo>(model); entidade.Id = id; IdentityUser usuarioAtual = await RecuperaUsuarioAtualAsync(); // Verifica permissao do usuario atual GrupoUsuario grupoUsuario = await this.repositorioGrupoUsuario.ObterAsync(x => x.UsuarioId == usuarioAtual.Id && x.GrupoId == id && x.Excluido == false); if (grupoUsuario == null) { throw new ApiExcecao(403, "Usuario não pode excluir permissao pois não é membro do grupo"); } if (grupoUsuario.PermissaoId != (int)API.Permissao.Dono && grupoUsuario.PermissaoId != (int)API.Permissao.Moderador) // Apenas o dono ou moderador pode alterar o grupo { throw new ApiExcecao(403, "Usuario não pode alterar o grupo pois não é dono ou moderador do grupo"); } await this.repositorio.AtualizarAsync(entidade); }
public IHttpActionResult Insert([FromBody] GrupoRequest request) { try { //Valida objeto if (!ModelState.IsValid) { return(BadRequest("Dados inválidos.")); } var entity = Mapper.Map <GrupoRequest, Grupo>(request); _business.Insert(ref entity); if (entity.Id > 0) { //Monta response _result = Ok(Retorno <GrupoResponse> .Criar(true, "Inclusão Realizada Com Sucesso", Mapper.Map <Grupo, GrupoResponse>(entity))); } //Retorna o response return(_result); } catch (Exception) { throw new HttpResponseException(HttpStatusCode.InternalServerError); } }
/// <summary> /// Criar /// </summary> /// <returns>Grupo criado</returns> public async Task <GrupoResponse> Criar(GrupoRequest model) { Grupo entidade = this.mapper.Map <Grupo>(model); // Cria um novo grupo e recupera o usuario atual Task <IdentityUser> usuarioTask = RecuperaUsuarioAtualAsync(); Task <Grupo> entidadeTask = this.repositorio.InserirAsync(entidade); IdentityUser usuario = await usuarioTask; entidade = await entidadeTask; // Adiciona o usuario no proprio grupo que está sendo criando await this.repositorioGrupoUsuario.InserirAsync(new GrupoUsuario(entidade.Id, usuario.Id, (int)API.Permissao.Dono)); return(this.mapper.Map <GrupoResponse>(entidade)); }
public IHttpActionResult Update(int id, [FromBody] GrupoRequest request) { try { //Valida objeto if (!ModelState.IsValid) { return(BadRequest("Dados inválidos.")); } var entityInDb = _business.GetById(id); //Verifica se objeto existe if (entityInDb == null) { return(NotFound()); } //Mapeio os dados do dto para o objeto recuperado do banco, atualizando os dados do objeto do banco Mapper.Map(request, entityInDb); if (_business.Update(entityInDb)) { //Monta response _result = Ok(Retorno <Grupo> .Criar(true, "Atualização Realizada Com Sucesso", entityInDb)); //Retorna o response return(_result); } else { return(BadRequest("Nenhum registro atualizado. Verifique os dados enviados.")); } } catch (Exception) { throw new HttpResponseException(HttpStatusCode.InternalServerError); } }
public async Task <GrupoResponse> Criar([FromBody] GrupoRequest model) => await this.negocioGrupo.Criar(model);
public async Task Atualizar([FromRoute] int grupoId, [FromBody] GrupoRequest model) => await this.negocioGrupo.Atualizar(grupoId, model);