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)); } } }
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)); } } }