Exemplo n.º 1
0
        protected ResponseEM <T> GetGrid <T>(RequestEM request, string spName, Func <string, DynamicParameters, IEnumerable <T> > query = null)
            where T : class
        {
            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@Search", request.SearchExpression);
            parameters.Add("@Offset", request.Offset);
            parameters.Add("@Length", request.Length);
            parameters.Add("@OrderBy", request.OrderBy);
            parameters.Add("@OrderDir", request.IsDescending);
            parameters.Add("@Total", 0, direction: ParameterDirection.Output);

            IEnumerable <T> result;

            if (query == null)
            {
                result = ExecuteMultiSP <T>(spName, param: parameters);
            }
            else
            {
                result = query(spName, parameters);
            }

            int total = parameters.Get <int>("@Total");

            return(new ResponseEM <T>
            {
                Total = total,
                Rows = result
            });
        }
Exemplo n.º 2
0
        public ResponseEM <Books> GetBooks(RequestEM request)
        {
            return(GetGrid(request, "uspSelectBooks", query: (spName, parameters) =>
            {
                var result = ExecuteMultiSetSP <Books, BookAuthor>(spName, param: parameters);

                result.Item1.ToList().ForEach(b =>
                                              b.Authors = result.Item2
                                                          .Where(a => a.BookId == b.Id)
                                                          .Select(a => new Author
                {
                    Id = a.AuthorId,
                    FirstName = a.FirstName,
                    LastName = a.LastName
                })
                                              );

                return result.Item1;
            }));
        }
Exemplo n.º 3
0
 public ResponseEM <Authors> GetAuthors(RequestEM request)
 {
     return(GetGrid <Authors>(request, "uspSelectAuthors"));
 }