示例#1
0
        public object Get(int page , int pageSize)
        {
            IQueryable<Course> query;

            query = TheRepository.GetAllCourses().OrderBy(c => c.Name);

            var totalCount = query.Count();
            var totalPages = (int)Math.Ceiling((double)totalCount / pageSize);

            var urlHelper = new UrlHelper(Request);
            var prevLink = page > 0 ? urlHelper.Link("Courses", new { page = page - 1, pageSize = pageSize }) : "";
            var nextLink = page < totalPages - 1 ? urlHelper.Link("Courses", new { page = page + 1, pageSize = pageSize }) : "";

            var paginationHeader = new
            {
            TotalCount = totalCount,
            TotalPages = totalPages,
            PrevPageLink = prevLink,
            NextPageLink = nextLink
            };

            System.Web.HttpContext.Current.Response.Headers.Add("X-Pagination",
            Newtonsoft.Json.JsonConvert.SerializeObject(paginationHeader));

            var results = query
            .Skip(pageSize * page)
            .Take(pageSize)
            .ToList()
            .Select(s => TheModelFactory.Create(s));

            return results;
        }
        public IEnumerable<StudentV2BaseModel> Get(int page = 0, int pageSize = 10)
        {
            IQueryable<Student> query;

            query = TheRepository.GetAllStudentsWithEnrollments().OrderBy(c => c.LastName);

            var totalCount = query.Count();
            var totalPages = Math.Ceiling((double)totalCount / pageSize);

            var urlHelper = new UrlHelper(Request);
            var prevLink = page > 0 ? urlHelper.Link("Students", new { page = page - 1, pageSize = pageSize }) : "";
            var nextLink = page < totalPages - 1 ? urlHelper.Link("Students", new { page = page + 1, pageSize = pageSize }) : "";

            var paginationHeader = new
            {
                TotalCount = totalCount,
                TotalPages = totalPages,
                PrevPageLink = prevLink,
                NextPageLink = nextLink
            };

            System.Web.HttpContext.Current.Response.Headers.Add("X-Pagination",
                                                                 Newtonsoft.Json.JsonConvert.SerializeObject(paginationHeader));

            var results = query
                        .Skip(pageSize * page)
                        .Take(pageSize)
                        .ToList()
                        .Select(s => TheModelFactory.CreateV2Summary(s));

            return results;
        }
        public object Get(int userid,int notificationid = 0, int page = 0)
        {
            var userName = _identityService.CurrentUser;

            var baseQuery = TheRepository.GetOrganizationNotifications(userName)
                .OrderByDescending( c => c.DateAdded);

            var totalCount = baseQuery.Count();
            var totalPages = Math.Ceiling((double) totalCount/PAGE_SIZE);

            var helper = new UrlHelper(Request);
            var preUrl = page > 0 ? helper.Link("Notifications", new {page = page - 1}) : "";
            var newUrl = page < totalPages - 1 ? helper.Link("Notifications", new { page = page + 1 }): "";

            var results = baseQuery
                .Skip(PAGE_SIZE * page)
                .Take(PAGE_SIZE)
                .ToList()
                .Select(c => TheModelFactory.Create(c));

            return new
            {
                TotalCount = totalCount,
                TotalPages = totalPages,
                PrevPageUrl = preUrl,
                NextPageUrl = newUrl,
               Results = results,
            };
        }
示例#4
0
        public PageLinkBuilder(UrlHelper urlHelper, string routeName, object routeValues, int pageNo, int pageSize, long totalRecordCount)
        {
            // Determine total number of pages
            var pageCount = totalRecordCount > 0
                ? (int) Math.Ceiling(totalRecordCount/(double) pageSize)
                : 0;

            // Create them page links
            FirstPage = new Uri(urlHelper.Link(routeName, new HttpRouteValueDictionary(routeValues)
            {
                {"pageNo", 1},
                {"pageSize", pageSize}
            }));
            LastPage = new Uri(urlHelper.Link(routeName, new HttpRouteValueDictionary(routeValues)
            {
                {"pageNo", pageCount},
                {"pageSize", pageSize}
            }));
            if (pageNo > 1)
            {
                PreviousPage = new Uri(urlHelper.Link(routeName, new HttpRouteValueDictionary(routeValues)
                {
                    {"pageNo", pageNo - 1},
                    {"pageSize", pageSize}
                }));
            }
            if (pageNo < pageCount)
            {
                NextPage = new Uri(urlHelper.Link(routeName, new HttpRouteValueDictionary(routeValues)
                {
                    {"pageNo", pageNo + 1},
                    {"pageSize", pageSize}
                }));
            }
        }
