From 05db2568bfa2ea85dcd858a62176d4d960a6a9c9 Mon Sep 17 00:00:00 2001 From: Damien Guard Date: Mon, 12 Jan 2015 21:01:03 -0800 Subject: [PATCH] Windows Phone 8.1 sample app. --- Source/CSharpAnalytics.sln | 37 +- .../WindowsPhone81AutoMeasurement.cs | 4 +- .../Measurement/MeasurementConfiguration.cs | 11 + .../SystemInfo/WindowsPhone81SystemInfo.cs | 15 +- .../App.xaml | 20 + .../App.xaml.cs | 137 ++++++ .../Assets/DarkGray.png | Bin 0 -> 560 bytes .../Assets/HubBackground.theme-dark.png | Bin 0 -> 47177 bytes .../Assets/HubBackground.theme-light.png | Bin 0 -> 44856 bytes .../Assets/LightGray.png | Bin 0 -> 560 bytes .../Assets/Logo.scale-240.png | Bin 0 -> 2516 bytes .../Assets/MediumGray.png | Bin 0 -> 561 bytes .../Assets/SmallLogo.scale-240.png | Bin 0 -> 753 bytes .../Assets/SplashScreen.scale-240.png | Bin 0 -> 14715 bytes .../Assets/Square71x71Logo.scale-240.png | Bin 0 -> 1122 bytes .../Assets/StoreLogo.scale-240.png | Bin 0 -> 2200 bytes .../Assets/WideLogo.scale-240.png | Bin 0 -> 4530 bytes ...harpAnalytics.Sample.WindowsPhone81.csproj | 164 +++++++ .../Common/NavigationHelper.cs | 436 ++++++++++++++++++ .../Common/ObservableDictionary.cs | 149 ++++++ .../Common/ReadMe.txt | 7 + .../Common/RelayCommand.cs | 86 ++++ .../Common/SuspensionManager.cs | 269 +++++++++++ .../DataModel/SampleData.json | 327 +++++++++++++ .../DataModel/SampleDataSource.cs | 153 ++++++ .../HubPage.xaml | 160 +++++++ .../HubPage.xaml.cs | 150 ++++++ .../ItemPage.xaml | 48 ++ .../ItemPage.xaml.cs | 116 +++++ .../Package.appxmanifest | 29 ++ .../Properties/AssemblyInfo.cs | 29 ++ .../SectionPage.xaml | 79 ++++ .../SectionPage.xaml.cs | 127 +++++ .../Strings/en-US/Resources.resw | 144 ++++++ 34 files changed, 2683 insertions(+), 14 deletions(-) create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/App.xaml create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/App.xaml.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/DarkGray.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/HubBackground.theme-dark.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/HubBackground.theme-light.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/LightGray.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/Logo.scale-240.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/MediumGray.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/SmallLogo.scale-240.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/SplashScreen.scale-240.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/Square71x71Logo.scale-240.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/StoreLogo.scale-240.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/WideLogo.scale-240.png create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/CSharpAnalytics.Sample.WindowsPhone81.csproj create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/NavigationHelper.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/ObservableDictionary.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/ReadMe.txt create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/RelayCommand.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/SuspensionManager.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/DataModel/SampleData.json create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/DataModel/SampleDataSource.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/HubPage.xaml create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/HubPage.xaml.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/ItemPage.xaml create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/ItemPage.xaml.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Package.appxmanifest create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Properties/AssemblyInfo.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/SectionPage.xaml create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/SectionPage.xaml.cs create mode 100644 Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Strings/en-US/Resources.resw diff --git a/Source/CSharpAnalytics.sln b/Source/CSharpAnalytics.sln index 1b6ab2c..3a57d3f 100644 --- a/Source/CSharpAnalytics.sln +++ b/Source/CSharpAnalytics.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +# Visual Studio 14 +VisualStudioVersion = 14.0.22231.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpAnalytics.Windows8", "CSharpAnalytics\CSharpAnalytics.Windows8.csproj", "{31872BEA-1F8A-4FF0-B796-7768A0CDF256}" EndProject @@ -50,6 +50,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Windows Phone 8.1", "Window EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpAnalytics.WindowsPhone81", "CSharpAnalytics\CSharpAnalytics.WindowsPhone81.csproj", "{64EB7726-8FD2-4764-94E7-347977E1FEEE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpAnalytics.Sample.WindowsPhone81", "Samples\CSharpAnalytics.Sample.WindowsPhone81\CSharpAnalytics.Sample.WindowsPhone81.csproj", "{522CC2A8-71BD-4DA6-B10D-E214B0873B4D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -366,6 +368,36 @@ Global {64EB7726-8FD2-4764-94E7-347977E1FEEE}.Release|x64.ActiveCfg = Release|Any CPU {64EB7726-8FD2-4764-94E7-347977E1FEEE}.Release|x86.ActiveCfg = Release|x86 {64EB7726-8FD2-4764-94E7-347977E1FEEE}.Release|x86.Build.0 = Release|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|ARM.ActiveCfg = Debug|ARM + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|ARM.Build.0 = Debug|ARM + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|ARM.Deploy.0 = Debug|ARM + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|Mixed Platforms.Deploy.0 = Debug|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|x64.ActiveCfg = Debug|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|x64.Build.0 = Debug|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|x64.Deploy.0 = Debug|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|x86.ActiveCfg = Debug|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|x86.Build.0 = Debug|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Debug|x86.Deploy.0 = Debug|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|Any CPU.Build.0 = Release|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|Any CPU.Deploy.0 = Release|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|ARM.ActiveCfg = Release|ARM + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|ARM.Build.0 = Release|ARM + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|ARM.Deploy.0 = Release|ARM + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|Mixed Platforms.Build.0 = Release|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|Mixed Platforms.Deploy.0 = Release|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|x64.ActiveCfg = Release|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|x64.Build.0 = Release|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|x64.Deploy.0 = Release|Any CPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|x86.ActiveCfg = Release|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|x86.Build.0 = Release|x86 + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D}.Release|x86.Deploy.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -386,5 +418,6 @@ Global {1A9591AF-E5CD-42DE-80A4-B17B227DD45B} = {6145367D-3F9E-440B-AAE5-2FDF6864C111} {A599EEEA-FC89-47FB-B8A9-DFD16FC3201D} = {3F625E98-D620-4CF3-BD83-5C97B7360496} {64EB7726-8FD2-4764-94E7-347977E1FEEE} = {8A95E16A-D32C-407B-B130-D0D56482A6DF} + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D} = {8A95E16A-D32C-407B-B130-D0D56482A6DF} EndGlobalSection EndGlobal diff --git a/Source/CSharpAnalytics/AutoMeasurement/WindowsPhone81AutoMeasurement.cs b/Source/CSharpAnalytics/AutoMeasurement/WindowsPhone81AutoMeasurement.cs index 4735a40..ae6f887 100644 --- a/Source/CSharpAnalytics/AutoMeasurement/WindowsPhone81AutoMeasurement.cs +++ b/Source/CSharpAnalytics/AutoMeasurement/WindowsPhone81AutoMeasurement.cs @@ -95,7 +95,7 @@ protected override void UnhookEvents() /// Task that completes when the requester is ready to use. protected override Task SetupRequesterAsync() { - var webRequester = new HttpWebRequester(ClientUserAgent + " " + WindowsPhoneSystemInfo.GetSystemUserAgent()); + var webRequester = new HttpWebRequester(ClientUserAgent + " " + WindowsPhone81SystemInfo.GetSystemUserAgent()); Requester = webRequester.Request; return Task.FromResult(true); @@ -171,7 +171,7 @@ private async void ApplicationOnSuspending(object sender, SuspendingEventArgs su } /// - /// AutoMeasurement static wrapper to make it easier to use across a Windows Phone "Silverlight" application. + /// AutoMeasurement static wrapper to make it easier to use across a Windows Phone 8.1 application. /// public static class AutoMeasurement { diff --git a/Source/CSharpAnalytics/Protocols/Measurement/MeasurementConfiguration.cs b/Source/CSharpAnalytics/Protocols/Measurement/MeasurementConfiguration.cs index f333549..2c01738 100644 --- a/Source/CSharpAnalytics/Protocols/Measurement/MeasurementConfiguration.cs +++ b/Source/CSharpAnalytics/Protocols/Measurement/MeasurementConfiguration.cs @@ -142,5 +142,16 @@ public MeasurementConfiguration(string accountId) { } #endif + +#if WINDOWS_PHONE_APP + /// + /// Create a new cofiguration for analytics. + /// + /// Google Analytics provided property id in the format UA-XXXX-Y. + public MeasurementConfiguration(string accountId) + : this(accountId, SystemInfo.WindowsPhone81SystemInfo.ApplicationName, SystemInfo.WindowsPhone81SystemInfo.ApplicationVersion) + { + } +#endif } } \ No newline at end of file diff --git a/Source/CSharpAnalytics/SystemInfo/WindowsPhone81SystemInfo.cs b/Source/CSharpAnalytics/SystemInfo/WindowsPhone81SystemInfo.cs index accb2c6..062a45b 100644 --- a/Source/CSharpAnalytics/SystemInfo/WindowsPhone81SystemInfo.cs +++ b/Source/CSharpAnalytics/SystemInfo/WindowsPhone81SystemInfo.cs @@ -1,26 +1,21 @@ -// Copyright (c) Attack Pattern LLC. All rights reserved. +// Copyright (c) Attack Pattern LLC. All rights reserved. // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. // You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 using System; using System.Linq; -using System.Xml.Linq; -using Windows.Networking; -using Windows.Devices; -using Windows.Security.ExchangeActiveSyncProvisioning; -using Windows.UI.Xaml; using Windows.ApplicationModel; +using Windows.Security.ExchangeActiveSyncProvisioning; - namespace CSharpAnalytics.SystemInfo +namespace CSharpAnalytics.SystemInfo { - public static class WindowsPhoneSystemInfo + public static class WindowsPhone81SystemInfo { private static readonly string applicationName; private static readonly string applicationVersion; - static WindowsPhoneSystemInfo() + static WindowsPhone81SystemInfo() { - /// @todo not wild about the name here; not sure what the better option is applicationName = Package.Current.Id.Name; applicationVersion = String.Format("{0}.{1}", Package.Current.Id.Version.Major, Package.Current.Id.Version.Minor); } diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/App.xaml b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/App.xaml new file mode 100644 index 0000000..c176f7d --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/App.xaml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/App.xaml.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/App.xaml.cs new file mode 100644 index 0000000..8b68743 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/App.xaml.cs @@ -0,0 +1,137 @@ +using CSharpAnalytics.Sample.WindowsPhone81.Common; +using System; +using System.Diagnostics; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Media.Animation; +using Windows.UI.Xaml.Navigation; + +namespace CSharpAnalytics.Sample.WindowsPhone81 +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + public sealed partial class App : Application + { + private TransitionCollection transitions; + + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + this.Suspending += this.OnSuspending; + } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used when the application is launched to open a specific file, to display + /// search results, and so forth. + /// + /// Details about the launch request and process. + protected override async void OnLaunched(LaunchActivatedEventArgs e) + { +#if DEBUG + if (System.Diagnostics.Debugger.IsAttached) + { + this.DebugSettings.EnableFrameRateCounter = true; + } +#endif + + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active. + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page. + rootFrame = new Frame(); + + // Associate the frame with a SuspensionManager key. + SuspensionManager.RegisterFrame(rootFrame, "AppFrame"); + + // TODO: Change this value to a cache size that is appropriate for your application. + rootFrame.CacheSize = 1; + + // Set the default language + rootFrame.Language = Windows.Globalization.ApplicationLanguages.Languages[0]; + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + // Restore the saved session state only when appropriate. + try + { + await SuspensionManager.RestoreAsync(); + } + catch (SuspensionManagerException) + { + // Something went wrong restoring state. + // Assume there is no state and continue. + } + } + + // Place the frame in the current Window. + Window.Current.Content = rootFrame; + } + + if (rootFrame.Content == null) + { + // Removes the turnstile navigation for startup. + if (rootFrame.ContentTransitions != null) + { + this.transitions = new TransitionCollection(); + foreach (var c in rootFrame.ContentTransitions) + { + this.transitions.Add(c); + } + } + + rootFrame.ContentTransitions = null; + rootFrame.Navigated += this.RootFrame_FirstNavigated; + + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter. + if (!rootFrame.Navigate(typeof(HubPage), e.Arguments)) + { + throw new Exception("Failed to create initial page"); + } + + AutoMeasurement.DebugWriter = d => Debug.WriteLine(d); + AutoMeasurement.Start(new MeasurementConfiguration("UA-319000-8"), e); + AutoMeasurement.Attach(rootFrame); + } + + // Ensure the current window is active. + Window.Current.Activate(); + } + + /// + /// Restores the content transitions after the app has launched. + /// + private void RootFrame_FirstNavigated(object sender, NavigationEventArgs e) + { + var rootFrame = sender as Frame; + rootFrame.ContentTransitions = this.transitions ?? new TransitionCollection() { new NavigationThemeTransition() }; + rootFrame.Navigated -= this.RootFrame_FirstNavigated; + } + + /// + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// + /// The source of the suspend request. + /// Details about the suspend request. + private async void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + await SuspensionManager.SaveAsync(); + deferral.Complete(); + } + } +} diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/DarkGray.png b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/DarkGray.png new file mode 100644 index 0000000000000000000000000000000000000000..6cb268aaa22f93efafa0e2daf00bdb7d328e472b GIT binary patch literal 560 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!A964O$-i>)e}EKcfk$L90|Va?5N4dJ%_j|1 z^~lr3F{I+w+slre3=SL&2Zi-!+_Imd%3^OUC}yVho3VT!OM;Vu;y~gV0tSi$i+wm| k2n;M%WAWi24~y|E4`*?G{LAbKFbObty85}Sb4q9e0P#11>Hq)$ literal 0 HcmV?d00001 diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/HubBackground.theme-dark.png b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/HubBackground.theme-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1c448679d5c97134e674450e98c37d4f7da602b3 GIT binary patch literal 47177 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 XT*ZjMO^$j$2XX>)`dE`+Y~lX_$pw8| literal 0 HcmV?d00001 diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/LightGray.png b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/LightGray.png new file mode 100644 index 0000000000000000000000000000000000000000..6ccc22b3aaf575790687ded1c3c8010af44004cf GIT binary patch literal 560 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!A964O$-i>)e}EKcfk$L90|Va?5N4dJ%_j|1 z^~lr3F{I+w+slre3=SL&2Zh(wn_qO8Ch+HsOT>*6uh{SW6l&l+*fNkf!RbKDz+wZ% k1gC+;GXxA2$-@x_dwE!YaZCFt1Cs!Qr>mdKI;Vst0B%CWtpET3 literal 0 HcmV?d00001 diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/Logo.scale-240.png b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/Logo.scale-240.png new file mode 100644 index 0000000000000000000000000000000000000000..76921ca99715449322ce4575b714262598766ebb GIT binary patch literal 2516 zcma)8e^gWF8NRs*$>m340*H_V3IrWmSyAF81<^|bF*@;AU9F(UpdhglLIe?&VlKge zU_jhiMWK52AY*G$dK!Ut0zrXVoS4COL|`OH(K@8MLKRTv-jB1tclJk;@BQBAdEWQl z-1oWPsV$q<@!iC37>4oJtK+s|7)y&j1Q&LWjV1pbe*CiIKhFM8zd!p(@}X2LHbuWT zHE_KyIW2WtYI4d^!}qDHG0Zh*eO&DJ+<|99Bf6x!3r}u6yRg~&Gfhs&jz?$zRuEMY z#jH22)s>t(^7zpG^EWUVbBytMBybxq$`Bh@~p2>_?jf$QK;M7hr&Pm zkP9GuG*nCP#>0AzitGA4O^^ue8Ncvgl|7hWJULlE9-yt@cFcU!rSn9K_Z4VAE0c*A z3!gaW!R@rq0jk=>MhZM0T!BF#K(bQl{~%~yD%Js(epuz@53v0i33(t{d1HkV?g8yL zxN;*3>z68BAUvPAau*7(1}V8HJFp@h!n)zpm!T*%_L0XsAn_;iN*vnlH?M?-m_)A) zh`J#xbP-C*nG{HNd~<8!9N(%oDa!LFuL3!+N9H&-1D8=eSr@q`9zk|8F(J-cmjP3O zVn^H9Q@Alsv&#URow0+7kr!umR(&1?w;D;VASjIMnk9QpHO7hm; z#v()QT)a7kCcQJWa9uc{6Bs^ksFHHGvgkoitrCwMtK|$ZwlG&~vY$_L5KV?>M&n_2 zGdDxU@C8F|xGvYJ;tXJXVbci784$K75OS_-Ml8ek8Zv?mT`=Kpy)0fvmQ#}D{ohji zn){nApl;H+TPexPe)zJ+?z>A^lTCbgIk#*g*lre(@7jG=H-7R3uA4TOTimQvG}e$n zcLiyFM_5f5bS~wR#ZQY#~d-wR3Bs)@X|Lj2CCl&pEx7+Bp2J)oHO0} zOsJLmkUxCR8K9G+8)bHdJe^DDWC{dHBCRxlETBfQulTf&wx~EE(5_IYv*?^kK_54r zVhl{~agMmCByy3K&S}U!2i?`(@Fd+QRPprzu(Q?@fz)2>GqCv^bDvd8Kj06#?>;M<|u= zg9J&W^fZ?JD}V+2`$o-&Hs`4b+@j{0H&=_aaZ%w$AnZF$2YCY@H-!R}W8MlW!lOnZ zvkQGU04pfG5>QHwqSKEy+l(a5)Hn9v0lRH(_V}iz6MT<&=8sauWC^v?<1f>?pP$>a_NOHdOA(0oA(9tdod>DsL8s?I zLI8CMP0CO}fwNGM5p|U^<(D1=f@eP+3ntcc_GtrO&TB3zi_lvot08Zzdyx z?ZsJNWg?bl=DbKttLol7Bjos)#7N0Dwz`0r`&oSfC5vn2<9z%FNsyf=*Ppyc$O}fR zV9js!$1S#LGyL7b%Uc)Y7G}DZuu`&+)-c>+bV_7)qDT)t_)b42Z%I1D^hOO!@RS* zKwGiv<|=$bu0kMu=C!2Z~n`jMSO_Lcl3INRSPL;fr2fR8$X1K~*ec(Ds)h zk=tf8vWM@I zyeY)aP2J)I&pcz(fj3En%`0e9YO8m(wi~Owv`W^{MM^?6w~vN6z$4j1S11X`xx{5a zh}@ZlWkA!bi>Ed=MIB~3{f54zj%#fbZdM+*;@Y9xeJ+XBu{B`$ct#?4e{pu_;KgA3 zBah%Pdw?Kw91rWEeyMs-qBU?U0_I-+hKtbe%9&lDRM%UujrK`nwt01P607M?bfF@E zEhG0%Q>77GZY)&tV7L38F9~wn_1~QVtj28iSOlQ`2fp8e!rEF7FBBfUD@0*eR|n$k zOoG=U>}G6AhccBhy%mt8YS`?s9;2EEEwCyC9##b#>;zz7A5fq;TLW0(QybI{?4|z? z!c)e}EKcfk$L90|Va?5N4dJ%_j|1 z_1M$JF{I+w+shj{85}qc91ySj@5XYxl=I-TycP$g)$#?;y&2S4gqa2qH*qow4=g^| m(!e>eIKk;a3wb!Jv(~^gz~JfX=d#Wzp$PzP^psEl literal 0 HcmV?d00001 diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/SmallLogo.scale-240.png b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Assets/SmallLogo.scale-240.png new file mode 100644 index 0000000000000000000000000000000000000000..316630124fd17743032a79102625b0b525005e74 GIT binary patch literal 753 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 aeE1)epL)B$w-u`Z0000SK>Qt}(H-q=T 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 gV5~u<%>&ppbSls(D;2H23k0DxD+50(=0|+ + + + + Debug + AnyCPU + {522CC2A8-71BD-4DA6-B10D-E214B0873B4D} + AppContainerExe + Properties + CSharpAnalytics.Sample.WindowsPhone81 + CSharpAnalytics.Sample.WindowsPhone81 + en-US + 8.1 + 12 + 512 + {76F1466A-8B6D-4E39-A767-685A06062A39};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_PHONE_APP + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE;NETFX_CORE;WINDOWS_PHONE_APP + prompt + 4 + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_PHONE_APP + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE;WINDOWS_PHONE_APP + true + ;2008 + pdbonly + ARM + false + prompt + true + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_PHONE_APP + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE;WINDOWS_PHONE_APP + true + ;2008 + pdbonly + x86 + false + prompt + true + + + + App.xaml + + + + + + + + HubPage.xaml + + + ItemPage.xaml + + + + SectionPage.xaml + + + + + Designer + + + + + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + + + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + {64eb7726-8fd2-4764-94e7-347977e1feee} + CSharpAnalytics.WindowsPhone81 + + + + 12.0 + + + WindowsPhoneApp + + + + \ No newline at end of file diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/NavigationHelper.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/NavigationHelper.cs new file mode 100644 index 0000000..461cbd8 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/NavigationHelper.cs @@ -0,0 +1,436 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; +using Windows.System; +using Windows.UI.Core; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Navigation; + +namespace CSharpAnalytics.Sample.WindowsPhone81.Common +{ + ///

