GetUsuarioModel IUsuarioService.Cadastrar(PostUsuarioModel model) { if (context.Usuarios.SingleOrDefault(f => f.DsEmail == model.DsEmail.Raw || f.NrTelefone == model.NrTelefone) != null) { throw new ApiException(HttpStatusCode.Conflict, "Usuário já cadastrado."); } if (!model.DsEmail.IsValid()) { throw new ApiException(HttpStatusCode.Conflict, "Email inválido."); } var usuario = new Usuario { CdUsuario = 0, // ignorado DsSenha = model.DsSenha.Raw, DtCadastro = DateTime.Now, FlAtivo = true, NmUsuario = model.NmUsuario, DsEmail = model.DsEmail.Raw, NrTelefone = model.NrTelefone, DtNascimento = model.DtNascimento, Perfil = context.Perfis.Find(2), // Perfil de Funcionário }; context.Add <Usuario>(usuario); context.SaveChanges(); return(mapper.Map <Usuario, GetUsuarioModel>(usuario)); }
public async Task <IHttpActionResult> Post(PostUsuarioModel model) { try { logger.Debug("Post", model); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var entity = base.ModelMapper.Map <Usuario>(model); var result = this.service.Add(entity); logger.Info(result); if (!result.Succeeded) { return(base.GetErrorResult(result)); } var resultSaveChanges = await this.service.SaveChangesAsync(ServiceChangeCommentBuilder.GetCreateComment <Usuario>()); logger.Info(resultSaveChanges); if (resultSaveChanges.Succeeded) { return(CreatedAtRoute("DefaultApi", new { id = result.Result.Id }, base.ModelMapper.Map <UsuarioModel>(result.Result))); } else { return(base.GetErrorResult(resultSaveChanges)); } } catch (Exception ex) { logger.Error(ex); return(InternalServerError(ex)); } }
public IActionResult Post([FromBody] PostUsuarioModel model) { var usuario = usuarioService.Cadastrar(model); return(CreatedAtAction("GetById", new { id = usuario.CdUsuario }, usuario)); }