示例#5
0
        public IQueryable<EventDTO> GetAllPaging(int page, int pageSize)
        {
            var list = _service.GetAllPaging(page, pageSize);

            if (list != null)
            {
                var totalCount = _service.GetTotalResults();
                var totalPages = (int)Math.Ceiling((double)totalCount / pageSize);

                var urlHelper = new UrlHelper(Request);
                var prevLink = page > 1 ? urlHelper.Link("GetAllPagingRoute", new { page = page - 1, pageSize = pageSize }) : "";
                var nextLink = page < totalPages ? urlHelper.Link("GetAllPagingRoute", new { page = page + 1, pageSize = pageSize }) : "";
                var firstLink = page != 1 ? urlHelper.Link("GetAllPagingRoute", new { page = 1, pageSize = pageSize }) : "";
                var lastLink = page != totalPages ? urlHelper.Link("GetAllPagingRoute", new { page = totalPages, pageSize = pageSize }) : "";

                var paginationHeader = new
                {
                    TotalCount = totalCount,
                    TotalPages = totalPages,
                    PrevPageLink = prevLink,
                    NextPageLink = nextLink,
                    FirstPageLink = firstLink,
                    LastPageLink = lastLink
                };

                System.Web.HttpContext.Current.Response.Headers.Add("X-Pagination",
                    Newtonsoft.Json.JsonConvert.SerializeObject(paginationHeader));
            }

            return Queryable.AsQueryable(list);
        }
示例#6
0
        public object Get(int contactgroupid, int contactId = 0, int page = 0)
        {
            var userName = _identityService.CurrentUser;

            var baseQuery = TheRepository.GetContactGroupContacts(_identityService.CurrentUser,contactgroupid)
                .OrderByDescending(c => c.FirstName);

            var totalCount = baseQuery.Count();
            var totalPages = Math.Ceiling((double)totalCount / PAGE_SIZE);

            var helper = new UrlHelper(Request);
            var preUrl = page > 0 ? helper.Link("Contacts", new { page = page - 1 }) : "";
            var newUrl = page < totalPages - 1 ? helper.Link("Contacts", new { page = page + 1 }) : "";

            var results = baseQuery
                .Skip(PAGE_SIZE * page)
                .Take(PAGE_SIZE)
                .ToList()
                .Select(c => TheModelFactory.Create(c));

            return new
            {
                TotalCount = totalCount,
                TotalPages = totalPages,
                PrevPageUrl = preUrl,
                NextPageUrl = newUrl,
                Results = results,
            };
        }
