コード例 #1
0
        public static object ObterQuantidadeCategoria()
        {
            Categoria CategoriaAlias = null;
            Receita   ReceitaAlias   = null;

            var query = Session.Current.QueryOver <Receita>(() => ReceitaAlias);

            query = query.JoinAlias(() => ReceitaAlias.Categorias, () => CategoriaAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin);

            DTODado dto = new DTODado();

            var nomeAlias = Projections.Property(() => CategoriaAlias.Valor)
                            .WithAlias(() => dto.Label);

            var categoriaGroup = Projections.GroupProperty(Projections.Property(() => CategoriaAlias.Valor));

            var quantAlias = Projections.RowCount().WithAlias(() => dto.Quantidade);

            var projections = Projections.ProjectionList()
                              .Add(nomeAlias)
                              .Add(quantAlias)
                              .Add(categoriaGroup)
            ;

            var Dados = query.OrderBy(Projections.RowCount()).Asc()
                        .ThenBy(() => CategoriaAlias.Valor).Asc()
                        .Select(projections)
                        .TransformUsing(Transformers.AliasToBean <DTODado>())
                        .List <DTODado>();

            return(Dados);
        }
コード例 #2
0
        public static object ObterRelatorioReceitas(ModeloDeCorteEnum corte, int[] autoresId = null, string dataInicial = null, string dataFinal = null, int TopItens = 5)
        {
            DTOGrafico dtoGrafico = new DTOGrafico();

            try
            {
                Receita ReceitaAlias = null;
                Autor   AutorAlias   = null;

                var query = Session.Current.QueryOver <Receita>(() => ReceitaAlias);
                query = query.JoinAlias(() => ReceitaAlias.Autor, () => AutorAlias);

                query.Where(Restrictions.IsNull(Projections.Property(() => ReceitaAlias.Parente)));

                if (autoresId != null && autoresId.Count() > 0)
                {
                    query.Where(Restrictions.On(() => AutorAlias.Id).IsIn(autoresId));
                }

                if (dataInicial != null && dataFinal != null)
                {
                    DateTime DataInicial = DateTime.Parse(dataInicial).Date;
                    DateTime DataFinal   = DateTime.Parse(dataFinal).Date.AddHours(23).AddMinutes(59).AddSeconds(59);

                    query.Where(Restrictions.And(Restrictions.Ge(Projections.Property(() => ReceitaAlias.Data), DataInicial),
                                                 Restrictions.Le(Projections.Property(() => ReceitaAlias.Data), DataFinal)));
                }

                DTODado dto = new DTODado();

                var nomeAutorProperty = Projections.Property(() => AutorAlias.Nome);
                var nomeAutorGroup    = Projections.GroupProperty(nomeAutorProperty);
                var nomeAlias         = nomeAutorGroup.WithAlias(() => dto.Label);

                var quantAlias = Projections.RowCount().WithAlias(() => dto.Quantidade);

                var corteAlias = new SQLCorteService().Executar(corte).WithAlias(() => dto.Corte);


                var projections = Projections.ProjectionList()
                                  .Add(nomeAlias)
                                  .Add(quantAlias)
                                  .Add(corteAlias)
                ;

                var Dados = query.OrderBy(() => ReceitaAlias.Data).Asc()
                            .ThenBy(() => AutorAlias.Nome).Asc()
                            .Select(projections)
                            .TransformUsing(Transformers.AliasToBean <DTODado>())
                            .List <DTODado>();

                ObterGrafico(dtoGrafico, Dados, TopItens);
            }
            catch (Exception)
            {
                throw;
            }

            return(dtoGrafico);
        }
