public AdicionarAnexoEmUmaReuniaoResposta AdicionarAnexoEmUmaReuniao(AdicionarAnexoEmUmareuniaoRequisicao requisicao)
        {
            var resposta = new AdicionarAnexoEmUmaReuniaoResposta();
            try
            {
                var reuniao = _reuniaoRepositorio.ObterPor(requisicao.CodigoDaReuniao);
                var dataUpload = SystemTime.Now;

                var anexo = new Arquivo(requisicao.Descricao, requisicao.Nome, dataUpload);
                reuniao.AdicionarAnexo(anexo);

                var repositorioDeArquivos = new RepositorioDeArquivos();
                repositorioDeArquivos.ArmazenarArquivo(requisicao.Arquivo, requisicao.Nome, dataUpload);

                resposta.Anexo = anexo;

                _unitOfWork.Commit();
                resposta.Sucesso = true;
            }
            catch (RegraException regraException)
            {
                resposta.Erros = regraException.Erros;
            }

            return resposta;
        }
        public AdicionarAprovacaoResposta AdicionarAprovacao(AdicionarAprovacaoRequisicao requisicao)
        {
            var resposta = new AdicionarAprovacaoResposta();
            var repositorioDeArquivos = new RepositorioDeArquivos();
            var dataDeUpload = SystemTime.Now;
            try
            {
                var grupo = _grupoRepositorio.ObterPor(requisicao.CodigoDoGrupoResponsavel);
                var programa = _programaRepositorio.ObterPor(requisicao.CodigoDoPrograma);
                var anexo = new Arquivo(requisicao.Descricao, requisicao.NomeDoAnexo, dataDeUpload);
                var aprovacao = new Aprovacao
                                    {
                                        Anexo = anexo,
                                        Status = StatusDaAprovacao.Pendente,
                                        Tipo = requisicao.Tipo,
                                        GrupoResponsavel = grupo,
                                        Titulo = requisicao.Titulo,
                                        Programa = programa
                                    };

                _aprovacaoRepositorio.Adicionar(aprovacao);

                repositorioDeArquivos.ArmazenarArquivo(requisicao.Arquivo, requisicao.NomeDoAnexo, dataDeUpload);

                _unitOfWork.Commit();
                resposta.Aprovacao = aprovacao;
                resposta.Sucesso = true;
            }
            catch (RegraException regraException)
            {
                repositorioDeArquivos.RemoverArquivo(requisicao.NomeDoAnexo, dataDeUpload);
                resposta.Erros = regraException.Erros;
            }
            return resposta;
        }
 public FaturamentoServicoDeAplicacao(IUnitOfWork unitOfWork, IProgramaRepositorio programaRepositorio, IClinicaRepositorio clinicaRepositorio, IFuncionarioRepositorio funcionarioRepositorio,
     IInfusaoRepositorio infusaoRepositorio, INotaFiscalRepositorio notaFiscalRepositorio, RepositorioDeArquivos repositorioDeArquivos)
 {
     _unitOfWork = unitOfWork;
     _clinicaRepositorio = clinicaRepositorio;
     _funcionarioRepositorio = funcionarioRepositorio;
     _infusaoRepositorio = infusaoRepositorio;
     _notaFiscalRepositorio = notaFiscalRepositorio;
     _repositorioDeArquivos = repositorioDeArquivos;
     _programaRepositorio = programaRepositorio;
 }
 public PessoaServicoDeAplicacao(IPerfilRepositorio perfilRepositorio, IUnitOfWork unitOfWork, IFuncionarioRepositorio funcionarioRepositorio,
     IClienteRepositorio clienteRepositorio, ICargoRepositorio cargoRepositorio, IDepartamentoRepositorio departamentoRepositorio, IPessoaRepositorio pessoaRepositorio,
     FuncionarioServico funcionarioServico, ClienteServico clienteServico, IProgramaRepositorio programaRepositorio,
     ITipoDeCrmRepositorio tipoDeCrmRepositorio, RepositorioDeArquivos repositorioDeArquivos)
 {
     _perfilRepositorio = perfilRepositorio;
     _unitOfWork = unitOfWork;
     _funcionarioRepositorio = funcionarioRepositorio;
     _clienteRepositorio = clienteRepositorio;
     _cargoRepositorio = cargoRepositorio;
     _departamentoRepositorio = departamentoRepositorio;
     _pessoaRepositorio = pessoaRepositorio;
     _funcionarioServico = funcionarioServico;
     _clienteServico = clienteServico;
     _programaRepositorio = programaRepositorio;
     _tipoDeCrmRepositorio = tipoDeCrmRepositorio;
     _repositorioDeArquivos = repositorioDeArquivos;
 }
        public ExcluirTreinamentoResposta ExcluirTreinamento(ExcluirTreinamentoRequisicao requisicao)
        {
            var resposta = new ExcluirTreinamentoResposta();

            try
            {
                var treinamento = _treinamentoRepositorio.ObterPor(requisicao.CodigoDoTreinamento);
                var repositorioDeArquivos = new RepositorioDeArquivos();

                foreach (var anexo in treinamento.Anexos)
                {
                    repositorioDeArquivos.RemoverArquivo(anexo.Nome, anexo.DataDeUpload);
                }

                _treinamentoRepositorio.Remover(treinamento);
                _unitOfWork.Commit();
                resposta.Sucesso = true;
            }
            catch (RegraException regraException)
            {
                resposta.Erros = regraException.Erros;
            }
            return resposta;
        }
        public TrocarFotoResposta TrocarFoto(TrocarFotoRequisicao requisicao)
        {
            var resposta = new TrocarFotoResposta();
            try
            {
                var pessoa = _pessoaRepositorio.ObterPor(requisicao.CodigoDaPessoa);
                var data = SystemTime.Now;
                var foto = new Arquivo(requisicao.Nome, requisicao.Nome, data);

                if (requisicao.Foto.Length < 263166)
                {
                    var repositorioDeArquivos = new RepositorioDeArquivos();
                    repositorioDeArquivos.ArmazenarArquivo(requisicao.Foto, requisicao.Nome, data);
                    pessoa.Foto = foto;
                    _unitOfWork.Commit();
                    resposta.Foto = foto;
                    resposta.Sucesso = true;
                }
            }
            catch (RegraException regraException)
            {
                resposta.Erros = regraException.Erros;
            }

            return resposta;
        }
        public ObterAnexoDeUmaAtaResposta ObterAnexoDeUmaAta(ObterAnexoDeUmaAtaRequisicao requisicao)
        {
            var resposta = new ObterAnexoDeUmaAtaResposta();
            try
            {
                var anexo = _reuniaoRepositorio.ObterAnexoDeUmaAta(requisicao.CodigoDaReuniao, requisicao.CodigoDaAta, requisicao.CodigoDoAnexo);
                var repositorioDeArquivos = new RepositorioDeArquivos();
                resposta.Anexo = anexo;
                resposta.Arquivo = repositorioDeArquivos.ObterArquivo(anexo.Nome, anexo.DataDeUpload);
                resposta.Sucesso = true;
            }
            catch (RegraException regraException)
            {
                resposta.Erros = regraException.Erros;
            }

            return resposta;
        }
 public ObterAnexoDaReuniaoResposta ObterAnexoDaReuniao(ObterAnexoDaReuniaoRequisicao requisicao)
 {
     var resposta = new ObterAnexoDaReuniaoResposta();
     var reuniao = _reuniaoRepositorio.ObterPor(requisicao.CodigoDaReuniao);
     var anexo = reuniao.Anexos.FirstOrDefault(it => it.Codigo == requisicao.CodigoDoAnexo);
     if (anexo != null)
     {
         var repositorioDeArquivos = new RepositorioDeArquivos();
         resposta.Arquivo = repositorioDeArquivos.ObterArquivo(anexo.Nome, anexo.DataDeUpload);
         resposta.Anexo = anexo;
         resposta.Sucesso = resposta.Arquivo != null;
     }
     return resposta;
 }
 public ExcluirAnexoDaReuniaoResposta ExcluirAnexoDaReuniao(ExcluirAnexoDaReuniaoRequisicao requisicao)
 {
     var resposta = new ExcluirAnexoDaReuniaoResposta();
     try
     {
         var reuniao = _reuniaoRepositorio.ObterPor(requisicao.CodigoDaReuniao);
         var arquivo = reuniao.Anexos.SingleOrDefault(it => it.Codigo == requisicao.CodigoDoAnexo);
         reuniao.RemoverAnexo(arquivo);
         if (arquivo != null)
         {
             var repositorioDeArquivos = new RepositorioDeArquivos();
             repositorioDeArquivos.RemoverArquivo(arquivo.Nome, arquivo.DataDeUpload);
             resposta.CodigoDoAnexo = arquivo.Codigo;
         }
         _unitOfWork.Commit();
         resposta.Sucesso = true;
     }
     catch (RegraException regraException)
     {
         resposta.Erros = regraException.Erros;
     }
     return resposta;
 }
        public AdicionarDocumentoEmUmaClinicaResposta AdicionarDocumentoEmUmaClinica(AdicionarDocumentoEmUmaClinicaRequisicao requisicao)
        {
            var resposta = new AdicionarDocumentoEmUmaClinicaResposta();
            try
            {
                var responsavel = _funcionarioRepositorio.ObterPor(requisicao.CodigoDoResponsavel);
                var clinica = _clinicaRepositorio.ObterPor(requisicao.CodigoDaClinica);
                var dataUpload = SystemTime.Now;

                var documento = new ClinicaDocumentos(responsavel, dataUpload, requisicao.TipoDocumento,
                                                      requisicao.Descricao, requisicao.Nome, requisicao.DataDeVencimento,
                                                      requisicao.StatusDocumento);
                documento.DataDeVencimento = requisicao.DataDeVencimento;
                clinica.AdicionarDocumento(documento);

                var repositorioDeArquivos = new RepositorioDeArquivos();
                repositorioDeArquivos.ArmazenarArquivo(requisicao.Documento, requisicao.Nome, dataUpload);

                resposta.Documento = documento;

                _unitOfWork.Commit();
                resposta.Sucesso = true;
            }
            catch (RegraException regraException)
            {
                resposta.Erros = regraException.Erros;
            }

            return resposta;
        }
 public ObterDocumentoDaClinicaResposta ObterDocumentoDaClinica(ObterDocumentoDaClinicaRequisicao requisicao)
 {
     var resposta = new ObterDocumentoDaClinicaResposta();
     var clinica = _clinicaRepositorio.ObterPor(requisicao.CodigoDaClinica);
     var documento = clinica.Documentos.FirstOrDefault(it => it.Codigo == requisicao.CodigoDoDocumento);
     if (documento != null)
     {
         var repositorioDeArquivos = new RepositorioDeArquivos();
         resposta.Arquivo = repositorioDeArquivos.ObterArquivo(documento.Nome, documento.DataDeUpload);
         resposta.Documento = documento;
         resposta.Sucesso = resposta.Arquivo != null;
     }
     return resposta;
 }
 public ExcluirDocumentoDaClinicaResposta ExcluirDocumentoDaClinica(ExcluirDocumentoDaClinicaRequisicao requisicao)
 {
     var resposta = new ExcluirDocumentoDaClinicaResposta();
     try
     {
         var clinica = _clinicaRepositorio.ObterPor(requisicao.CodigoDaClinica);
         var documento = clinica.Documentos.SingleOrDefault(it => it.Codigo == requisicao.CodigoDoDocumento);
         clinica.RemoverDocumento(documento);
         if (documento != null)
         {
             var repositorioDeArquivos = new RepositorioDeArquivos();
             repositorioDeArquivos.RemoverArquivo(documento.Nome, documento.DataDeUpload);
             resposta.CodigoDoDocumento = documento.Codigo;
         }
         _unitOfWork.Commit();
         resposta.Sucesso = true;
     }
     catch (RegraException regraException)
     {
         resposta.Erros = regraException.Erros;
     }
     return resposta;
 }
        /// <summary>
        /// Excluir Clinica
        /// </summary>
        /// <param name="requisicao"></param>
        /// <returns></returns>
        public ExcluirClinicaResposta ExcluirClinica(ExcluirClinicaRequisicao requisicao)
        {
            var resposta = new ExcluirClinicaResposta();

            try
            {
                var clinica = _clinicaRepositorio.ObterPor(requisicao.CodigoDaClinica);
                var repositorioDeArquivos = new RepositorioDeArquivos();
                if (clinica.Documentos != null)
                {
                    foreach (var documento in clinica.Documentos)
                    {
                        repositorioDeArquivos.RemoverArquivo(documento.Nome, documento.DataDeUpload);
                    }
                }

                _clinicaRepositorio.Remover(clinica);
                _unitOfWork.Commit();
                resposta.Sucesso = true;
            }
            catch (RegraException regraException)
            {
                resposta.Erros = regraException.Erros;
            }
            return resposta;
        }
        public ExcluirAprovacaoResposta ExcluirAprovacao(ExcluirAprovacaoRequisicao requisicao)
        {
            var resposta = new ExcluirAprovacaoResposta();
            try
            {
                var aprovacao = _aprovacaoRepositorio.ObterPor(requisicao.CodigoDaAprovacao);
                var anexo = aprovacao.Anexo;
                _aprovacaoRepositorio.Remover(aprovacao);
                var repositorioDeArquivos = new RepositorioDeArquivos();
                repositorioDeArquivos.RemoverArquivo(anexo.Nome, anexo.DataDeUpload);
                _unitOfWork.Commit();
                resposta.Sucesso = true;
            }
            catch (RegraException regraException)
            {
                resposta.Erros = regraException.Erros;
            }

            return resposta;
        }
 public ObterAnexoDoTreinamentoResposta ObterAnexoDoTreinamento(ObterAnexoDoTreinamentoRequisicao requisicao)
 {
     var resposta = new ObterAnexoDoTreinamentoResposta();
     var anexo = _treinamentoRepositorio.ObterAnexoDoTreinamento(requisicao.CodigoDoTreinamento, requisicao.CodigoDoAnexo);
     var repositorioDeArquivos = new RepositorioDeArquivos();
     resposta.Arquivo = repositorioDeArquivos.ObterArquivo(anexo.Nome, anexo.DataDeUpload);
     resposta.Anexo = anexo;
     resposta.Sucesso = true;
     return resposta;
 }
 public ExcluirAtaDaReuniaoResposta ExcluirAtaDaReuniao(ExcluirAtaDaReuniaoRequisicao requisicao)
 {
     var resposta = new ExcluirAtaDaReuniaoResposta();
     try
     {
         var reuniao = _reuniaoRepositorio.ObterPor(requisicao.CodigoDaReuniao);
         var ata = _reuniaoRepositorio.ObterAtaDaReuniao(requisicao.CodigoDaReuniao, requisicao.CodigoDaAta);
         reuniao.RemoverAta(ata);
         var repositorioDeArquivo = new RepositorioDeArquivos();
         foreach (var anexo in ata.Anexos)
         {
             repositorioDeArquivo.RemoverArquivo(anexo.Nome, anexo.DataDeUpload);
         }
         _unitOfWork.Commit();
         resposta.CodigoDaAta = ata.Codigo;
         resposta.Sucesso = true;
     }
     catch (RegraException regraException)
     {
         resposta.Erros = regraException.Erros;
     }
     return resposta;
 }
        public ObterArquivoDaAprovacaoResposta ObterArquiviDaAprovacao(ObterArquivoDaAprovacaoRequisicao requisicao)
        {
            var resposta = new ObterArquivoDaAprovacaoResposta();
            try
            {
                var aprovacao = _aprovacaoRepositorio.ObterPor(requisicao.CodigoDaAprovacao);
                var repositorioDeArquivos = new RepositorioDeArquivos();
                resposta.Anexo = aprovacao.Anexo;
                resposta.Arquivo = repositorioDeArquivos.ObterArquivo(aprovacao.Anexo.Nome, aprovacao.Anexo.DataDeUpload);
                resposta.Sucesso = true;
            }
            catch (RegraException regraException)
            {
                resposta.Erros = regraException.Erros;
            }

            return resposta;
        }