+ /// NavigationHelper aids in navigation between pages. It provides commands used to + /// navigate back and forward as well as registers for standard mouse and keyboard + /// shortcuts used to go back and forward in Windows and the hardware back button in + /// Windows Phone. In addition it integrates SuspensionManger to handle process lifetime + /// management and state management when navigating between pages. + /// + /// + /// To make use of NavigationHelper, follow these two steps or + /// start with a BasicPage or any other Page item template other than BlankPage. + /// + /// 1) Create an instance of the NavigationHelper somewhere such as in the + /// constructor for the page and register a callback for the LoadState and + /// SaveState events. + /// + /// public MyPage() + /// { + /// this.InitializeComponent(); + /// var navigationHelper = new NavigationHelper(this); + /// this.navigationHelper.LoadState += navigationHelper_LoadState; + /// this.navigationHelper.SaveState += navigationHelper_SaveState; + /// } + /// + /// private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e) + /// { } + /// private async void navigationHelper_SaveState(object sender, LoadStateEventArgs e) + /// { } + /// + /// + /// 2) Register the page to call into the NavigationHelper whenever the page participates + /// in navigation by overriding the + /// and events. + /// + /// protected override void OnNavigatedTo(NavigationEventArgs e) + /// { + /// navigationHelper.OnNavigatedTo(e); + /// } + /// + /// protected override void OnNavigatedFrom(NavigationEventArgs e) + /// { + /// navigationHelper.OnNavigatedFrom(e); + /// } + /// + /// + [Windows.Foundation.Metadata.WebHostHidden] + public class NavigationHelper : DependencyObject + { + private Page Page { get; set; } + private Frame Frame { get { return this.Page.Frame; } } + + /// + /// Initializes a new instance of the class. + /// + /// A reference to the current page used for navigation. + /// This reference allows for frame manipulation and to ensure that keyboard + /// navigation requests only occur when the page is occupying the entire window. + public NavigationHelper(Page page) + { + this.Page = page; + + // When this page is part of the visual tree make two changes: + // 1) Map application view state to visual state for the page + // 2) Handle hardware navigation requests + this.Page.Loaded += (sender, e) => + { +#if WINDOWS_PHONE_APP + Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; +#else + // Keyboard and mouse navigation only apply when occupying the entire window + if (this.Page.ActualHeight == Window.Current.Bounds.Height && + this.Page.ActualWidth == Window.Current.Bounds.Width) + { + // Listen to the window directly so focus isn't required + Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated += + CoreDispatcher_AcceleratorKeyActivated; + Window.Current.CoreWindow.PointerPressed += + this.CoreWindow_PointerPressed; + } +#endif + }; + + // Undo the same changes when the page is no longer visible + this.Page.Unloaded += (sender, e) => + { +#if WINDOWS_PHONE_APP + Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed; +#else + Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated -= + CoreDispatcher_AcceleratorKeyActivated; + Window.Current.CoreWindow.PointerPressed -= + this.CoreWindow_PointerPressed; +#endif + }; + } + + #region Navigation support + + RelayCommand _goBackCommand; + RelayCommand _goForwardCommand; + + /// + /// used to bind to the back Button's Command property + /// for navigating to the most recent item in back navigation history, if a Frame + /// manages its own navigation history. + /// + /// The is set up to use the virtual method + /// as the Execute Action and for CanExecute. + /// + public RelayCommand GoBackCommand + { + get + { + if (_goBackCommand == null) + { + _goBackCommand = new RelayCommand( + () => this.GoBack(), + () => this.CanGoBack()); + } + return _goBackCommand; + } + set + { + _goBackCommand = value; + } + } + /// + /// used for navigating to the most recent item in + /// the forward navigation history, if a Frame manages its own navigation history. + /// + /// The is set up to use the virtual method + /// as the Execute Action and for CanExecute. + /// + public RelayCommand GoForwardCommand + { + get + { + if (_goForwardCommand == null) + { + _goForwardCommand = new RelayCommand( + () => this.GoForward(), + () => this.CanGoForward()); + } + return _goForwardCommand; + } + } + + /// + /// Virtual method used by the property + /// to determine if the can go back. + /// + /// + /// true if the has at least one entry + /// in the back navigation history. + /// + public virtual bool CanGoBack() + { + return this.Frame != null && this.Frame.CanGoBack; + } + /// + /// Virtual method used by the property + /// to determine if the can go forward. + /// + /// + /// true if the has at least one entry + /// in the forward navigation history. + /// + public virtual bool CanGoForward() + { + return this.Frame != null && this.Frame.CanGoForward; + } + + /// + /// Virtual method used by the property + /// to invoke the method. + /// + public virtual void GoBack() + { + if (this.Frame != null && this.Frame.CanGoBack) this.Frame.GoBack(); + } + /// + /// Virtual method used by the property + /// to invoke the method. + /// + public virtual void GoForward() + { + if (this.Frame != null && this.Frame.CanGoForward) this.Frame.GoForward(); + } + +#if WINDOWS_PHONE_APP + /// + /// Invoked when the hardware back button is pressed. For Windows Phone only. + /// + /// Instance that triggered the event. + /// Event data describing the conditions that led to the event. + private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e) + { + if (this.GoBackCommand.CanExecute(null)) + { + e.Handled = true; + this.GoBackCommand.Execute(null); + } + } +#else + /// + /// Invoked on every keystroke, including system keys such as Alt key combinations, when + /// this page is active and occupies the entire window. Used to detect keyboard navigation + /// between pages even when the page itself doesn't have focus. + /// + /// Instance that triggered the event. + /// Event data describing the conditions that led to the event. + private void CoreDispatcher_AcceleratorKeyActivated(CoreDispatcher sender, + AcceleratorKeyEventArgs e) + { + var virtualKey = e.VirtualKey; + + // Only investigate further when Left, Right, or the dedicated Previous or Next keys + // are pressed + if ((e.EventType == CoreAcceleratorKeyEventType.SystemKeyDown || + e.EventType == CoreAcceleratorKeyEventType.KeyDown) && + (virtualKey == VirtualKey.Left || virtualKey == VirtualKey.Right || + (int)virtualKey == 166 || (int)virtualKey == 167)) + { + var coreWindow = Window.Current.CoreWindow; + var downState = CoreVirtualKeyStates.Down; + bool menuKey = (coreWindow.GetKeyState(VirtualKey.Menu) & downState) == downState; + bool controlKey = (coreWindow.GetKeyState(VirtualKey.Control) & downState) == downState; + bool shiftKey = (coreWindow.GetKeyState(VirtualKey.Shift) & downState) == downState; + bool noModifiers = !menuKey && !controlKey && !shiftKey; + bool onlyAlt = menuKey && !controlKey && !shiftKey; + + if (((int)virtualKey == 166 && noModifiers) || + (virtualKey == VirtualKey.Left && onlyAlt)) + { + // When the previous key or Alt+Left are pressed navigate back + e.Handled = true; + this.GoBackCommand.Execute(null); + } + else if (((int)virtualKey == 167 && noModifiers) || + (virtualKey == VirtualKey.Right && onlyAlt)) + { + // When the next key or Alt+Right are pressed navigate forward + e.Handled = true; + this.GoForwardCommand.Execute(null); + } + } + } + + /// + /// Invoked on every mouse click, touch screen tap, or equivalent interaction when this + /// page is active and occupies the entire window. Used to detect browser-style next and + /// previous mouse button clicks to navigate between pages. + /// + /// Instance that triggered the event. + /// Event data describing the conditions that led to the event. + private void CoreWindow_PointerPressed(CoreWindow sender, + PointerEventArgs e) + { + var properties = e.CurrentPoint.Properties; + + // Ignore button chords with the left, right, and middle buttons + if (properties.IsLeftButtonPressed || properties.IsRightButtonPressed || + properties.IsMiddleButtonPressed) return; + + // If back or foward are pressed (but not both) navigate appropriately + bool backPressed = properties.IsXButton1Pressed; + bool forwardPressed = properties.IsXButton2Pressed; + if (backPressed ^ forwardPressed) + { + e.Handled = true; + if (backPressed) this.GoBackCommand.Execute(null); + if (forwardPressed) this.GoForwardCommand.Execute(null); + } + } +#endif + + #endregion + + #region Process lifetime management + + private String _pageKey; + + /// + /// Register this event on the current page to populate the page + /// with content passed during navigation as well as any saved + /// state provided when recreating a page from a prior session. + /// + public event LoadStateEventHandler LoadState; + /// + /// Register this event on the current page to preserve + /// state associated with the current page in case the + /// application is suspended or the page is discarded from + /// the navigaqtion cache. + /// + public event SaveStateEventHandler SaveState; + + /// + /// Invoked when this page is about to be displayed in a Frame. + /// This method calls , where all page specific + /// navigation and process lifetime management logic should be placed. + /// + /// Event data that describes how this page was reached. The Parameter + /// property provides the group to be displayed. + public void OnNavigatedTo(NavigationEventArgs e) + { + var frameState = SuspensionManager.SessionStateForFrame(this.Frame); + this._pageKey = "Page-" + this.Frame.BackStackDepth; + + if (e.NavigationMode == NavigationMode.New) + { + // Clear existing state for forward navigation when adding a new page to the + // navigation stack + var nextPageKey = this._pageKey; + int nextPageIndex = this.Frame.BackStackDepth; + while (frameState.Remove(nextPageKey)) + { + nextPageIndex++; + nextPageKey = "Page-" + nextPageIndex; + } + + // Pass the navigation parameter to the new page + if (this.LoadState != null) + { + this.LoadState(this, new LoadStateEventArgs(e.Parameter, null)); + } + } + else + { + // Pass the navigation parameter and preserved page state to the page, using + // the same strategy for loading suspended state and recreating pages discarded + // from cache + if (this.LoadState != null) + { + this.LoadState(this, new LoadStateEventArgs(e.Parameter, (Dictionary)frameState[this._pageKey])); + } + } + } + + /// + /// Invoked when this page will no longer be displayed in a Frame. + /// This method calls , where all page specific + /// navigation and process lifetime management logic should be placed. + /// + /// Event data that describes how this page was reached. The Parameter + /// property provides the group to be displayed. + public void OnNavigatedFrom(NavigationEventArgs e) + { + var frameState = SuspensionManager.SessionStateForFrame(this.Frame); + var pageState = new Dictionary(); + if (this.SaveState != null) + { + this.SaveState(this, new SaveStateEventArgs(pageState)); + } + frameState[_pageKey] = pageState; + } + + #endregion + } + + /// + /// Represents the method that will handle the event + /// + public delegate void LoadStateEventHandler(object sender, LoadStateEventArgs e); + /// + /// Represents the method that will handle the event + /// + public delegate void SaveStateEventHandler(object sender, SaveStateEventArgs e); + + /// + /// Class used to hold the event data required when a page attempts to load state. + /// + public class LoadStateEventArgs : EventArgs + { + /// + /// The parameter value passed to + /// when this page was initially requested. + /// + public Object NavigationParameter { get; private set; } + /// + /// A dictionary of state preserved by this page during an earlier + /// session. This will be null the first time a page is visited. + /// + public Dictionary PageState { get; private set; } + + /// + /// Initializes a new instance of the class. + /// + /// + /// The parameter value passed to + /// when this page was initially requested. + /// + /// + /// A dictionary of state preserved by this page during an earlier + /// session. This will be null the first time a page is visited. + /// + public LoadStateEventArgs(Object navigationParameter, Dictionary pageState) + : base() + { + this.NavigationParameter = navigationParameter; + this.PageState = pageState; + } + } + /// + /// Class used to hold the event data required when a page attempts to save state. + /// + public class SaveStateEventArgs : EventArgs + { + /// + /// An empty dictionary to be populated with serializable state. + /// + public Dictionary PageState { get; private set; } + + /// + /// Initializes a new instance of the class. + /// + /// An empty dictionary to be populated with serializable state. + public SaveStateEventArgs(Dictionary pageState) + : base() + { + this.PageState = pageState; + } + } +} diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/ObservableDictionary.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/ObservableDictionary.cs new file mode 100644 index 0000000..48f50d0 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/ObservableDictionary.cs @@ -0,0 +1,149 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Windows.Foundation.Collections; + +namespace CSharpAnalytics.Sample.WindowsPhone81.Common +{ + /// + /// Implementation of IObservableMap that supports reentrancy for use as a default view + /// model. + /// + public class ObservableDictionary : IObservableMap + { + private class ObservableDictionaryChangedEventArgs : IMapChangedEventArgs + { + public ObservableDictionaryChangedEventArgs(CollectionChange change, string key) + { + this.CollectionChange = change; + this.Key = key; + } + + public CollectionChange CollectionChange { get; private set; } + public string Key { get; private set; } + } + + private Dictionary _dictionary = new Dictionary(); + public event MapChangedEventHandler MapChanged; + + private void InvokeMapChanged(CollectionChange change, string key) + { + var eventHandler = MapChanged; + if (eventHandler != null) + { + eventHandler(this, new ObservableDictionaryChangedEventArgs(change, key)); + } + } + + public void Add(string key, object value) + { + this._dictionary.Add(key, value); + this.InvokeMapChanged(CollectionChange.ItemInserted, key); + } + + public void Add(KeyValuePair item) + { + this.Add(item.Key, item.Value); + } + + public bool Remove(string key) + { + if (this._dictionary.Remove(key)) + { + this.InvokeMapChanged(CollectionChange.ItemRemoved, key); + return true; + } + return false; + } + + public bool Remove(KeyValuePair item) + { + object currentValue; + if (this._dictionary.TryGetValue(item.Key, out currentValue) && + Object.Equals(item.Value, currentValue) && this._dictionary.Remove(item.Key)) + { + this.InvokeMapChanged(CollectionChange.ItemRemoved, item.Key); + return true; + } + return false; + } + + public object this[string key] + { + get + { + return this._dictionary[key]; + } + set + { + this._dictionary[key] = value; + this.InvokeMapChanged(CollectionChange.ItemChanged, key); + } + } + + public void Clear() + { + var priorKeys = this._dictionary.Keys.ToArray(); + this._dictionary.Clear(); + foreach (var key in priorKeys) + { + this.InvokeMapChanged(CollectionChange.ItemRemoved, key); + } + } + + public ICollection Keys + { + get { return this._dictionary.Keys; } + } + + public bool ContainsKey(string key) + { + return this._dictionary.ContainsKey(key); + } + + public bool TryGetValue(string key, out object value) + { + return this._dictionary.TryGetValue(key, out value); + } + + public ICollection Values + { + get { return this._dictionary.Values; } + } + + public bool Contains(KeyValuePair item) + { + return this._dictionary.Contains(item); + } + + public int Count + { + get { return this._dictionary.Count; } + } + + public bool IsReadOnly + { + get { return false; } + } + + public IEnumerator> GetEnumerator() + { + return this._dictionary.GetEnumerator(); + } + + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return this._dictionary.GetEnumerator(); + } + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + int arraySize = array.Length; + foreach (var pair in this._dictionary) + { + if (arrayIndex >= arraySize) break; + array[arrayIndex++] = pair; + } + } + } +} diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/ReadMe.txt b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/ReadMe.txt new file mode 100644 index 0000000..b42108c --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/ReadMe.txt @@ -0,0 +1,7 @@ +The Common directory contains classes that simplify application development. + +Classes in the Common directory form part of your project and may be further enhanced to meet your +needs. Care should be taken when altering existing methods and properties as incompatible changes +will require corresponding changes to code included in a variety of Visual Studio templates. For +example, additional pages added to your project are written assuming that the original methods and +properties in Common classes are still present and that the names of the types have not changed. \ No newline at end of file diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/RelayCommand.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/RelayCommand.cs new file mode 100644 index 0000000..fd2a9e0 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/RelayCommand.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace CSharpAnalytics.Sample.WindowsPhone81.Common +{ + /// + /// A command whose sole purpose is to relay its functionality + /// to other objects by invoking delegates. + /// The default return value for the CanExecute method is 'true'. + /// needs to be called whenever + /// is expected to return a different value. + /// + public class RelayCommand : ICommand + { + private readonly Action _execute; + private readonly Func _canExecute; + + /// + /// Raised when RaiseCanExecuteChanged is called. + /// + public event EventHandler CanExecuteChanged; + + /// + /// Creates a new command that can always execute. + /// + /// The execution logic. + public RelayCommand(Action execute) + : this(execute, null) + { + } + + /// + /// Creates a new command. + /// + /// The execution logic. + /// The execution status logic. + public RelayCommand(Action execute, Func canExecute) + { + if (execute == null) + throw new ArgumentNullException("execute"); + _execute = execute; + _canExecute = canExecute; + } + + /// + /// Determines whether this can execute in its current state. + /// + /// + /// Data used by the command. If the command does not require data to be passed, this object can be set to null. + /// + /// true if this command can be executed; otherwise, false. + public bool CanExecute(object parameter) + { + return _canExecute == null ? true : _canExecute(); + } + + /// + /// Executes the on the current command target. + /// + /// + /// Data used by the command. If the command does not require data to be passed, this object can be set to null. + /// + public void Execute(object parameter) + { + _execute(); + } + + /// + /// Method used to raise the event + /// to indicate that the return value of the + /// method has changed. + /// + public void RaiseCanExecuteChanged() + { + var handler = CanExecuteChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + } +} \ No newline at end of file diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/SuspensionManager.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/SuspensionManager.cs new file mode 100644 index 0000000..a228cee --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Common/SuspensionManager.cs @@ -0,0 +1,269 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using Windows.ApplicationModel; +using Windows.Storage; +using Windows.Storage.Streams; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; + +namespace CSharpAnalytics.Sample.WindowsPhone81.Common +{ + /// + /// SuspensionManager captures global session state to simplify process lifetime management + /// for an application. Note that session state will be automatically cleared under a variety + /// of conditions and should only be used to store information that would be convenient to + /// carry across sessions, but that should be discarded when an application crashes or is + /// upgraded. + /// + internal sealed class SuspensionManager + { + private static Dictionary _sessionState = new Dictionary(); + private static List _knownTypes = new List(); + private const string sessionStateFilename = "_sessionState.xml"; + + /// + /// Provides access to global session state for the current session. This state is + /// serialized by and restored by + /// , so values must be serializable by + /// and should be as compact as possible. Strings + /// and other self-contained data types are strongly recommended. + /// + public static Dictionary SessionState + { + get { return _sessionState; } + } + + /// + /// List of custom types provided to the when + /// reading and writing session state. Initially empty, additional types may be + /// added to customize the serialization process. + /// + public static List KnownTypes + { + get { return _knownTypes; } + } + + /// + /// Save the current . Any instances + /// registered with will also preserve their current + /// navigation stack, which in turn gives their active an opportunity + /// to save its state. + /// + /// An asynchronous task that reflects when session state has been saved. + public static async Task SaveAsync() + { + try + { + // Save the navigation state for all registered frames + foreach (var weakFrameReference in _registeredFrames) + { + Frame frame; + if (weakFrameReference.TryGetTarget(out frame)) + { + SaveFrameNavigationState(frame); + } + } + + // Serialize the session state synchronously to avoid asynchronous access to shared + // state + MemoryStream sessionData = new MemoryStream(); + DataContractSerializer serializer = new DataContractSerializer(typeof(Dictionary), _knownTypes); + serializer.WriteObject(sessionData, _sessionState); + + // Get an output stream for the SessionState file and write the state asynchronously + StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(sessionStateFilename, CreationCollisionOption.ReplaceExisting); + using (Stream fileStream = await file.OpenStreamForWriteAsync()) + { + sessionData.Seek(0, SeekOrigin.Begin); + await sessionData.CopyToAsync(fileStream); + } + } + catch (Exception e) + { + throw new SuspensionManagerException(e); + } + } + + /// + /// Restores previously saved . Any instances + /// registered with will also restore their prior navigation + /// state, which in turn gives their active an opportunity restore its + /// state. + /// + /// An optional key that identifies the type of session. + /// This can be used to distinguish between multiple application launch scenarios. + /// An asynchronous task that reflects when session state has been read. The + /// content of should not be relied upon until this task + /// completes. + public static async Task RestoreAsync(String sessionBaseKey = null) + { + _sessionState = new Dictionary(); + + try + { + // Get the input stream for the SessionState file + StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync(sessionStateFilename); + using (IInputStream inStream = await file.OpenSequentialReadAsync()) + { + // Deserialize the Session State + DataContractSerializer serializer = new DataContractSerializer(typeof(Dictionary), _knownTypes); + _sessionState = (Dictionary)serializer.ReadObject(inStream.AsStreamForRead()); + } + + // Restore any registered frames to their saved state + foreach (var weakFrameReference in _registeredFrames) + { + Frame frame; + if (weakFrameReference.TryGetTarget(out frame) && (string)frame.GetValue(FrameSessionBaseKeyProperty) == sessionBaseKey) + { + frame.ClearValue(FrameSessionStateProperty); + RestoreFrameNavigationState(frame); + } + } + } + catch (Exception e) + { + throw new SuspensionManagerException(e); + } + } + + private static DependencyProperty FrameSessionStateKeyProperty = + DependencyProperty.RegisterAttached("_FrameSessionStateKey", typeof(String), typeof(SuspensionManager), null); + private static DependencyProperty FrameSessionBaseKeyProperty = + DependencyProperty.RegisterAttached("_FrameSessionBaseKeyParams", typeof(String), typeof(SuspensionManager), null); + private static DependencyProperty FrameSessionStateProperty = + DependencyProperty.RegisterAttached("_FrameSessionState", typeof(Dictionary), typeof(SuspensionManager), null); + private static List> _registeredFrames = new List>(); + + /// + /// Registers a instance to allow its navigation history to be saved to + /// and restored from . Frames should be registered once + /// immediately after creation if they will participate in session state management. Upon + /// registration if state has already been restored for the specified key + /// the navigation history will immediately be restored. Subsequent invocations of + /// will also restore navigation history. + /// + /// An instance whose navigation history should be managed by + /// + /// A unique key into used to + /// store navigation-related information. + /// An optional key that identifies the type of session. + /// This can be used to distinguish between multiple application launch scenarios. + public static void RegisterFrame(Frame frame, String sessionStateKey, String sessionBaseKey = null) + { + if (frame.GetValue(FrameSessionStateKeyProperty) != null) + { + throw new InvalidOperationException("Frames can only be registered to one session state key"); + } + + if (frame.GetValue(FrameSessionStateProperty) != null) + { + throw new InvalidOperationException("Frames must be either be registered before accessing frame session state, or not registered at all"); + } + + if (!string.IsNullOrEmpty(sessionBaseKey)) + { + frame.SetValue(FrameSessionBaseKeyProperty, sessionBaseKey); + sessionStateKey = sessionBaseKey + "_" + sessionStateKey; + } + + // Use a dependency property to associate the session key with a frame, and keep a list of frames whose + // navigation state should be managed + frame.SetValue(FrameSessionStateKeyProperty, sessionStateKey); + _registeredFrames.Add(new WeakReference(frame)); + + // Check to see if navigation state can be restored + RestoreFrameNavigationState(frame); + } + + /// + /// Disassociates a previously registered by + /// from . Any navigation state previously captured will be + /// removed. + /// + /// An instance whose navigation history should no longer be + /// managed. + public static void UnregisterFrame(Frame frame) + { + // Remove session state and remove the frame from the list of frames whose navigation + // state will be saved (along with any weak references that are no longer reachable) + SessionState.Remove((String)frame.GetValue(FrameSessionStateKeyProperty)); + _registeredFrames.RemoveAll((weakFrameReference) => + { + Frame testFrame; + return !weakFrameReference.TryGetTarget(out testFrame) || testFrame == frame; + }); + } + + /// + /// Provides storage for session state associated with the specified . + /// Frames that have been previously registered with have + /// their session state saved and restored automatically as a part of the global + /// . Frames that are not registered have transient state + /// that can still be useful when restoring pages that have been discarded from the + /// navigation cache. + /// + /// Apps may choose to rely on to manage + /// page-specific state instead of working with frame session state directly. + /// The instance for which session state is desired. + /// A collection of state subject to the same serialization mechanism as + /// . + public static Dictionary SessionStateForFrame(Frame frame) + { + var frameState = (Dictionary)frame.GetValue(FrameSessionStateProperty); + + if (frameState == null) + { + var frameSessionKey = (String)frame.GetValue(FrameSessionStateKeyProperty); + if (frameSessionKey != null) + { + // Registered frames reflect the corresponding session state + if (!_sessionState.ContainsKey(frameSessionKey)) + { + _sessionState[frameSessionKey] = new Dictionary(); + } + frameState = (Dictionary)_sessionState[frameSessionKey]; + } + else + { + // Frames that aren't registered have transient state + frameState = new Dictionary(); + } + frame.SetValue(FrameSessionStateProperty, frameState); + } + return frameState; + } + + private static void RestoreFrameNavigationState(Frame frame) + { + var frameState = SessionStateForFrame(frame); + if (frameState.ContainsKey("Navigation")) + { + frame.SetNavigationState((String)frameState["Navigation"]); + } + } + + private static void SaveFrameNavigationState(Frame frame) + { + var frameState = SessionStateForFrame(frame); + frameState["Navigation"] = frame.GetNavigationState(); + } + } + public class SuspensionManagerException : Exception + { + public SuspensionManagerException() + { + } + + public SuspensionManagerException(Exception e) + : base("SuspensionManager failed", e) + { + + } + } +} diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/DataModel/SampleData.json b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/DataModel/SampleData.json new file mode 100644 index 0000000..673f22e --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/DataModel/SampleData.json @@ -0,0 +1,327 @@ +{"Groups":[ + { + "UniqueId": "Group-1", + "Title": "Group Title: 1", + "Subtitle": "Group subtitle: 1", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante", + "Items": + [ + { + "UniqueId": "Group-1-Item-1", + "Title": "Item Title: 1", + "Subtitle": "Item Subtitle: 1", + "ImagePath": "Assets/LightGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-1-Item-2", + "Title": "Item Title: 2", + "Subtitle": "Item Subtitle: 2", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-1-Item-3", + "Title": "Item Title: 3", + "Subtitle": "Item Subtitle: 3", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-1-Item-4", + "Title": "Item Title: 4", + "Subtitle": "Item Subtitle: 4", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-1-Item-5", + "Title": "Item Title: 5", + "Subtitle": "Item Subtitle: 5", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + } + ] + }, + { + "UniqueId": "Group-2", + "Title": "Group Title: 2", + "Subtitle": "Group subtitle: 2", + "ImagePath": "Assets/LightGray.png", + "Description" : "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante", + "Items": + [ + { + "UniqueId": "Group-2-Item-1", + "Title": "Item Title: 1", + "Subtitle": "Item Subtitle: 1", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-2-Item-2", + "Title": "Item Title: 2", + "Subtitle": "Item Subtitle: 2", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-2-Item-3", + "Title": "Item Title: 3", + "Subtitle": "Item Subtitle: 3", + "ImagePath": "Assets/LightGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + } + ] + }, + { + "UniqueId": "Group-3", + "Title": "Group Title: 3", + "Subtitle": "Group subtitle: 3", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante", + "Items": + [ + { + "UniqueId": "Group-3-Item-1", + "Title": "Item Title: 1", + "Subtitle": "Item Subtitle: 1", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-3-Item-2", + "Title": "Item Title: 2", + "Subtitle": "Item Subtitle: 2", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-3-Item-3", + "Title": "Item Title: 3", + "Subtitle": "Item Subtitle: 3", + "ImagePath": "Assets/LightGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-3-Item-4", + "Title": "Item Title: 4", + "Subtitle": "Item Subtitle: 4", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-3-Item-5", + "Title": "Item Title: 5", + "Subtitle": "Item Subtitle: 5", + "ImagePath": "Assets/LightGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-3-Item-6", + "Title": "Item Title: 6", + "Subtitle": "Item Subtitle: 6", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-3-Item-7", + "Title": "Item Title: 7", + "Subtitle": "Item Subtitle: 7", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + } + ] + }, + { + "UniqueId": "Group-4", + "Title": "Group Title: 4", + "Subtitle": "Group subtitle: 4", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante", + "Items": + [ + { + "UniqueId": "Group-4-Item-1", + "Title": "Item Title: 1", + "Subtitle": "Item Subtitle: 1", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-4-Item-2", + "Title": "Item Title: 2", + "Subtitle": "Item Subtitle: 2", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-4-Item-3", + "Title": "Item Title: 3", + "Subtitle": "Item Subtitle: 3", + "ImagePath": "Assets/LightGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-4-Item-4", + "Title": "Item Title: 4", + "Subtitle": "Item Subtitle: 4", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-4-Item-5", + "Title": "Item Title: 5", + "Subtitle": "Item Subtitle: 5", + "ImagePath": "Assets/LightGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-4-Item-6", + "Title": "Item Title: 6", + "Subtitle": "Item Subtitle: 6", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + } + ] + }, + { + "UniqueId": "Group-5", + "Title": "Group Title: 5", + "Subtitle": "Group subtitle: 5", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante", + "Items": + [ + { + "UniqueId": "Group-5-Item-1", + "Title": "Item Title: 1", + "Subtitle": "Item Subtitle: 1", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-5-Item-2", + "Title": "Item Title: 2", + "Subtitle": "Item Subtitle: 2", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-5-Item-3", + "Title": "Item Title: 3", + "Subtitle": "Item Subtitle: 3", + "ImagePath": "Assets/LightGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-5-Item-4", + "Title": "Item Title: 4", + "Subtitle": "Item Subtitle: 4", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + } + ] + }, + { + "UniqueId": "Group-6", + "Title": "Group Title: 6", + "Subtitle": "Group subtitle: 6", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante", + "Items": + [ + { + "UniqueId": "Group-6-Item-1", + "Title": "Item Title: 1", + "Subtitle": "Item Subtitle: 1", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-6-Item-2", + "Title": "Item Title: 2", + "Subtitle": "Item Subtitle: 2", + "ImagePath": "Assets/MediumGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-6-Item-3", + "Title": "Item Title: 3", + "Subtitle": "Item Subtitle: 3", + "ImagePath": "Assets/LightGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-6-Item-4", + "Title": "Item Title: 4", + "Subtitle": "Item Subtitle: 4", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-6-Item-5", + "Title": "Item Title: 5", + "Subtitle": "Item Subtitle: 5", + "ImagePath": "Assets/LightGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-6-Item-6", + "Title": "Item Title: 6", + "Subtitle": "Item Subtitle: 6", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-6-Item-7", + "Title": "Item Title: 7", + "Subtitle": "Item Subtitle: 7", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + }, + { + "UniqueId": "Group-6-Item-8", + "Title": "Item Title: 8", + "Subtitle": "Item Subtitle: 8", + "ImagePath": "Assets/DarkGray.png", + "Description" : "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + "Content" : "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat\n\nCurabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat" + } + ] + } +] +} \ No newline at end of file diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/DataModel/SampleDataSource.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/DataModel/SampleDataSource.cs new file mode 100644 index 0000000..6f2d86e --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/DataModel/SampleDataSource.cs @@ -0,0 +1,153 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Threading.Tasks; +using Windows.Data.Json; +using Windows.Storage; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Media.Imaging; + +// The data model defined by this file serves as a representative example of a strongly-typed +// model. The property names chosen coincide with data bindings in the standard item templates. +// +// Applications may use this model as a starting point and build on it, or discard it entirely and +// replace it with something appropriate to their needs. If using this model, you might improve app +// responsiveness by initiating the data loading task in the code behind for App.xaml when the app +// is first launched. + +namespace CSharpAnalytics.Sample.WindowsPhone81.Data +{ + /// + /// Generic item data model. + /// + public class SampleDataItem + { + public SampleDataItem(String uniqueId, String title, String subtitle, String imagePath, String description, String content) + { + this.UniqueId = uniqueId; + this.Title = title; + this.Subtitle = subtitle; + this.Description = description; + this.ImagePath = imagePath; + this.Content = content; + } + + public string UniqueId { get; private set; } + public string Title { get; private set; } + public string Subtitle { get; private set; } + public string Description { get; private set; } + public string ImagePath { get; private set; } + public string Content { get; private set; } + + public override string ToString() + { + return this.Title; + } + } + + /// + /// Generic group data model. + /// + public class SampleDataGroup + { + public SampleDataGroup(String uniqueId, String title, String subtitle, String imagePath, String description) + { + this.UniqueId = uniqueId; + this.Title = title; + this.Subtitle = subtitle; + this.Description = description; + this.ImagePath = imagePath; + this.Items = new ObservableCollection(); + } + + public string UniqueId { get; private set; } + public string Title { get; private set; } + public string Subtitle { get; private set; } + public string Description { get; private set; } + public string ImagePath { get; private set; } + public ObservableCollection Items { get; private set; } + + public override string ToString() + { + return this.Title; + } + } + + /// + /// Creates a collection of groups and items with content read from a static json file. + /// + /// SampleDataSource initializes with data read from a static json file included in the + /// project. This provides sample data at both design-time and run-time. + /// + public sealed class SampleDataSource + { + private static SampleDataSource _sampleDataSource = new SampleDataSource(); + + private ObservableCollection _groups = new ObservableCollection(); + public ObservableCollection Groups + { + get { return this._groups; } + } + + public static async Task> GetGroupsAsync() + { + await _sampleDataSource.GetSampleDataAsync(); + + return _sampleDataSource.Groups; + } + + public static async Task GetGroupAsync(string uniqueId) + { + await _sampleDataSource.GetSampleDataAsync(); + // Simple linear search is acceptable for small data sets + var matches = _sampleDataSource.Groups.Where((group) => group.UniqueId.Equals(uniqueId)); + if (matches.Count() == 1) return matches.First(); + return null; + } + + public static async Task GetItemAsync(string uniqueId) + { + await _sampleDataSource.GetSampleDataAsync(); + // Simple linear search is acceptable for small data sets + var matches = _sampleDataSource.Groups.SelectMany(group => group.Items).Where((item) => item.UniqueId.Equals(uniqueId)); + if (matches.Count() == 1) return matches.First(); + return null; + } + + private async Task GetSampleDataAsync() + { + if (this._groups.Count != 0) + return; + + Uri dataUri = new Uri("ms-appx:///DataModel/SampleData.json"); + + StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri); + string jsonText = await FileIO.ReadTextAsync(file); + JsonObject jsonObject = JsonObject.Parse(jsonText); + JsonArray jsonArray = jsonObject["Groups"].GetArray(); + + foreach (JsonValue groupValue in jsonArray) + { + JsonObject groupObject = groupValue.GetObject(); + SampleDataGroup group = new SampleDataGroup(groupObject["UniqueId"].GetString(), + groupObject["Title"].GetString(), + groupObject["Subtitle"].GetString(), + groupObject["ImagePath"].GetString(), + groupObject["Description"].GetString()); + + foreach (JsonValue itemValue in groupObject["Items"].GetArray()) + { + JsonObject itemObject = itemValue.GetObject(); + group.Items.Add(new SampleDataItem(itemObject["UniqueId"].GetString(), + itemObject["Title"].GetString(), + itemObject["Subtitle"].GetString(), + itemObject["ImagePath"].GetString(), + itemObject["Description"].GetString(), + itemObject["Content"].GetString())); + } + this.Groups.Add(group); + } + } + } +} \ No newline at end of file diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/HubPage.xaml b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/HubPage.xaml new file mode 100644 index 0000000..b53b670 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/HubPage.xaml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/HubPage.xaml.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/HubPage.xaml.cs new file mode 100644 index 0000000..4e88dd2 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/HubPage.xaml.cs @@ -0,0 +1,150 @@ +using CSharpAnalytics.Sample.WindowsPhone81.Common; +using CSharpAnalytics.Sample.WindowsPhone81.Data; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel.Resources; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.Graphics.Display; +using Windows.UI.Core; +using Windows.UI.ViewManagement; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Media.Imaging; +using Windows.UI.Xaml.Navigation; + +// The Hub Application template is documented at http://go.microsoft.com/fwlink/?LinkId=391641 + +namespace CSharpAnalytics.Sample.WindowsPhone81 +{ + /// + /// A page that displays a grouped collection of items. + /// + public sealed partial class HubPage : Page + { + private readonly NavigationHelper navigationHelper; + private readonly ObservableDictionary defaultViewModel = new ObservableDictionary(); + private readonly ResourceLoader resourceLoader = ResourceLoader.GetForCurrentView("Resources"); + + public HubPage() + { + this.InitializeComponent(); + + // Hub is only supported in Portrait orientation + DisplayInformation.AutoRotationPreferences = DisplayOrientations.Portrait; + + this.NavigationCacheMode = NavigationCacheMode.Required; + + this.navigationHelper = new NavigationHelper(this); + this.navigationHelper.LoadState += this.NavigationHelper_LoadState; + this.navigationHelper.SaveState += this.NavigationHelper_SaveState; + } + + /// + /// Gets the associated with this . + /// + public NavigationHelper NavigationHelper + { + get { return this.navigationHelper; } + } + + /// + /// Gets the view model for this . + /// This can be changed to a strongly typed view model. + /// + public ObservableDictionary DefaultViewModel + { + get { return this.defaultViewModel; } + } + + /// + /// Populates the page with content passed during navigation. Any saved state is also + /// provided when recreating a page from a prior session. + /// + /// + /// The source of the event; typically + /// + /// Event data that provides both the navigation parameter passed to + /// when this page was initially requested and + /// a dictionary of state preserved by this page during an earlier + /// session. The state will be null the first time a page is visited. + private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) + { + // TODO: Create an appropriate data model for your problem domain to replace the sample data + var sampleDataGroups = await SampleDataSource.GetGroupsAsync(); + this.DefaultViewModel["Groups"] = sampleDataGroups; + } + + /// + /// Preserves state associated with this page in case the application is suspended or the + /// page is discarded from the navigation cache. Values must conform to the serialization + /// requirements of . + /// + /// The source of the event; typically + /// Event data that provides an empty dictionary to be populated with + /// serializable state. + private void NavigationHelper_SaveState(object sender, SaveStateEventArgs e) + { + // TODO: Save the unique state of the page here. + } + + /// + /// Shows the details of a clicked group in the . + /// + private void GroupSection_ItemClick(object sender, ItemClickEventArgs e) + { + var groupId = ((SampleDataGroup)e.ClickedItem).UniqueId; + if (!Frame.Navigate(typeof(SectionPage), groupId)) + { + throw new Exception(this.resourceLoader.GetString("NavigationFailedExceptionMessage")); + } + } + + /// + /// Shows the details of an item clicked on in the + /// + private void ItemView_ItemClick(object sender, ItemClickEventArgs e) + { + // Navigate to the appropriate destination page, configuring the new page + // by passing required information as a navigation parameter + var itemId = ((SampleDataItem)e.ClickedItem).UniqueId; + if (!Frame.Navigate(typeof(ItemPage), itemId)) + { + throw new Exception(this.resourceLoader.GetString("NavigationFailedExceptionMessage")); + } + } + + #region NavigationHelper registration + + /// + /// The methods provided in this section are simply used to allow + /// NavigationHelper to respond to the page's navigation methods. + /// + /// Page specific logic should be placed in event handlers for the + /// + /// and . + /// The navigation parameter is available in the LoadState method + /// in addition to page state preserved during an earlier session. + /// + /// + /// Event data that describes how this page was reached. + protected override void OnNavigatedTo(NavigationEventArgs e) + { + this.navigationHelper.OnNavigatedTo(e); + } + + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + this.navigationHelper.OnNavigatedFrom(e); + } + + #endregion + } +} diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/ItemPage.xaml b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/ItemPage.xaml new file mode 100644 index 0000000..c14ca64 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/ItemPage.xaml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/ItemPage.xaml.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/ItemPage.xaml.cs new file mode 100644 index 0000000..510445f --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/ItemPage.xaml.cs @@ -0,0 +1,116 @@ +using CSharpAnalytics.Sample.WindowsPhone81.Common; +using CSharpAnalytics.Sample.WindowsPhone81.Data; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using System.Windows.Input; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.Graphics.Display; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +// The Hub Application template is documented at http://go.microsoft.com/fwlink/?LinkID=391641 + +namespace CSharpAnalytics.Sample.WindowsPhone81 +{ + /// + /// A page that displays details for a single item within a group. + /// + public sealed partial class ItemPage : Page + { + private readonly NavigationHelper navigationHelper; + private readonly ObservableDictionary defaultViewModel = new ObservableDictionary(); + + public ItemPage() + { + this.InitializeComponent(); + + this.navigationHelper = new NavigationHelper(this); + this.navigationHelper.LoadState += this.NavigationHelper_LoadState; + this.navigationHelper.SaveState += this.NavigationHelper_SaveState; + } + + /// + /// Gets the associated with this . + /// + public NavigationHelper NavigationHelper + { + get { return this.navigationHelper; } + } + + /// + /// Gets the view model for this . + /// This can be changed to a strongly typed view model. + /// + public ObservableDictionary DefaultViewModel + { + get { return this.defaultViewModel; } + } + + /// + /// Populates the page with content passed during navigation. Any saved state is also + /// provided when recreating a page from a prior session. + /// + /// + /// The source of the event; typically . + /// + /// Event data that provides both the navigation parameter passed to + /// when this page was initially requested and + /// a dictionary of state preserved by this page during an earlier + /// session. The state will be null the first time a page is visited. + private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) + { + // TODO: Create an appropriate data model for your problem domain to replace the sample data + var item = await SampleDataSource.GetItemAsync((string)e.NavigationParameter); + this.DefaultViewModel["Item"] = item; + } + + /// + /// Preserves state associated with this page in case the application is suspended or the + /// page is discarded from the navigation cache. Values must conform to the serialization + /// requirements of . + /// + /// The source of the event; typically . + /// Event data that provides an empty dictionary to be populated with + /// serializable state. + private void NavigationHelper_SaveState(object sender, SaveStateEventArgs e) + { + // TODO: Save the unique state of the page here. + } + + #region NavigationHelper registration + + /// + /// The methods provided in this section are simply used to allow + /// NavigationHelper to respond to the page's navigation methods. + /// + /// Page specific logic should be placed in event handlers for the + /// + /// and . + /// The navigation parameter is available in the LoadState method + /// in addition to page state preserved during an earlier session. + /// + /// + /// Provides data for navigation methods and event + /// handlers that cannot cancel the navigation request. + protected override void OnNavigatedTo(NavigationEventArgs e) + { + this.navigationHelper.OnNavigatedTo(e); + } + + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + this.navigationHelper.OnNavigatedFrom(e); + } + + #endregion + } +} diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Package.appxmanifest b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Package.appxmanifest new file mode 100644 index 0000000..e798527 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Package.appxmanifest @@ -0,0 +1,29 @@ + + + + + + CSharpAnalytics.Sample.WindowsPhone81 + Attack Pattern + Assets\StoreLogo.png + + + 6.3.1 + 6.3.1 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Properties/AssemblyInfo.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..152071d --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CSharpAnalytics.Sample.WindowsPhone81")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CSharpAnalytics.Sample.WindowsPhone81")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: ComVisible(false)] \ No newline at end of file diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/SectionPage.xaml b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/SectionPage.xaml new file mode 100644 index 0000000..6a0fb1c --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/SectionPage.xaml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/SectionPage.xaml.cs b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/SectionPage.xaml.cs new file mode 100644 index 0000000..446b7b2 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/SectionPage.xaml.cs @@ -0,0 +1,127 @@ +using CSharpAnalytics.Sample.WindowsPhone81.Common; +using CSharpAnalytics.Sample.WindowsPhone81.Data; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel.Resources; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.Graphics.Display; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +// The Hub Application template is documented at http://go.microsoft.com/fwlink/?LinkId=391641 + +namespace CSharpAnalytics.Sample.WindowsPhone81 +{ + public sealed partial class SectionPage : Page + { + private readonly NavigationHelper navigationHelper; + private readonly ObservableDictionary defaultViewModel = new ObservableDictionary(); + + public SectionPage() + { + this.InitializeComponent(); + + this.navigationHelper = new NavigationHelper(this); + this.navigationHelper.LoadState += this.NavigationHelper_LoadState; + this.navigationHelper.SaveState += this.NavigationHelper_SaveState; + } + + /// + /// Gets the associated with this . + /// + public NavigationHelper NavigationHelper + { + get { return this.navigationHelper; } + } + + /// + /// Gets the view model for this . + /// This can be changed to a strongly typed view model. + /// + public ObservableDictionary DefaultViewModel + { + get { return this.defaultViewModel; } + } + + /// + /// Populates the page with content passed during navigation. Any saved state is also + /// provided when recreating a page from a prior session. + /// + /// + /// The source of the event; typically + /// + /// Event data that provides both the navigation parameter passed to + /// when this page was initially requested and + /// a dictionary of state preserved by this page during an earlier + /// session. The state will be null the first time a page is visited. + private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) + { + // TODO: Create an appropriate data model for your problem domain to replace the sample data. + var group = await SampleDataSource.GetGroupAsync((string)e.NavigationParameter); + this.DefaultViewModel["Group"] = group; + } + + /// + /// Preserves state associated with this page in case the application is suspended or the + /// page is discarded from the navigation cache. Values must conform to the serialization + /// requirements of . + /// + /// The source of the event; typically + /// Event data that provides an empty dictionary to be populated with + /// serializable state. + private void NavigationHelper_SaveState(object sender, SaveStateEventArgs e) + { + // TODO: Save the unique state of the page here. + } + + /// + /// Shows the details of an item clicked on in the + /// + /// The GridView displaying the item clicked. + /// Event data that describes the item clicked. + private void ItemView_ItemClick(object sender, ItemClickEventArgs e) + { + var itemId = ((SampleDataItem)e.ClickedItem).UniqueId; + if (!Frame.Navigate(typeof(ItemPage), itemId)) + { + var resourceLoader = ResourceLoader.GetForCurrentView("Resources"); + throw new Exception(resourceLoader.GetString("NavigationFailedExceptionMessage")); + } + } + + #region NavigationHelper registration + + /// + /// The methods provided in this section are simply used to allow + /// NavigationHelper to respond to the page's navigation methods. + /// + /// Page specific logic should be placed in event handlers for the + /// + /// and . + /// The navigation parameter is available in the LoadState method + /// in addition to page state preserved during an earlier session. + /// + /// + /// Event data that describes how this page was reached. + protected override void OnNavigatedTo(NavigationEventArgs e) + { + this.navigationHelper.OnNavigatedTo(e); + } + + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + this.navigationHelper.OnNavigatedFrom(e); + } + + #endregion + } +} diff --git a/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Strings/en-US/Resources.resw b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Strings/en-US/Resources.resw new file mode 100644 index 0000000..3c44017 --- /dev/null +++ b/Source/Samples/CSharpAnalytics.Sample.WindowsPhone81/Strings/en-US/Resources.resw @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + application name + + + application name + + + SECTION 1 + + + SECTION 2 + + + SECTION 3 + + + SECTION 4 + + + SECTION 5 + + + Navigation failed. + + \ No newline at end of file