コード例 #1
0
        public async Task <JsonReturn> ListarAudiencias(string startString, string endString, string assunto = "")
        {
            var retorno = new JsonReturn();
            var filter  = new AtribuicaoFilter();

            if (!string.IsNullOrEmpty(startString) && !string.IsNullOrEmpty(endString))
            {
                filter.Start = DateTime.Parse(startString);
                filter.End   = DateTime.Parse(endString);
            }

            filter.Assunto = assunto;

            userGuid = new Guid(Helpers.RetrieveUserClaimGuid(HttpContext));
            int domainGuid;

            if (userGuid != null)
            {
                domainGuid = _sessionService.ObterIdEscritorioUsuario(userGuid);
            }
            else
            {
                throw new NullReferenceException("Erro(1)");
            }

            if (domainGuid != null)
            {
                retorno.Object = await _agendaService.ObterAudienciasDistribuicao(domainGuid, filter);
            }

            return(retorno);
        }
コード例 #2
0
        public async Task <JsonReturn> ListarPrazos(string assunto, int?cliente, int?area)
        {
            var retorno = new JsonReturn();

            var filter = new AtribuicaoFilter()
            {
                Cliente = cliente,
                Area    = area,
                Assunto = assunto
            };

            userGuid = new Guid(Helpers.RetrieveUserClaimGuid(HttpContext));
            int domainGuid;

            if (userGuid != null)
            {
                domainGuid = _sessionService.ObterIdEscritorioUsuario(userGuid);
            }
            else
            {
                throw new NullReferenceException("Erro(1)");
            }

            if (domainGuid != null)
            {
                retorno.Object = await _agendaService.ObterTarefasDistribuicao(domainGuid, filter);
            }

            return(retorno);
        }
コード例 #3
0
        private List <FuncionarioViewModel> ApplyEmployeesFilters(AtribuicaoFilter searchFilter, List <FuncionarioViewModel> liFuncionarios)
        {
            if (searchFilter.Area.HasValue)
            {
                liFuncionarios = liFuncionarios.Where(x => x.IdArea == searchFilter.Area.Value).ToList();
            }

            return(liFuncionarios);
        }
コード例 #4
0
 public async Task <List <Prazo> > ListarPrazos(AtribuicaoFilter filter)
 {
     using (var dbContext = _fabricaDeContextos.CriaContextoDe <CadastroExternoContext>(TipoDeConexao.PreCadastro))
     {
         var qry = dbContext.Prazos
                   .Include(x => x.Participantes)
                   .Include(x => x.Processo)
                   .Include(x => x.SubTarefas)
                   .AsQueryable();
         //qry.FiltrarPrazo(filter);
         return(_mapper.Map <List <Prazo> >(await qry.ToListAsync()));
     }
 }
コード例 #5
0
        private List <Audiencia> ApplyAudienciasFilters(AtribuicaoFilter searchFilter, List <Audiencia> liAudiencias)
        {
            if (!string.IsNullOrEmpty(searchFilter.Assunto))
            {
                liAudiencias = liAudiencias.Where(x => x.Assunto.Contains(searchFilter.Assunto)).ToList();
            }

            if (searchFilter.Start != null && searchFilter.End != null)
            {
                liAudiencias = liAudiencias.Where(c => c.DataAtividade >= searchFilter.Start && c.DataAtividade <= searchFilter.End).ToList();
            }

            return(liAudiencias);
        }
コード例 #6
0
        private List <Prazo> ApplyPrazosFilters(AtribuicaoFilter searchFilter, List <Prazo> liPrazos)
        {
            if (!string.IsNullOrEmpty(searchFilter.Assunto))
            {
                liPrazos = liPrazos.Where(x => x.Assunto.Contains(searchFilter.Assunto)).ToList();
            }

            if (searchFilter.Start != null && searchFilter.End != null)
            {
                liPrazos = liPrazos.Where(c => c.DataCompromisso >= searchFilter.Start && c.DataCompromisso <= searchFilter.End).ToList();
            }

            return(liPrazos);
        }
