public async Task <ActionResult> Index(YourOrganisationsViewModel model) { if (!ModelState.IsValid) { return(await ShowOrganisations()); } return(RedirectToAction("ChooseActivity", "Home", new { area = "Scheme", pcsId = model.SelectedOrganisationId.Value })); }
public async Task<ActionResult> Index(YourOrganisationsViewModel model) { if (!ModelState.IsValid) { return await ShowOrganisations(); } return RedirectToAction("ChooseActivity", "Home", new { area = "Scheme", pcsId = model.SelectedOrganisationId.Value }); }
private async Task <ActionResult> ShowOrganisations() { IEnumerable <OrganisationUserData> organisations = await GetOrganisations(); List <OrganisationUserData> accessibleOrganisations = organisations .Where(o => o.UserStatus == UserStatus.Active) .ToList(); List <OrganisationUserData> inaccessibleOrganisations = organisations .Except(accessibleOrganisations) .ToList(); if (accessibleOrganisations.Count == 1 && inaccessibleOrganisations.Count == 0) { Guid organisationId = accessibleOrganisations[0].OrganisationId; return(RedirectToAction("ChooseActivity", "Home", new { area = "Scheme", pcsId = organisationId })); } if (accessibleOrganisations.Count > 0) { YourOrganisationsViewModel model = new YourOrganisationsViewModel(); model.Organisations = accessibleOrganisations; ViewBag.InaccessibleOrganisations = inaccessibleOrganisations.Where(o => o.UserStatus == UserStatus.Pending); return(View("YourOrganisations", model)); } if (inaccessibleOrganisations.Count > 0) { PendingOrganisationsViewModel model = new PendingOrganisationsViewModel(); model.InaccessibleOrganisations = FilterOutDuplicateOrganisations(inaccessibleOrganisations); return(View("PendingOrganisations", model)); } return(RedirectToAction("Search", "OrganisationRegistration")); }
private async Task<ActionResult> ShowOrganisations() { IEnumerable<OrganisationUserData> organisations = await GetOrganisations(); List<OrganisationUserData> accessibleOrganisations = organisations .Where(o => o.UserStatus == UserStatus.Active) .ToList(); List<OrganisationUserData> inaccessibleOrganisations = organisations .Except(accessibleOrganisations) .ToList(); if (accessibleOrganisations.Count == 1 && inaccessibleOrganisations.Count == 0) { Guid organisationId = accessibleOrganisations[0].OrganisationId; return RedirectToAction("ChooseActivity", "Home", new { area = "Scheme", pcsId = organisationId }); } if (accessibleOrganisations.Count > 0) { YourOrganisationsViewModel model = new YourOrganisationsViewModel(); model.Organisations = accessibleOrganisations; ViewBag.InaccessibleOrganisations = inaccessibleOrganisations.Where(o => o.UserStatus == UserStatus.Pending); return View("YourOrganisations", model); } if (inaccessibleOrganisations.Count > 0) { PendingOrganisationsViewModel model = new PendingOrganisationsViewModel(); model.InaccessibleOrganisations = FilterOutDuplicateOrganisations(inaccessibleOrganisations); return View("PendingOrganisations", model); } return RedirectToAction("Search", "OrganisationRegistration"); }
public async void GetIndex_OneActiveOrg_And_OneInactiveOrg_ShowsYourOrganisationsView() { // Arrange Guid organisationId1 = new Guid("433DB128-12A1-44FB-B26A-8128F8E36598"); Guid organisationId2 = new Guid("90F0D10D-BE4E-462C-A214-30B94C461F8B"); IWeeeClient weeeClient = A.Fake <IWeeeClient>(); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetUserOrganisationsByStatus> ._)) .Returns(new List <OrganisationUserData> { new OrganisationUserData { OrganisationId = organisationId1, UserStatus = UserStatus.Active, Organisation = new OrganisationData { OrganisationName = "Organisation Name 1", OrganisationStatus = OrganisationStatus.Complete, } }, new OrganisationUserData { OrganisationId = organisationId2, UserStatus = UserStatus.Pending, Organisation = new OrganisationData { OrganisationName = "Organisation Name 2", OrganisationStatus = OrganisationStatus.Complete, } } }); OrganisationController controller = new OrganisationController(() => weeeClient); // Act ActionResult result = await controller.Index(); // Assert Assert.IsAssignableFrom <ViewResult>(result); ViewResult viewResult = result as ViewResult; Assert.Equal("YourOrganisations", viewResult.ViewName); Assert.IsAssignableFrom <YourOrganisationsViewModel>(viewResult.Model); YourOrganisationsViewModel model = viewResult.Model as YourOrganisationsViewModel; Assert.Equal(1, model.Organisations.Count); Assert.Equal(organisationId1, model.Organisations[0].OrganisationId); Assert.Equal("Organisation Name 1", model.Organisations[0].Organisation.OrganisationName); Assert.IsAssignableFrom <IEnumerable <OrganisationUserData> >(viewResult.ViewBag.InaccessibleOrganisations); IEnumerable <OrganisationUserData> inaccessibleOrganisations = viewResult.ViewBag.InaccessibleOrganisations as IEnumerable <OrganisationUserData>; Assert.Equal(1, inaccessibleOrganisations.Count()); Assert.Equal(organisationId2, inaccessibleOrganisations.First().OrganisationId); Assert.Equal("Organisation Name 2", inaccessibleOrganisations.First().Organisation.OrganisationName); }