示例#7
0
        public HttpResponseMessage Get(int size, int page)
        {
            var helper = new UrlHelper(Request);
            if (size > 100) size = 10;
            int offset = page * size;
            int next_page = page;
            int prev_page = page;
            //need to count max pages from total results and implement that
            if (page < 1) { prev_page = 0; } else { prev_page--; }
            next_page++;

            var prev = helper.Link("QuestionApi", new { size = size, page = prev_page }).ToString();
            var next = helper.Link("QuestionApi", new { size = size, page = next_page });

            var response = Request
                .CreateResponse(
                HttpStatusCode.OK,
                _questionRepository
                .GetAllQuestions(size, offset)
                .Select(question => ModelFactory.Create(question)))
                ;
            response.Headers.Add("next-page", next);
            response.Headers.Add("prev-page", prev);
            return response;
        }
 public IHttpActionResult Get(int expenseGroupId, string fields = null, string sort = "Date", int page = 1, int pageSize = maxPageSize)
 {
     try
     {
         IQueryable<Expense> expenses = _repository.GetExpenses(expenseGroupId);
         if (expenses == null)
         {
             return NotFound();
         }
         List<string> listOfFields = new List<string>();
         if (fields != null)
         {
             listOfFields = fields.Split(',').ToList();
         }
         if (pageSize > maxPageSize)
         {
             pageSize = maxPageSize;
         }
         int totalCount = expenses.Count();
         int totalPages = (int)Math.Ceiling((double)totalCount / pageSize);
         UrlHelper urlHelper = new UrlHelper(Request);
         string prevLink = page > 1 ? urlHelper.Link("ExpensesForGroup",
             new
             {
                 page = page - 1,
                 pageSize = pageSize,
                 expenseGroupId = expenseGroupId,
                 sort = sort
             }) : "";
         var nextLink = page < totalPages ? urlHelper.Link("ExpensesForGroup",
             new
             {
                 page = page + 1,
                 pageSize = pageSize,
                 expenseGroupId = expenseGroupId,
                 sort = sort
             }) : "";
         var paginationHeader = new
         {
             currentPage = page,
             pageSize = pageSize,
             totalCount = totalCount,
             totalPages = totalPages,
             previousPageLink = prevLink,
             nextPageLink = nextLink
         };
         HttpContext.Current.Response.Headers.Add("X-Pagination", Newtonsoft.Json.JsonConvert.SerializeObject(paginationHeader));
         var expensesResult = expenses
             .ApplySort(sort)
             .Skip(pageSize * (page - 1))
             .Take(pageSize)
             .ToList()
             .Select(exp => _expenseFactory.CreateDataShapedObject(exp, listOfFields));
         return Ok(expensesResult);
     }
     catch (Exception exception)
     {
         return InternalServerError();
     }
 }
        public Object Get(int page = 0, int pageSize = 10)
        {
            IQueryable<Course> query;

            query = TheRepository.GetAllCourses().OrderBy(c => c.CourseSubject.Id);
            var totalCount = query.Count();
            var totalPages = (int)Math.Ceiling((double)totalCount / pageSize);

            var urlHelper = new UrlHelper(Request);
            var prevLink = page > 0 ? urlHelper.Link("Courses", new { page = page - 1, pageSize = pageSize }) : "";
            var nextLink = page < totalPages - 1 ? urlHelper.Link("Courses", new { page = page + 1, pageSize = pageSize }) : "";

            var results = query
                          .Skip(pageSize * page)
                          .Take(pageSize)
                          .ToList()
                          .Select(s => TheModelFactory.Create(s));

            return new
            {
                TotalCount = totalCount,
                TotalPages = totalPages,
                PrevPageLink = prevLink,
                NextPageLink = nextLink,
                Results = results
            };

        }
        //[EnableCors("*", "*", "GET")]
        public HttpResponseMessage Get(int page = 0, int pageSize = 10)
        {
            IQueryable<Course> query;

            Learning.Data.LearningContext ctx = new Learning.Data.LearningContext();

            Learning.Data.ILearningRepository repo = new Learning.Data.LearningRepository(ctx);

            query = repo.GetAllCourses().OrderBy(c => c.CourseSubject.Id);
            var totalCount = query.Count();
            var totalPages = (int)Math.Ceiling((double)totalCount / pageSize);

            var urlHelper = new UrlHelper(Request);
            var prevLink = page > 0 ? urlHelper.Link("CoursesRoute", new { page = page - 1, pageSize = pageSize }) : "";
            var nextLink = page < totalPages - 1 ? urlHelper.Link("CoursesRoute", new { page = page + 1, pageSize = pageSize }) : "";

            var results = query
                          .Skip(pageSize * page)
                          .Take(pageSize)
                          .ToList();

            var result = new
            {
                TotalCount = totalCount,
                TotalPages = totalPages,
                PrevPageLink = prevLink,
                NextPageLink = nextLink,
                Results = results
            };

            return Request.CreateResponse(HttpStatusCode.OK, result);

        }
