Пример #1
0
        public IHttpActionResult AtualizarFuncionario(int id, [FromBody] CadastroAtualizacaoDto dadosParaAtualizacao)
        {
            using (var sessao = new GDATransaction())
            {
                var validacao = this.ValidarAtualizacaoFuncionario(sessao, id, dadosParaAtualizacao);

                if (validacao != null)
                {
                    return(validacao);
                }

                var funcionarioFluxo = Microsoft.Practices.ServiceLocation.ServiceLocator
                                       .Current.GetInstance <Global.Negocios.IFuncionarioFluxo>();

                var funcionario = funcionarioFluxo.ObtemFuncionario(id);

                if (funcionario == null)
                {
                    return(this.NaoEncontrado(string.Format("Funcionário {0} não encontrado.", id)));
                }

                try
                {
                    funcionario = new ConverterCadastroAtualizacaoParaFuncionario(funcionarioFluxo, dadosParaAtualizacao, funcionario)
                                  .ConverterParaFuncionario();

                    var resultado = funcionarioFluxo.SalvarFuncionario(funcionario);

                    if (!resultado)
                    {
                        return(this.ErroValidacao($"Erro ao atualizar o funcionário {id}. {resultado.Message.Format()}"));
                    }

                    if (!string.IsNullOrWhiteSpace(dadosParaAtualizacao.DocumentosEDadosPessoais?.Foto))
                    {
                        byte[] bytes = Convert.FromBase64String(dadosParaAtualizacao.DocumentosEDadosPessoais.Foto);

                        using (var imagem = new System.IO.MemoryStream(bytes))
                        {
                            var repositorio = Microsoft.Practices.ServiceLocation.ServiceLocator
                                              .Current.GetInstance <Global.Negocios.Entidades.IFuncionarioRepositorioImagens>();

                            repositorio.SalvarImagem(funcionario.IdFunc, imagem);
                        }

                        Microsoft.Practices.ServiceLocation.ServiceLocator
                        .Current.GetInstance <Global.Negocios.IMenuFluxo>().RemoveMenuFuncMemoria(funcionario.IdFunc);
                    }

                    return(this.Aceito(string.Format($"Funcionário {id} atualizado com sucesso!")));
                }
                catch (Exception e)
                {
                    return(this.ErroValidacao($"Erro ao atualizar o funcionário {id}.", e));
                }
            }
        }
Пример #2
0
        public IHttpActionResult CadastrarFuncionario([FromBody] Models.Funcionarios.V1.CadastroAtualizacao.CadastroAtualizacaoDto dadosParaCadastro)
        {
            using (var sessao = new GDATransaction())
            {
                var validacao = this.ValidarCadastroFuncionario(sessao, dadosParaCadastro);

                if (validacao != null)
                {
                    return(validacao);
                }

                try
                {
                    var funcionarioFluxo = Microsoft.Practices.ServiceLocation.ServiceLocator
                                           .Current.GetInstance <Global.Negocios.IFuncionarioFluxo>();

                    var funcionario = new ConverterCadastroAtualizacaoParaFuncionario(funcionarioFluxo, dadosParaCadastro)
                                      .ConverterParaFuncionario();

                    var resultado = funcionarioFluxo.SalvarFuncionario(funcionario);

                    if (!resultado)
                    {
                        return(this.ErroValidacao($"Erro ao inserir o funcionário. {resultado.Message.Format()}"));
                    }

                    if (!dadosParaCadastro.VerificarCampoInformado(c => c.DocumentosEDadosPessoais.Foto))
                    {
                        return(this.Criado(string.Format($"Funcinário {funcionario.IdFunc} inserido com sucesso!"), funcionario.IdFunc));
                    }

                    byte[] bytes = Convert.FromBase64String(dadosParaCadastro.DocumentosEDadosPessoais.Foto);

                    using (var imagem = new System.IO.MemoryStream(bytes))
                    {
                        var repositorio = Microsoft.Practices.ServiceLocation.ServiceLocator
                                          .Current.GetInstance <Global.Negocios.Entidades.IFuncionarioRepositorioImagens>();

                        repositorio.SalvarImagem(funcionario.IdFunc, imagem);
                    }

                    Microsoft.Practices.ServiceLocation.ServiceLocator
                    .Current.GetInstance <Global.Negocios.IMenuFluxo>().RemoveMenuFuncMemoria(funcionario.IdFunc);

                    return(this.Criado(string.Format($"Funcinário {funcionario.IdFunc} inserido com sucesso!"), funcionario.IdFunc));
                }
                catch (Exception e)
                {
                    sessao.Rollback();
                    return(this.ErroValidacao("Erro ao inserir o funcionário.", e));
                }
            }
        }