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;
 }
Exemple #3
0
 protected OverviewViewModel(OverviewDisplayOption activeOverviewDisplayOption)
 {
     ActiveOverviewDisplayOption = activeOverviewDisplayOption;
 }