示例#1
0
        private IQueryable <T> Query(Expression <Func <T, bool> > filter = null,
                                     TriModel orderBy = null,
                                     params Expression <Func <T, object> >[] includeProperties)
        {
            IQueryable <T> query = Set.AsQueryable();

            if (filter != null)
            {
                query = query.Where(filter);
            }



            foreach (var includeProperty in includeProperties)
            {
                query = query.Include(includeProperty);
            }

            if (orderBy != null)
            {
                var order = orderBy.GetOrder <T>();

                if (order != null)
                {
                    query = order(query);
                }
                else
                {
                    query = query.OrderBy(b => b.Id);
                }
            }



            return(query);
        }
示例#2
0
        public PaginationResult <IList <Pretre> > GetPretreByLieu(int?typeLieuId, int?lieuId, int?fonctionId, string nomLieu,
                                                                  int?contextHistoriqueId, int?anneeExercice, TriModel tri, PaginationRequest paginationRequest)
        {
            ResultAndCountModel result;

            try
            {
                if (Context.Database.Connection.State != ConnectionState.Open)
                {
                    Context.Database.Connection.Open();
                }

                var cmd = Context.Database.Connection.CreateCommand();

                SqlParameter stypeLieuIdParams = new SqlParameter("@typeLieuId", SqlDbType.Int)
                {
                    Value = typeLieuId
                };
                SqlParameter lieuIdParams = new SqlParameter("@lieuId", SqlDbType.Int)
                {
                    Value = lieuId
                };
                SqlParameter fonctionIdPraram = new SqlParameter("@fonctionId", SqlDbType.Int)
                {
                    Value = fonctionId
                };
                SqlParameter nomLieuParam = new SqlParameter("@nomLieu", SqlDbType.NVarChar)
                {
                    Value = nomLieu
                };
                SqlParameter contextHistoriqueParam = new SqlParameter("@contextHistoriqueId", SqlDbType.Int)
                {
                    Value = contextHistoriqueId
                };
                SqlParameter anneeExerciceParam = new SqlParameter("@anneeExercice", SqlDbType.Int)
                {
                    Value = anneeExercice
                };
                SqlParameter pageNumberParams = new SqlParameter("@pageNumber", SqlDbType.Int)
                {
                    Value = paginationRequest.PageNumber
                };
                SqlParameter pageSizeParams = new SqlParameter("@pageSize", SqlDbType.Int)
                {
                    Value = paginationRequest.PageSize
                };
                SqlParameter triParams = new SqlParameter("@tri", SqlDbType.Int)
                {
                    Value = tri.Key
                };


                cmd.CommandText = "dbo.GetPretreFonctionLieu";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(stypeLieuIdParams);
                cmd.Parameters.Add(lieuIdParams);
                cmd.Parameters.Add(fonctionIdPraram);
                cmd.Parameters.Add(contextHistoriqueParam);
                cmd.Parameters.Add(nomLieuParam);
                cmd.Parameters.Add(anneeExerciceParam);
                cmd.Parameters.Add(triParams);
                cmd.Parameters.Add(pageNumberParams);
                cmd.Parameters.Add(pageSizeParams);

                result = SqlDataReaderHelper.ExecuteCommand(cmd);
            }
            finally
            {
                if (Context.Database.Connection.State == ConnectionState.Open)
                {
                    Context.Database.Connection.Close();
                }
            }


            var pretres = this.Get(b => result.Ids.Contains(b.Id), null, b => b.Photos,
                                   b => b.Documents,
                                   b => b.ArticlesRevue,
                                   b => b.FonctionsLieu.Select(fl => fl.Fonction),
                                   b => b.FonctionsLieu.Select(fl => fl.Lieu)).OrderByExtList <Pretre, int>(result.Ids.ToList(), b => b.Id);

            return(new PaginationResult <IList <Pretre> >(result.Count, pretres));
        }