示例#11
0
        public IEnumerable<Product> Get(string sort = "ProductId", int page = 1, int pageSize = maxPageSize)
        {
            try
            {
                IProductDetailDao repository = new ProductDetailDao();

                var products= repository.GetAllProducts(sort);

                // ensure the page size isn't larger than the maximum.
                if (pageSize > maxPageSize)
                {
                    pageSize = maxPageSize;
                }

                // calculate data for metadata
                var totalCount = products.Count();
                var totalPages = (int)Math.Ceiling((double)totalCount / pageSize);

                var urlHelper = new UrlHelper(Request);
                var prevLink = page > 1 ? urlHelper.Link("ProductListing",
                    new
                    {
                        page = page - 1,
                        pageSize = pageSize,
                        sort = sort
                    }) : "";
                var nextLink = page < totalPages ? urlHelper.Link("ProductListing",
                    new
                    {
                        page = page + 1,
                        pageSize = pageSize,
                        sort = sort
                    }) : "";

                var paginationHeader = new
                {
                    currentPage = page,
                    pageSize = pageSize,
                    totalCount = totalCount,
                    totalPages = totalPages,
                    previousPageLink = prevLink,
                    nextPageLink = nextLink
                };

                HttpContext.Current.Response.Headers.Add("X-Pagination",
                   Newtonsoft.Json.JsonConvert.SerializeObject(paginationHeader));

                // return result
                return (products
                    .Skip(pageSize * (page - 1))
                    .Take(pageSize)
                    .ToList());

            }
            catch (Exception)
            {
                throw;
            }
        }
        public object Get(bool includeReviews = true, int page = 1)
        {
            IQueryable<Restaurant> query;

            if (includeReviews)
            {
                query = Repository.GetAllRestaurantsWithReviewes();
            }
            else
            {
                query = Repository.GetAllRestaurants();
            }

            var baseQuery = query.OrderBy(r => r.Name);
            var totalCount = baseQuery.Count();
            var totalPages = (int)Math.Ceiling((double) totalCount/PAGE_SIZE);

            var helper = new UrlHelper(Request);

            var links = new List<LinkModel>();

            if (page > 1)
                links.Add(ModelFactory.CreateLink(helper.Link("restaurants", new { page = page - 1 }), "prevPage"));

            if (page < totalPages)
                links.Add(ModelFactory.CreateLink(helper.Link("restaurants", new { page = page + 1 }), "nextPage"));

            /*
            var prevUrl = page > 1 ? helper.Link("restaurants", new { includeReviews = includeReviews, page = page - 1 }) : "";

            var nextUrl = page < totalPages ? helper.Link("restaurants", new { includeReviews = includeReviews, page = page + 1 }) : "";
            */

            var results = baseQuery
                .Skip(PAGE_SIZE*(page - 1))
                .Take(PAGE_SIZE)
                .ToList()
                .Select(r => ModelFactory.Create(r));

            return new
            {
                TotalCount = totalCount,
                TotalPages = totalPages,
                Links   = links,
                Results = results,
            };

            /*
            return new
                {
                    TotalCount = totalCount,
                    TotalPages = totalPages,
                    PrevPageUrl = prevUrl.ToLower(),
                    NextPageUrl = nextUrl.ToLower(),
                    Results = results,
                };
            */
        }
