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); }
// 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)); }