public async Task GetMissionRequestIdByName()
        {
            // arrange
            const string ControllerName = "MissionRequest";
            var          requestString  = string.Concat(
                ConfigurationManager.AppSettings["ApiUrl"],
                ControllerName,
                "?$filter=MissionId eq 'Mission1'&$select=Id&$orderby=LastUpdateDate desc");
            var request = new HttpRequestMessage(HttpMethod.Get, requestString);

            ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();

            modelBuilder.EntitySet <MissionRequest>(ControllerName);
            var opts =
                new ODataQueryOptions <MissionRequest>(
                    new ODataQueryContext(modelBuilder.GetEdmModel(), typeof(MissionRequest)), request);

            // Действие
            var results = (await _service.GetRequests(opts.ToQueryOptions()));

            // Утверждение
            Assert.NotNull(results);
            Assert.AreEqual(1, results.Count);
            Assert.AreEqual("Request1", results.First().Id);
        }
예제 #2
0
        // GET: Admin/MissionRequests

        /// <summary>
        /// Indexes the specified page.
        /// </summary>
        /// <param name="page">The page.</param>
        /// <returns>Task{ActionResult}.</returns>
        public async Task <ActionResult> Index(int?page)
        {
            var       pageNumber            = page ?? 0;
            const int MissionRequestsOnPage = 15;
            var       selectOptions         = new QueryOptions <MissionRequest>
            {
                Skip = pageNumber * MissionRequestsOnPage,
                Top  = MissionRequestsOnPage + 1,

/*                Select = missionRequest =>
 *              new
 *              {
 *                  missionRequest.Id,
 *                  missionRequest.User.NickName,
 *                  missionRequest.Mission.Name,
 *                  missionRequest.LastUpdateDate
 *              },*/
                Expand = new List <string> {
                    "Mission", "User"
                },
                Filter = missionRequest => missionRequest.Status == MissionRequestStatus.NotChecked
            };

            Expression <Func <MissionRequest, DateTime> > z = x => x.LastUpdateDate;

            selectOptions.OrderBy = new List <SortDescription> {
                new SortDescription(z, SortDirection.Ascending)
            };

            var missionRequests = await _missionRequestService.GetRequests(selectOptions);

            IEnumerable <MissionRequest> model;

            if (missionRequests.Count <= MissionRequestsOnPage)
            {
                ViewBag.ShowNext = false;
                model            = missionRequests;
            }
            else
            {
                ViewBag.ShowNext = true;
                model            = missionRequests.Take(MissionRequestsOnPage);
            }

            ViewBag.ShowPrevious = pageNumber != 0;
            ViewBag.CurrentPage  = pageNumber;
            return(View(model));
        }