示例#13
0
        public static Pagination CreatePagination(UrlHelper urlHelper, int currentOffset, int limit, int totalResults)
        {
            var pagination = new Rozo.Web.Helpers.Pagination();
            pagination.Current = currentOffset;
            pagination.Pages = totalResults % limit == 0 ? totalResults / limit : totalResults / limit + 1;
            pagination.Next = currentOffset + limit > totalResults ? null : urlHelper.Link("DefaultApi", new { offset = currentOffset + limit, limit = limit, totalResults = totalResults });
            pagination.Previous = currentOffset == 0 ? null : urlHelper.Link("DefaultApi", new { offset = currentOffset - limit < 0 ? 0 : currentOffset - limit, limit = limit, totalResults = totalResults });

            return pagination;
        }
        private ResourceCollectionInfo GetPostsResourceCollectionInfo(UrlHelper url) {

            ResourceCollectionInfo posts = new ResourceCollectionInfo("Blog",
                new Uri(url.Link("DefaultApi", new { controller = "posts" })));

            posts.Accepts.Add("application/atom+xml;type=entry");

            // For WLW to work we need to include format in the categories URI.
            // Hoping to provide a better solution than this.
            var categoriesUri = new Uri(url.Link("DefaultApi", new { controller = "tags", format = "atomcat" }));
            ReferencedCategoriesDocument categories = new ReferencedCategoriesDocument(categoriesUri);
            posts.Categories.Add(categories);

            return posts;
        }
 private void Enrich(TodoRepresentation todo, UrlHelper url)
 {
     var selfUrl = url.Link("DefaultApi", new { controller = "todos", todo.id });
     todo.AddLink(new SelfLink(selfUrl));
     todo.AddLink(new EditLink(selfUrl));
     todo.AddLink(new DeleteLink(selfUrl));
 }
        private void Enrich(Car car, UrlHelper url) {

            string selfUrl = url.Link(
                Constants.DefaultHttpRoute, 
                new { controller = "cars", id = car.Id });

            car.AddLink(new SelfLink(selfUrl));
        }
示例#17
0
 public CreatedNegotiatedContentResult<IEnumerable<Figure>> GetCreatedNegotiatedContentResult()
 {
     UrlHelper helper = new UrlHelper(Request);
     IDictionary<string, object> route = new Dictionary<string, object>();
     route["controller"] = "Figure";
     route["action"] = "GetAll";
     return new CreatedNegotiatedContentResult<IEnumerable<Figure>>(new Uri(helper.Link("DefaultApi", route)), FigureManager.Figures, this);
 }
示例#18
0
        public object Get(bool includeMeasures = true, int page = 0)
        {
            IQueryable<Food> query;

              if (includeMeasures)
              {
            query = TheRepository.GetAllFoodsWithMeasures();
              }
              else
              {
            query = TheRepository.GetAllFoods();
              }

              var baseQuery = query.OrderBy(f => f.Description);

              var totalCount = baseQuery.Count();
              var totalPages = Math.Ceiling((double) totalCount / PAGE_SIZE);

              var helper = new UrlHelper(Request);

              var links = new List<LinkModel>();

              if (page > 0)
              {
            links.Add(TheModelFactory.CreateLink(helper.Link("Food", new { page = page - 1 }), "prevPage"));
              }

              if (page < totalPages - 1)
              {
            links.Add(TheModelFactory.CreateLink(helper.Link("Food", new { page = page + 1 }), "nextPage"));
              }

              var results = baseQuery.Skip(PAGE_SIZE * page)
                             .Take(PAGE_SIZE)
                             .ToList()
                             .Select(f => TheModelFactory.Create(f));

              return new
              {
            TotalCount = totalCount,
            TotalPage = totalPages,
            Links = links,
            Results = results
              };
        }
示例#19
0
 public QuestionModel(UrlHelper urlHelper, Question question)
 {
     Url = urlHelper.Link("questions", new { id = question.Id});
     Id = question.Id;
     QuestionText = question.QuestionText;
     QuestionCategoryId = question.CategoryId;
     ImageBytes = question.Image;
     IsDeprecated = question.Deprecated;
 }
示例#20
0
        public IHttpActionResult Post(string buildingid, [FromBody]Unit unit)
        {
            var urlHelper = new UrlHelper(Request);

            unit.BuildingId = buildingid;
            unit.Id = ObjectId.GenerateNewId().ToString();
            unit.Url = urlHelper.Link("unit", new { buildingid, id = unit.Id });
            _repository.Units.Insert(unit);
            return Created(unit.Url, unit);
        }