コード例 #3
0
        public static object ObterRelatorioAcessos(bool inAnonimos, int[] navegadores, string[] usuariosId, string dataInicial, string dataFinal, ModeloDeCorteEnum corte, int TopItens = 5)
        {
            DTOGrafico dtoGrafico = new DTOGrafico();

            try
            {
                Acesso AcessoAlias = null;


                var query = Session.Current.QueryOver <Acesso>(() => AcessoAlias);

                if (!inAnonimos)
                {
                    query.Where(Restrictions.IsNotNull(Projections.Property(() => AcessoAlias.Usuario)));
                }

                if (navegadores != null && navegadores.Count() > 0)
                {
                    IList <string> NavegadoresList = new List <string>();
                    for (int i = 0; i < navegadores.Count(); i++)
                    {
                        NavegadoresList.Add(((NavegadorEnum)navegadores[i]).GetDescription());
                    }

                    query = query.Where(Restrictions.On(() => AcessoAlias.Navegador).IsIn(NavegadoresList.ToArray()));
                }

                if (dataInicial != null && dataFinal != null)
                {
                    DateTime DataInicial = DateTime.Parse(dataInicial).Date;
                    DateTime DataFinal   = DateTime.Parse(dataFinal).Date.AddHours(23).AddMinutes(59).AddSeconds(59);

                    query.Where(Restrictions.And(Restrictions.Ge(Projections.Property(() => AcessoAlias.Data), DataInicial),
                                                 Restrictions.Le(Projections.Property(() => AcessoAlias.Data), DataFinal)));
                }


                DTODado dto = new DTODado();


                var PaginaGroup = Projections.GroupProperty(Projections.Property(() => AcessoAlias.Pagina));
                var nomeAlias   = PaginaGroup.WithAlias(() => dto.Label);

                var quantAlias = Projections.RowCount().WithAlias(() => dto.Quantidade);

                var corteAlias = new SQLCorteService().Executar(corte).WithAlias(() => dto.Corte);

                var projections = Projections.ProjectionList()
                                  .Add(nomeAlias)
                                  .Add(quantAlias)
                                  .Add(corteAlias)
                                  .Add(PaginaGroup)
                ;

                var Dados = query.OrderBy(() => AcessoAlias.Data).Asc()
                            .ThenBy(() => AcessoAlias.Navegador).Asc()
                            .Select(projections)
                            .TransformUsing(Transformers.AliasToBean <DTODado>())
                            .List <DTODado>();

                ObterGrafico(dtoGrafico, Dados, TopItens);
            }
            catch (Exception)
            {
                throw;
            }

            return(dtoGrafico);
        }
コード例 #4
0
        public static object ObterRelatorioReceitasPorBuscas(bool inBuscas, string[] buscas, ModeloDeCorteEnum corte, string dataInicial, string dataFinal, int TopItens = 5)
        {
            DTOGrafico dtoGrafico = new DTOGrafico();

            try
            {
                Busca   BuscasAlias  = null;
                Receita ReceitaAlias = null;

                var query = Session.Current.QueryOver <Busca>(() => BuscasAlias);
                query = query.JoinAlias(() => BuscasAlias.Receita, () => ReceitaAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin);

                query.Where(Restrictions.IsNull(Projections.Property(() => ReceitaAlias.Parente)));

                if (!inBuscas)
                {
                    query.Where(Restrictions.IsNotNull(Projections.Property(() => BuscasAlias.Receita)));
                }

                if (buscas != null && buscas.Count() > 0)
                {
                    query.Where(Restrictions.On(() => BuscasAlias.Termo).IsIn(buscas));
                }

                if (dataInicial != null && dataFinal != null)
                {
                    DateTime DataInicial = DateTime.Parse(dataInicial).Date;
                    DateTime DataFinal   = DateTime.Parse(dataFinal).Date.AddHours(23).AddMinutes(59).AddSeconds(59);

                    query.Where(Restrictions.And(Restrictions.Ge(Projections.Property(() => BuscasAlias.Data), DataInicial),
                                                 Restrictions.Le(Projections.Property(() => BuscasAlias.Data), DataFinal)));
                }


                DTODado dto = new DTODado();

                var nomeReceitaProperty = Projections.Conditional(Restrictions.IsNotNull(Projections.Property(() => BuscasAlias.Receita)),
                                                                  Projections.Cast(NHibernateUtil.String, Projections.Property(() => ReceitaAlias.Titulo)),
                                                                  Projections.Constant("Busca sem receita", NHibernateUtil.String));

                var nomeAlias = nomeReceitaProperty.WithAlias(() => dto.Label);

                var idReceitaGroup = Projections.GroupProperty(Projections.Property(() => BuscasAlias.Receita));

                var quantAlias = Projections.RowCount().WithAlias(() => dto.Quantidade);

                var corteAlias = new SQLCorteService().Executar(corte).WithAlias(() => dto.Corte);

                var projections = Projections.ProjectionList()
                                  .Add(nomeAlias)
                                  .Add(quantAlias)
                                  .Add(corteAlias)
                                  .Add(idReceitaGroup)
                ;

                var Dados = query.OrderBy(() => BuscasAlias.Data).Asc()
                            .ThenBy(() => ReceitaAlias.Titulo).Asc()
                            .Select(projections)
                            .TransformUsing(Transformers.AliasToBean <DTODado>())
                            .List <DTODado>();

                ObterGrafico(dtoGrafico, Dados, TopItens);
            }
            catch (Exception)
            {
                throw;
            }

            return(dtoGrafico);
        }