public SolutionDashboardSections(ISolution solution) { if (solution is null) { throw new ArgumentNullException(nameof(solution)); } SolutionDescriptionSection = DashboardSection.Mandatory(!string.IsNullOrWhiteSpace(solution.Summary)); FeaturesSection = DashboardSection.Optional( solution.Features?.Any(feature => !string.IsNullOrWhiteSpace(feature)) == true); ClientApplicationTypesSection = DashboardSection.MandatoryWithSubSection( solution.ClientApplication?.ClientApplicationTypes?.Any() == true, new ClientApplicationTypesSubSections(solution.ClientApplication)); ContactDetailsSection = DashboardSection.Optional(new ContactAnswerSection(solution.Contacts).HasData()); HostingTypePublicCloudSection = DashboardSection.Optional(solution.Hosting.IsPublicCloudComplete()); HostingTypePrivateCloudSection = DashboardSection.Optional(solution.Hosting.IsPrivateCloudComplete()); HostingTypeHybridSection = DashboardSection.Optional(solution.Hosting.IsHybridHostingTypeComplete()); HostingTypeOnPremiseSection = DashboardSection.Optional(solution.Hosting.IsOnPremiseComplete()); AboutSupplierSection = DashboardSection.Optional(solution.Supplier.IsSupplierComplete()); RoadMapSection = DashboardSection.Optional(solution.IsRoadMapComplete()); IntegrationsSection = DashboardSection.Optional(solution.IsIntegrationsComplete()); ImplementationTimescalesSection = DashboardSection.Optional(solution.IsImplementationTimescalesComplete()); }
/// <summary> /// Initialises a new instance of the <see cref="ClientApplicationTypesSubSections"/> class. /// </summary> /// <param name="clientApplication"></param> public ClientApplicationTypesSubSections(IClientApplication clientApplication) { HashSet <string> clientApplicationTypes = clientApplication?.ClientApplicationTypes ?? new HashSet <string>(); SetIfSelected("browser-based", clientApplicationTypes, () => BrowserBasedSection = DashboardSection.Mandatory(clientApplication.IsBrowserBasedComplete())); SetIfSelected("native-mobile", clientApplicationTypes, () => NativeMobileSection = DashboardSection.Mandatory(false)); SetIfSelected("native-desktop", clientApplicationTypes, () => NativeDesktopSection = DashboardSection.Mandatory(false)); }
public NativeMobileSections(IClientApplication clientApplication) { MobileOperatingSystems = DashboardSection.Mandatory(clientApplication.IsMobileOperatingSystems()); MobileFirst = DashboardSection.Mandatory(clientApplication.IsNativeMobileFirstComplete()); MobileMemoryStorage = DashboardSection.Mandatory(clientApplication.IsMobileMemoryAndStorageComplete()); MobileConnectionDetails = DashboardSection.Optional(clientApplication.IsMobileConnectionDetailsComplete()); MobileComponentsDeviceCapabilities = DashboardSection.Optional(false); MobileHardwareRequirements = DashboardSection.Optional(false); MobileAdditionalInformation = DashboardSection.Optional(false); }
public SolutionAuthorityDashboardSections(ISolution solution) { if (solution is null) { throw new ArgumentNullException(nameof(solution)); } IEnumerable <IClaimedCapability> claimedCapabilityList = solution.Capabilities.ToList(); Capabilities = DashboardSection.Mandatory(claimedCapabilityList.Any()); Epics = DashboardSection.Mandatory(claimedCapabilityList.Any(capability => capability.ClaimedEpics.Any())); }
/// <summary> /// Initialises a new instance of the <see cref="SolutionDashboardSections"/> class. /// </summary> public SolutionDashboardSections(ISolution solution) { if (solution is null) { throw new ArgumentNullException(nameof(solution)); } SolutionDescriptionSection = DashboardSection.Mandatory(!string.IsNullOrWhiteSpace(solution.Summary)); FeaturesSection = DashboardSection.Optional(solution.Features?.Any(feature => !string.IsNullOrWhiteSpace(feature)) == true); ClientApplicationTypesSection = DashboardSection.MandatoryWithSubSection( solution.ClientApplication?.ClientApplicationTypes?.Any() == true, new ClientApplicationTypesSubSections(solution.ClientApplication)); ContactDetailsSection = DashboardSection.Optional(new ContactAnswerSection(solution.Contacts).HasData()); }