示例#21
0
        public async Task<IHttpActionResult> GetAllQuestions(int page = 1, int pageSize = 2)
        {
            try
            {
                if (page < 1)
                    return BadRequest("Paging starts with page number 1");

                var totalQuestionCount = await TheApplicationUnit.Questions.GetAll().CountAsync();
                var totalPages = (int) Math.Ceiling((double) totalQuestionCount/pageSize);
                
                var allQuestions =
                    TheApplicationUnit.Questions
                        .GetAll()
                        .OrderBy(x => x.Id)
                        .Skip((page - 1) * pageSize)
                        .Take(pageSize)
                        .ToList();

                var urlHelper = new UrlHelper(Request);
                var pagingInformation = 
                    new
                    {
                        totalPages = totalPages,
                        totalCount = totalQuestionCount,
                        prevPage = page > 1 ? urlHelper.Link("allquestions", new { page = page - 1, pageSize }) : "",
                        nextPage = page <= totalPages ? urlHelper.Link("allquestions", new {page = page + 1, pageSize}) : ""
                    };

                HttpContext.Current.Response.Headers.Add("X-pagination",
                    Newtonsoft.Json.JsonConvert.SerializeObject(pagingInformation));

                if (!allQuestions.Any())
                {
                    return NotFound();
                }

                return Ok(allQuestions.Select(ModelFactory.Create));
            }
            catch (Exception ex)
            {
                return InternalServerError(ex);
            }
        }
示例#22
0
 public AnswerModel(UrlHelper urlHelper, AnswerOption answer)
 {
     Url = urlHelper.Link("answer", new {id = answer.Id});
     Id = answer.Id;
     IsCorrect = answer.IsCorrect;
     QuestionId = answer.QuestionId;
     AnswerText = answer.AnswerText;
     AnswerUrl = answer.AnswerUrl;
     AnswerExplanation = answer.AnswerExplanation;
 }
示例#23
0
        //public IHttpActionResult Get(int pageSize, int page)
        public IHttpActionResult Get()
        {
            //todo implement page
            int pageSize = 10;
            int page= 1;
            if (pageSize > MAX_PAGE_SIZE)
            {
               return BadRequest(string.Format("Maximum items per page allowed is: {0}", MAX_PAGE_SIZE));
            }
            if (page < 0) page = 0;

            var dailyFeelingPage = _service.GetDailyFeelings(pageSize, page);

            var helper = new UrlHelper(Request);
            dailyFeelingPage.PrevUrl = page > 0 ? helper.Link("DailyEntry", new { page = page - 1 }) : "";
            dailyFeelingPage.NextUrl = page < dailyFeelingPage.TotalPages - 1 ? helper.Link("DailyEntry", new {pageSize = pageSize ,page = page + 1 }) : "";

             return Ok(dailyFeelingPage);
               // return dailyFeelingPage.DailyFeelingsVM;
        }
        // http://atompub-mulitpart-spec.googlecode.com/svn/trunk/draft-gregorio-atompub-multipart-03.html
        // https://tools.ietf.org/html/rfc5023#section-9.6
        // http://msdn.microsoft.com/en-us/magazine/dd569753.aspx
        private ResourceCollectionInfo GetMediaResourceCollectionInfo(UrlHelper url) {

            ResourceCollectionInfo pics = new ResourceCollectionInfo("Pictures",
                new Uri(url.Link("DefaultApi", new { controller = "media" })));

            pics.Accepts.Add("image/png");
            pics.Accepts.Add("image/jpeg");
            pics.Accepts.Add("image/gif");

            return pics;
        }
        public IHttpActionResult Post(string companyid, string leaseid, [FromBody]Complaint complaint)
        {
            var urlHelper = new UrlHelper(Request);

            complaint.Id = ObjectId.GenerateNewId().ToString();
            complaint.Url = urlHelper.Link("complaint", new { companyid, leaseid,  id = complaint.Id });
            complaint.ComplaintDate = DateTime.Now;

            _repository.Complaints.Insert(complaint);
            return Created(complaint.Url, complaint);
        }