コード例 #7
0
        public async Task <List <Audiencia> > ListarAudiencias(AtribuicaoFilter filter)
        {
            using (var dbContext = _fabricaDeContextos.CriaContextoDe <CadastroExternoContext>(TipoDeConexao.PreCadastro))
            {
                var qry = dbContext.CompromissosAudiencia
                          //.Include(x => x.Participantes)
                          //.Include(x => x.Processo)
                          //.Include(x => x.SubTarefas)
                          .AsQueryable();

                //_mapper.Map<Audiencia>(qry).FiltrarAudiencias(filter);
                return(_mapper.Map <List <Audiencia> >(await qry.ToListAsync()));
            }
        }
コード例 #8
0
        public async Task <List <Audiencia> > ListarAudienciasSemExecutor(AtribuicaoFilter filter, int domainGuid)
        {
            using (var dbContext = _fabricaDeContextos.CriaContextoDe <CadastroExternoContext>(TipoDeConexao.PreCadastro))
            {
                var qry = await dbContext.CompromissosAudiencia
                          //.Include(x => x.Participantes)
                          //.Include(x => x.Processo)
                          .Include(x => x.SubTarefas)
                          .Where(x => x.IdExecutor == null).ToListAsync();

                // qry = qry.FiltrarAudiencias(filter);
                var retorno = qry.Select(x => x.ConverterParaModelo());
                return(retorno.ToList());
            }
        }
コード例 #9
0
        public async Task <List <Prazo> > ListarPrazosParaAtribuir(AtribuicaoFilter filter, int domainGuid)
        {
            using (var dbContext = _fabricaDeContextos.CriaContextoDe <CadastroExternoContext>(TipoDeConexao.PreCadastro))
            {
                var qry = dbContext.Prazos
                          //.Include(x => x.Participantes)
                          //.Include(x => x.Processo)
                          //.Include(x => x.SubTarefas)
                          .Where(x => x.IdExecutor == null && x.IdPai == null)
                          .AsQueryable();

                //qry = qry.FiltrarPrazo(filter);

                return(_mapper.Map <List <Prazo> >(await qry.ToListAsync()));
            }
        }
コード例 #10
0
        public async Task <JsonReturn> ListarFuncionariosComPrazos(string startString, string endString, string assunto = "")
        {
            var retorno = new JsonReturn();
            var filter  = new AtribuicaoFilter();

            if (!string.IsNullOrEmpty(startString) && !string.IsNullOrEmpty(endString))
            {
                filter.Start = DateTime.Parse(startString);
                filter.End   = DateTime.Parse(endString);
            }

            filter.Assunto = assunto;

            try
            {
                userGuid = new Guid(Helpers.RetrieveUserClaimGuid(HttpContext));
                int domainGuid;

                if (userGuid != null)
                {
                    domainGuid = _sessionService.ObterIdEscritorioUsuario(userGuid);
                }
                else
                {
                    throw new NullReferenceException("Erro(1)");
                }

                if (domainGuid != null)
                {
                    retorno.Object = await _funcionarioService.ListarFuncionariosComPrazos(new Guid(Helpers.RetrieveUserClaimGuid(HttpContext)), filter);
                }
            }
            catch (Exception ex)
            {
                //loggar erro
                retorno.Message = "Erro ao listar prazos";
                retorno.Object  = ex;
                retorno.Status  = System.Net.HttpStatusCode.InternalServerError;
                return(retorno);
            }

            return(retorno);
        }
