public async Task<ActionResult> Overview(Guid schemeId, OverviewDisplayOption? overviewDisplayOption = null) { await SetBreadcrumb(schemeId); if (overviewDisplayOption == null) { overviewDisplayOption = OverviewDisplayOption.PcsDetails; } using (var client = apiClient()) { var scheme = await client.SendAsync(User.GetAccessToken(), new GetSchemeById(schemeId)); switch (overviewDisplayOption.Value) { case OverviewDisplayOption.MembersData: var membersDataModel = mapper.Map<MembersDataOverviewViewModel>(scheme); return View("Overview/MembersDataOverview", membersDataModel); case OverviewDisplayOption.OrganisationDetails: var orgDetails = await client.SendAsync(User.GetAccessToken(), new OrganisationBySchemeId(schemeId)); switch (orgDetails.OrganisationType) { case OrganisationType.SoleTraderOrIndividual: var soleTraderModel = mapper.Map<SoleTraderDetailsOverviewViewModel>(orgDetails); soleTraderModel.CanEditOrganisation = orgDetails.CanEditOrganisation; soleTraderModel.SchemeId = schemeId; soleTraderModel.SchemeName = scheme.SchemeName; return View("Overview/SoleTraderDetailsOverview", soleTraderModel); case OrganisationType.Partnership: var partnershipModel = mapper.Map<PartnershipDetailsOverviewViewModel>(orgDetails); partnershipModel.CanEditOrganisation = orgDetails.CanEditOrganisation; partnershipModel.SchemeId = schemeId; partnershipModel.SchemeName = scheme.SchemeName; return View("Overview/PartnershipDetailsOverview", partnershipModel); case OrganisationType.RegisteredCompany: default: var registeredCompanyModel = mapper.Map<RegisteredCompanyDetailsOverviewViewModel>(orgDetails); registeredCompanyModel.CanEditOrganisation = orgDetails.CanEditOrganisation; registeredCompanyModel.SchemeId = schemeId; registeredCompanyModel.SchemeName = scheme.SchemeName; return View("Overview/RegisteredCompanyDetailsOverview", registeredCompanyModel); } case OverviewDisplayOption.ContactDetails: var organisationData = await client.SendAsync(User.GetAccessToken(), new OrganisationBySchemeId(schemeId)); var contactDetailsModel = mapper.Map<ContactDetailsOverviewViewModel>(organisationData); contactDetailsModel.SchemeName = scheme.SchemeName; contactDetailsModel.SchemeId = scheme.Id; contactDetailsModel.CanEditContactDetails = scheme.CanEdit; return View("Overview/ContactDetailsOverview", contactDetailsModel); case OverviewDisplayOption.PcsDetails: default: return View("Overview/PcsDetailsOverview", mapper.Map<PcsDetailsOverviewViewModel>(scheme)); } } }
protected OverviewViewModel(OverviewDisplayOption activeOverviewDisplayOption) { ActiveOverviewDisplayOption = activeOverviewDisplayOption; }