示例#26
0
        public string Generate(string routeName, object request)
        {
            var urlHelper = new UrlHelper(_requestMessage);

            var values = request.TraverseForKeys(options: Options);

            var link = Options.UriKind == UriKind.Relative
                ? urlHelper.Route(routeName, values)
                : urlHelper.Link(routeName, values);

            return link;
        }
示例#27
0
 public static PostJson Create(Post post, UrlHelper urlHelper)
 {
     return new PostJson
     {
         url = urlHelper.Link("PostApi", new { id = post._Qi_ID }),
         title = post._title,
         body = post._body,
         comment = post._comment,
         viewCount = post._viewCount,
         votes = post._votes
     };
 }
示例#28
0
        public async Task<HttpResponseMessage> Post(Lot lot)
        {
            await _store.CreateAsync(lot);
            var response = Request.CreateResponse(HttpStatusCode.Created, lot);

            var urlHelper = new UrlHelper(Request);
            var controllerName = this.GetType().Name;
            controllerName = controllerName.Substring(0, controllerName.Length - "controller".Length).ToLower();

            response.Headers.Location = new Uri(urlHelper.Link(RouteConfig.DefaultApi, new { controller = controllerName, id = lot.Id }));

            return response;
        }
示例#29
0
 public CourseModel Create(Course course)
 {
     return(new CourseModel()
     {
         Url = _UrlHelper.Link("Courses", new { id = course.Id }),
         Id = course.Id,
         Name = course.Name,
         Duration = course.Duration,
         Description = course.Description,
         Tutor = Create(course.CourseTutor),
         Subject = Create(course.CourseSubject)
     });
 }
        public IHttpActionResult Get(DateTime dairyid, int page = 0)
        {
            try
            {
                var username = _identityService.CurrentUser;
                var totalcount = TheRepository.EntrieCount(username, dairyid);
                var totalpages = Math.Ceiling((double)totalcount / PAGE_SIZE);

                var helper = new UrlHelper(Request);
                var prevUrl = page >0 ? helper.Link("DiariesEntries", new { page = page - 1 }):"";
                var nextUrl = page<totalpages -1 ? helper.Link("DiariesEntries", new { page = page + 1 }):"";
                //var username = Thread.CurrentPrincipal.Identity.Name;
                var result = TheRepository.GetDairiesEntries(username, dairyid, page, PAGE_SIZE);
                return result == null
                    ? (IHttpActionResult)NotFound()
                    : Ok(new {totalcount=totalcount,totalpages= totalpages,prevUrl=prevUrl,nextUrl=nextUrl,results= result.Select(b => TheModelFactory.Create(b)).ToList()});
            }
            catch (Exception)
            {
                return InternalServerError();
            }
        }
        public void GenerateLinkDirectly_MatchesUrlHelperLink(string odataPath)
        {
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/vpath/prefix/Customers");
            HttpConfiguration config = new HttpConfiguration(new HttpRouteCollection("http://localhost/vpath"));
            config.Routes.MapHttpRoute("OData", "prefix/{*odataPath}");
            request.SetConfiguration(config);
            UrlHelper urlHelper = new UrlHelper(request);

            // Test that the link generated by ODataLink matches the one generated by Url.Link
            Assert.Equal(
                urlHelper.Link("OData", new { odataPath = odataPath }),
                urlHelper.GenerateLinkDirectly("OData", odataPath));
        }
示例#32
0
 public UserReturnModel Create(ApplicationUser appUser)
 {
     return(new UserReturnModel
     {
         Url = _UrlHelper.Link("GetUserById", new { id = appUser.Id }),
         Id = appUser.Id,
         UserName = appUser.UserName,
         FullName = string.Format("{0} {1}", appUser.FirstName, appUser.LastName),
         Email = appUser.Email,
         EmailConfirmed = appUser.EmailConfirmed,
         Level = appUser.Level,
         JoinDate = appUser.JoinDate,
         Roles = _AppUserManager.GetRolesAsync(appUser.Id).Result,
         Claims = _AppUserManager.GetClaimsAsync(appUser.Id).Result
     });
 }