コード例 #11
0
        public static IQueryable <Prazo> FiltrarPrazo(this IQueryable <Prazo> qry, AtribuicaoFilter filter)
        {
            if (filter.Cliente != null)
            {
                qry = qry.Where(x => x.Processo.IdCliente == filter.Cliente);
            }

            if (filter.Area != null)
            {
                qry = qry.Where(x => x.IdCategoria == filter.Area);
            }

            if (!string.IsNullOrWhiteSpace(filter.Assunto))
            {
                qry = qry.Where(x => x.Assunto.ToLower().Contains(filter.Assunto.ToLower()));
            }

            return(qry);
        }
コード例 #12
0
        public static IQueryable <Audiencia> FiltrarAudiencias(this IQueryable <Audiencia> qry, AtribuicaoFilter filter)
        {
            if (filter.Start != null)
            {
                qry = qry.Where(x => x.DataAtividade >= filter.Start);
            }

            if (filter.End != null)
            {
                qry = qry.Where(x => x.DataAtividade <= filter.End);
            }

            if (filter.Area != null)
            {
                qry = qry.Where(x => x.IdCategoria == filter.Area);
            }

            if (!string.IsNullOrEmpty(filter.Assunto))
            {
                qry = qry.Where(x => x.Assunto.ToLower().Equals(filter.Assunto));
            }

            return(qry);
        }
コード例 #13
0
        public async Task <List <FuncionarioViewModel> > ListarFuncionariosComAudiencias(Guid guid, AtribuicaoFilter Filter)
        {
            var li = await _profissionalService.ListarProfissionais(guid);

            var liFuncionarios = _mapper.Map <List <FuncionarioViewModel> >(li);

            var audiencias = _audienciaRepositorio.ListaAudienciasDosFuncionarios(liFuncionarios.Select(x => x.Id)).Result.ToList();

            if (!string.IsNullOrEmpty(Filter.Assunto))
            {
                audiencias = audiencias.Where(x => x.Assunto.Contains(Filter.Assunto)).ToList();
            }

            //setar executor das audiências // transpor para o metodo _audienciaRepositorio.ListaAudienciasDosFuncionarios()
            foreach (var i in audiencias)
            {
                var executor = liFuncionarios.FirstOrDefault(x => x.Id == i.IdExecutor);
                i.Executor = new Executor {
                    Id = executor.Id, Cargo = executor.Cargo, Ativo = executor.Ativo, Atividades = executor.Atividades, Deletable = executor.Deletable, Nome = executor.Nome
                };
            }

            try
            {
                liFuncionarios = RelacionarAudienciasDosFuncionarios(liFuncionarios, audiencias);
            }
            catch (Exception ex)
            {
                //loggar erro
                throw ex;
            }

            liFuncionarios = ApplyEmployeesFilters(Filter, liFuncionarios);

            return(liFuncionarios.OrderByDescending(x => x.Audiencias.Count).ToList());
        }
コード例 #14
0
        public async Task <List <Atividade> > ObterTarefasDistribuicao(int domainGuid, AtribuicaoFilter filter)
        {
            var dados = await _prazoRepositorio.ListarPrazosParaAtribuir(filter, domainGuid);

            var retorno = _mapper.Map <List <Atividade> >(dados);

            return(retorno);
        }
コード例 #15
0
        public async Task <List <AudienciasDateViewModel> > ObterAudienciasDistribuicao(int domainGuid, AtribuicaoFilter filter)
        {
            var audiencias = await _audienciaRepositorio.ListarAudienciasSemExecutor(filter, domainGuid);

            var retorno = new List <AudienciasDateViewModel>();

            var liAud = _mapper.Map <List <Atividade> >(audiencias);

            var auds = liAud.GroupBy(x => x.DataInicio.GetValueOrDefault().Date).ToList();

            AudienciasDateViewModel audiencia;

            foreach (var i in auds)
            {
                audiencia            = new AudienciasDateViewModel();
                audiencia.Data       = i.Key;
                audiencia.Hierarquia = i.FirstOrDefault()?.Processo?.ForoHierarquia;
                audiencia.Audiencias.AddRange(i);
                retorno.Add(audiencia);
            }

            return(retorno);
        }
