コード例 #1
0
        public JsonResult AddEditAprovacao(AprovacaoOnlineViewModel model)
        {
            var requisicao = new AdicionarAprovacaoRequisicao
            {
                Arquivo                  = model.Arquivo.InputStream,
                Descricao                = model.Descricao,
                Tipo                     = model.Tipo,
                CodigoDoPrograma         = Session.ProgramaAtivo().Codigo,
                Titulo                   = model.Titulo,
                CodigoDoGrupoResponsavel = User.ToPessoa().Usuario.Perfil.Grupo.Codigo,
                NomeDoAnexo              = model.Arquivo.FileName
            };
            var resposta = _aprovacaoServicoDeAplicacao.AdicionarAprovacao(requisicao);

            return(Json(new { resposta.Erros, resposta.Sucesso, Aprovacao = resposta.Aprovacao.ToViewModel() }));
        }
        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);
        }