コード例 #16
0
        public async Task <ProcessoAudienciaViewModel> ListarAudienciasParaDistribuicao(int IdEscritorio, Guid guid, AtribuicaoFilter searchFilter)
        {
            var processos = await _processoRepositorio.ListarComAudiencias(IdEscritorio);

            var audiencias = new List <Audiencia>();

            var comarcas = processos.Where(x => x.IdGrupoForo != null).Select(x => x.IdGrupoForo.Value).Distinct().ToList();

            foreach (var processo in processos)
            {
                foreach (var audiencia in processo.Audiencias)
                {
                    audiencias.Add(audiencia);
                }
            }

            var varasAudiencias = audiencias.Where(c => c.IdForo != null).Select(v => (int)v.IdForo);

            //lista profissionais(funcionarios)
            var li = await _profissionalService.ListarProfissionais(guid);

            var liFuncionarios = _mapper.Map <List <Domain.ViewModels.FuncionarioViewModel> >(li);

            //add construtor
            var procAud = new ProcessoAudienciaViewModel {
                Hierarquia = new List <HierarquiaAudiencia>()
            };

            foreach (var audiencia in audiencias)
            {
                var executor = liFuncionarios.FirstOrDefault(x => x.Id == audiencia.IdExecutor);

                if (executor != null)
                {
                    audiencia.Executor = new Domain.ViewModels.Agenda.Executor {
                        Id = executor.Id, Cargo = executor.Cargo, Ativo = executor.Ativo, Atividades = executor.Atividades, Deletable = executor.Deletable, Nome = executor.Nome
                    };
                }
                else
                {
                    audiencia.Executor = new Domain.ViewModels.Agenda.Executor();
                }
            }

            ////filtros de audiencias
            //audiencias = ApplyAudienciasFilters(searchFilter, audiencias);

            foreach (var id in comarcas)
            {
                var comarca = await _hierarquiaService.Obtem(guid, id, null);

                var liAud = new List <Audiencia>();

                foreach (var foro in comarca.Grupos)
                {
                    var varas = comarca.Grupos.Where(x => x.Itens.Count > 0).Select(c => c.Itens);

                    var varasComarcas = new List <Foro>();

                    foreach (var vara in foro.Itens)
                    {
                        var audiencias2 = audiencias.Where(x => x.IdForo == vara.Id).ToList();

                        if (audiencias2.Count > 0)
                        {
                            vara.Audiencias = new List <Audiencia>(audiencias2.OrderBy(x => x.DataAtividade));
                        }
                    }
                }

                var HA = new HierarquiaAudiencia()
                {
                    Comarca = comarca
                };

                procAud.Hierarquia.Add(HA);
            }

            return(procAud);
        }
コード例 #17
0
        public async Task <List <FuncionarioViewModel> > ListarFuncionariosComPrazos(Guid guid, AtribuicaoFilter Filter)
        {
            var funcs = new List <Profissional>();

            if (Filter.Area == null)
            {
                funcs = await _profissionalService.ListarProfissionais(guid);
            }
            else
            {
                funcs = await _profissionalService.ListarProfissionaisPorArea(guid, (int)Filter.Area);

                foreach (var i in funcs)
                {
                    i.IdCategoria = (int)Filter.Area;
                }
            }

            funcs.RemoveAll(x => !x.Id.HasValue);

            var funcionarios = _mapper.Map <List <FuncionarioViewModel> >(funcs);
            var prazos       = _prazoRepositorio.ListaPrazosDosFuncionarios(funcionarios.Select(x => x.Id)).Result.ToList();

            var prazosFiltrados = ApplyPrazosFilters(Filter, prazos);

            funcionarios = RelacionarPrazosDosFuncionarios(funcionarios, prazosFiltrados);

            return(funcionarios.OrderByDescending(x => x.Atividades.Count).ToList());
        }