diff --git a/BusinessMgrMobile.sln b/BusinessMgrMobile.sln new file mode 100644 index 0000000..6fd39b0 --- /dev/null +++ b/BusinessMgrMobile.sln @@ -0,0 +1,469 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.705 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessMgrMobile.Android", "BusinessMgrMobile\BusinessMgrMobile.Android\BusinessMgrMobile.Android.csproj", "{9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessMgrMobile.iOS", "BusinessMgrMobile\BusinessMgrMobile.iOS\BusinessMgrMobile.iOS.csproj", "{2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessMgrMobile.UWP", "BusinessMgrMobile\BusinessMgrMobile.UWP\BusinessMgrMobile.UWP.csproj", "{11104E8D-C345-4E49-B07B-94321E2FA80C}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "BusinessMgrMobile", "BusinessMgrMobile\BusinessMgrMobile\BusinessMgrMobile.shproj", "{27BF376E-0A5E-4C9A-A8E3-23944AB08F1D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaBusMgrMobCore", "SaBusMgrMobCore\SaBusMgrMobCore.csproj", "{0DE3A997-9167-48E7-BC74-66576324B7C5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsCoreMob", "..\..\Common-C#\Workspace\SacsCoreMob\SacsCoreMob.csproj", "{00CD1237-514F-4B70-BB14-65FC05E38222}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaBusMgrCore", "..\..\BusinessMgr-C#\Workspace\SaBusMgrCore\SaBusMgrCore.csproj", "{F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsAccounts", "..\..\Common-C#\Workspace\SacsAccounts\SacsAccounts.csproj", "{98BE2B3B-4475-4EB0-A06C-2673587679ED}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsCoreBase", "..\..\Common-C#\Workspace\SacsCoreBase\SacsCoreBase.csproj", "{9FB2542A-6BF7-47B9-8F45-D551F6A318C8}" +EndProject +Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + BusinessMgrMobile\BusinessMgrMobile\BusinessMgrMobile.projitems*{11104e8d-c345-4e49-b07b-94321e2fa80c}*SharedItemsImports = 4 + BusinessMgrMobile\BusinessMgrMobile\BusinessMgrMobile.projitems*{27bf376e-0a5e-4c9a-a8e3-23944ab08f1d}*SharedItemsImports = 13 + BusinessMgrMobile\BusinessMgrMobile\BusinessMgrMobile.projitems*{2b40facd-c521-4af6-9e5d-0fafaa04b096}*SharedItemsImports = 4 + BusinessMgrMobile\BusinessMgrMobile\BusinessMgrMobile.projitems*{9adaae7e-997e-4a99-8dc8-9b837982b7a5}*SharedItemsImports = 4 + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Ad-Hoc|Any CPU = Ad-Hoc|Any CPU + Ad-Hoc|ARM = Ad-Hoc|ARM + Ad-Hoc|iPhone = Ad-Hoc|iPhone + Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator + Ad-Hoc|x64 = Ad-Hoc|x64 + Ad-Hoc|x86 = Ad-Hoc|x86 + AppStore|Any CPU = AppStore|Any CPU + AppStore|ARM = AppStore|ARM + AppStore|iPhone = AppStore|iPhone + AppStore|iPhoneSimulator = AppStore|iPhoneSimulator + AppStore|x64 = AppStore|x64 + AppStore|x86 = AppStore|x86 + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|ARM.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|x64.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|x86.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|Any CPU.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|Any CPU.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|Any CPU.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|ARM.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|ARM.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|ARM.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|iPhone.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|iPhone.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|iPhone.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|x64.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|x64.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|x64.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|x86.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|x86.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.AppStore|x86.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|ARM.Build.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|ARM.Deploy.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|iPhone.Build.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|iPhone.Deploy.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|x64.ActiveCfg = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|x64.Build.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|x64.Deploy.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|x86.ActiveCfg = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|x86.Build.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Debug|x86.Deploy.0 = Debug|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|Any CPU.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|Any CPU.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|ARM.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|ARM.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|ARM.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|iPhone.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|iPhone.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|iPhone.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|x64.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|x64.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|x64.Deploy.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|x86.ActiveCfg = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|x86.Build.0 = Release|Any CPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5}.Release|x86.Deploy.0 = Release|Any CPU + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.AppStore|ARM.ActiveCfg = AppStore|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.AppStore|iPhone.ActiveCfg = AppStore|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.AppStore|iPhone.Build.0 = AppStore|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.AppStore|x64.ActiveCfg = AppStore|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.AppStore|x86.ActiveCfg = AppStore|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Debug|Any CPU.ActiveCfg = Debug|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Debug|ARM.ActiveCfg = Debug|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Debug|iPhone.ActiveCfg = Debug|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Debug|iPhone.Build.0 = Debug|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Debug|x64.ActiveCfg = Debug|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Debug|x86.ActiveCfg = Debug|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Release|Any CPU.ActiveCfg = Release|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Release|ARM.ActiveCfg = Release|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Release|iPhone.ActiveCfg = Release|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Release|iPhone.Build.0 = Release|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Release|x64.ActiveCfg = Release|iPhone + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096}.Release|x86.ActiveCfg = Release|iPhone + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|Any CPU.Build.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|ARM.ActiveCfg = Release|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|ARM.Build.0 = Release|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|ARM.Deploy.0 = Release|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|iPhone.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|iPhone.Build.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|iPhone.Deploy.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|x64.ActiveCfg = Release|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|x64.Build.0 = Release|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|x64.Deploy.0 = Release|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|x86.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|x86.Build.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Ad-Hoc|x86.Deploy.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|Any CPU.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|Any CPU.Build.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|Any CPU.Deploy.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|ARM.ActiveCfg = Release|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|ARM.Build.0 = Release|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|ARM.Deploy.0 = Release|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|iPhone.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|iPhone.Build.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|iPhone.Deploy.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|iPhoneSimulator.Build.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|x64.ActiveCfg = Release|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|x64.Build.0 = Release|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|x64.Deploy.0 = Release|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|x86.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|x86.Build.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.AppStore|x86.Deploy.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|Any CPU.ActiveCfg = Debug|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|ARM.ActiveCfg = Debug|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|ARM.Build.0 = Debug|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|ARM.Deploy.0 = Debug|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|iPhone.ActiveCfg = Debug|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|x64.ActiveCfg = Debug|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|x64.Build.0 = Debug|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|x64.Deploy.0 = Debug|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|x86.ActiveCfg = Debug|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|x86.Build.0 = Debug|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Debug|x86.Deploy.0 = Debug|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|Any CPU.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|ARM.ActiveCfg = Release|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|ARM.Build.0 = Release|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|ARM.Deploy.0 = Release|ARM + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|iPhone.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|iPhoneSimulator.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|x64.ActiveCfg = Release|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|x64.Build.0 = Release|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|x64.Deploy.0 = Release|x64 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|x86.ActiveCfg = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|x86.Build.0 = Release|x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C}.Release|x86.Deploy.0 = Release|x86 + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|ARM.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|iPhone.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|x64.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|x64.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|x86.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.AppStore|x86.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|ARM.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|iPhone.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|x64.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|x64.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|x86.ActiveCfg = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Debug|x86.Build.0 = Debug|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|Any CPU.Build.0 = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|ARM.ActiveCfg = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|ARM.Build.0 = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|iPhone.ActiveCfg = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|iPhone.Build.0 = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|x64.ActiveCfg = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|x64.Build.0 = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|x86.ActiveCfg = Release|Any CPU + {0DE3A997-9167-48E7-BC74-66576324B7C5}.Release|x86.Build.0 = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|ARM.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|iPhone.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|x64.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|x64.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|x86.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.AppStore|x86.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|ARM.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|ARM.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|iPhone.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|x64.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|x64.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|x86.ActiveCfg = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Debug|x86.Build.0 = Debug|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|Any CPU.Build.0 = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|ARM.ActiveCfg = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|ARM.Build.0 = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|iPhone.ActiveCfg = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|iPhone.Build.0 = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|x64.ActiveCfg = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|x64.Build.0 = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|x86.ActiveCfg = Release|Any CPU + {00CD1237-514F-4B70-BB14-65FC05E38222}.Release|x86.Build.0 = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|ARM.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|iPhone.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|x64.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|x64.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|x86.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.AppStore|x86.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|ARM.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|iPhone.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|x64.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|x64.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|x86.ActiveCfg = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Debug|x86.Build.0 = Debug|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|Any CPU.Build.0 = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|ARM.ActiveCfg = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|ARM.Build.0 = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|iPhone.ActiveCfg = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|iPhone.Build.0 = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|x64.ActiveCfg = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|x64.Build.0 = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|x86.ActiveCfg = Release|Any CPU + {F9A541C6-BBEA-4594-9B2E-EFFA982D9E2E}.Release|x86.Build.0 = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|ARM.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|iPhone.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|x64.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|x64.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|x86.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.AppStore|x86.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|ARM.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|ARM.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|iPhone.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|x64.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|x64.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|x86.ActiveCfg = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Debug|x86.Build.0 = Debug|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|Any CPU.Build.0 = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|ARM.ActiveCfg = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|ARM.Build.0 = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|iPhone.ActiveCfg = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|iPhone.Build.0 = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|x64.ActiveCfg = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|x64.Build.0 = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|x86.ActiveCfg = Release|Any CPU + {98BE2B3B-4475-4EB0-A06C-2673587679ED}.Release|x86.Build.0 = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|ARM.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|iPhone.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|x64.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|x64.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|x86.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.AppStore|x86.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|ARM.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|ARM.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|iPhone.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|x64.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|x64.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|x86.ActiveCfg = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Debug|x86.Build.0 = Debug|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|Any CPU.Build.0 = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|ARM.ActiveCfg = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|ARM.Build.0 = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|iPhone.ActiveCfg = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|iPhone.Build.0 = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|x64.ActiveCfg = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|x64.Build.0 = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|x86.ActiveCfg = Release|Any CPU + {9FB2542A-6BF7-47B9-8F45-D551F6A318C8}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {84DC3201-F4A0-4AFA-991D-F047EA193F07} + EndGlobalSection +EndGlobal diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Assets/AboutAssets.txt b/BusinessMgrMobile/BusinessMgrMobile.Android/Assets/AboutAssets.txt new file mode 100644 index 0000000..ca673c6 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Assets/AboutAssets.txt @@ -0,0 +1,19 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories) and given a Build Action of "AndroidAsset". + +These files will be deployed with you package and will be accessible using Android's +AssetManager, like this: + +public class ReadAsset : Activity +{ + protected override void OnCreate (Bundle bundle) + { + base.OnCreate (bundle); + + InputStream input = Assets.Open ("my_asset.txt"); + } +} + +Additionally, some Android functions will automatically load asset files: + +Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/BusinessMgrMobile.Android.csproj b/BusinessMgrMobile/BusinessMgrMobile.Android/BusinessMgrMobile.Android.csproj new file mode 100644 index 0000000..c5f479c --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/BusinessMgrMobile.Android.csproj @@ -0,0 +1,120 @@ + + + + Debug + AnyCPU + {9ADAAE7E-997E-4A99-8DC8-9B837982B7A5} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {c9e5eea5-ca05-42a1-839b-61506e0a37df} + Library + Sarand.BusinessMgr + BusinessMgrMobile.Android + True + Resources\Resource.designer.cs + Resource + Properties\AndroidManifest.xml + Resources + Assets + false + v8.1 + Xamarin.Android.Net.AndroidClientHandler + + + + + true + portable + false + bin\Debug + DEBUG; + prompt + 4 + None + false + false + false + + + true + pdbonly + true + bin\Release + prompt + 4 + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {f9a541c6-bbea-4594-9b2e-effa982d9e2e} + SaBusMgrCore + + + {9fb2542a-6bf7-47b9-8f45-d551f6a318c8} + SacsCoreBase + + + {00cd1237-514f-4b70-bb14-65fc05e38222} + SacsCoreMob + + + {0DE3A997-9167-48E7-BC74-66576324B7C5} + SaBusMgrMobCore + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Mobile/Droid/App/MainActivity.cs b/BusinessMgrMobile/BusinessMgrMobile.Android/Mobile/Droid/App/MainActivity.cs new file mode 100644 index 0000000..57764fc --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Mobile/Droid/App/MainActivity.cs @@ -0,0 +1,67 @@ +using System; + +using Android.App; +using Android.Content.PM; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.OS; +using Android.Content; +using Sarand.BusinessMgr.Mobile.Core.App; +using System.Threading.Tasks; + +namespace Sarand.BusinessMgr.Mobile.Droid +{ + //======================================================================= + [Activity(Label = "BusinessMgrMobile", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] + public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity + { + //------------------------------------------------------------------- + // Data members. + private Sarand.BusinessMgr.Mobile.App.App application = null; + + //------------------------------------------------------------------- + // A c t i v i t y E v e n t s + //------------------------------------------------------------------- + protected override void OnCreate (Bundle savedInstanceState) + { + TabLayoutResource = Resource.Layout.Tabbar; + ToolbarResource = Resource.Layout.Toolbar; + + // Unhandled exceptions. + AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; + TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; + AndroidEnvironment.UnhandledExceptionRaiser += AndroidEnvironment_UnhandledExceptionRaiser; + + base.OnCreate(savedInstanceState); + global::Xamarin.Forms.Forms.Init(this, savedInstanceState); + Xamarin.Essentials.Platform.Init(this, savedInstanceState); + + // Initialise the application. + application = new Sarand.BusinessMgr.Mobile.App.App(SbmMobile.Platform.Android); + LoadApplication(application); + } + + //------------------------------------------------------------------- + // U n h a n d l e d E x c e p t i o n s + //------------------------------------------------------------------- + private void CurrentDomain_UnhandledException (object sender, UnhandledExceptionEventArgs e) + { + if (application != null) + application.OnUnhandledException(sender, e.ExceptionObject, e.IsTerminating); + } + private void TaskScheduler_UnobservedTaskException (object sender, UnobservedTaskExceptionEventArgs e) + { + if (application != null) + application.UnobservedTaskException(sender, e); + } + private void AndroidEnvironment_UnhandledExceptionRaiser (object sender, RaiseThrowableEventArgs e) + { + if (application != null) + application.UnhandledExceptionRaiser(sender, e.Exception, e.Handled); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Properties/AndroidManifest.xml b/BusinessMgrMobile/BusinessMgrMobile.Android/Properties/AndroidManifest.xml new file mode 100644 index 0000000..af95792 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Properties/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Properties/AssemblyInfo.cs b/BusinessMgrMobile/BusinessMgrMobile.Android/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7a662cd --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Properties/AssemblyInfo.cs @@ -0,0 +1,34 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using Android.App; + +// 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("BusinessMgrMobile.Android")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("BusinessMgrMobile.Android")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: ComVisible(false)] + +// 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")] + +// Add some common permissions, these can be removed if not needed +[assembly: UsesPermission(Android.Manifest.Permission.Internet)] +[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/AboutResources.txt b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/AboutResources.txt new file mode 100644 index 0000000..cb30f20 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/AboutResources.txt @@ -0,0 +1,50 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.xml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable-hdpi/ + icon.png + + drawable-ldpi/ + icon.png + + drawable-mdpi/ + icon.png + + layout/ + main.xml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called +"Resource" that contains the tokens for each one of the resources included. For example, +for the above Resources layout, this is what the Resource class would expose: + +public class Resource { + public class drawable { + public const int icon = 0x123; + } + + public class layout { + public const int main = 0x456; + } + + public class strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main +to reference the layout/main.xml file, or Resource.strings.first_string to reference the first +string in the dictionary file values/strings.xml. diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/Resource.designer.cs b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/Resource.designer.cs new file mode 100644 index 0000000..d4b6b49 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/Resource.designer.cs @@ -0,0 +1,9670 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::Android.Runtime.ResourceDesignerAttribute("Sarand.BusinessMgr.Resource", IsApplication=true)] + +namespace Sarand.BusinessMgr +{ + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] + public partial class Resource + { + + static Resource() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + public static void UpdateIdValues() + { + global::Xamarin.Essentials.Resource.Attribute.font = global::Sarand.BusinessMgr.Resource.Attribute.font; + global::Xamarin.Essentials.Resource.Attribute.fontProviderAuthority = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderAuthority; + global::Xamarin.Essentials.Resource.Attribute.fontProviderCerts = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderCerts; + global::Xamarin.Essentials.Resource.Attribute.fontProviderFetchStrategy = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderFetchStrategy; + global::Xamarin.Essentials.Resource.Attribute.fontProviderFetchTimeout = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderFetchTimeout; + global::Xamarin.Essentials.Resource.Attribute.fontProviderPackage = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderPackage; + global::Xamarin.Essentials.Resource.Attribute.fontProviderQuery = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderQuery; + global::Xamarin.Essentials.Resource.Attribute.fontStyle = global::Sarand.BusinessMgr.Resource.Attribute.fontStyle; + global::Xamarin.Essentials.Resource.Attribute.fontWeight = global::Sarand.BusinessMgr.Resource.Attribute.fontWeight; + global::Xamarin.Essentials.Resource.Boolean.abc_action_bar_embed_tabs = global::Sarand.BusinessMgr.Resource.Boolean.abc_action_bar_embed_tabs; + global::Xamarin.Essentials.Resource.Color.notification_action_color_filter = global::Sarand.BusinessMgr.Resource.Color.notification_action_color_filter; + global::Xamarin.Essentials.Resource.Color.notification_icon_bg_color = global::Sarand.BusinessMgr.Resource.Color.notification_icon_bg_color; + global::Xamarin.Essentials.Resource.Color.ripple_material_light = global::Sarand.BusinessMgr.Resource.Color.ripple_material_light; + global::Xamarin.Essentials.Resource.Color.secondary_text_default_material_light = global::Sarand.BusinessMgr.Resource.Color.secondary_text_default_material_light; + global::Xamarin.Essentials.Resource.Dimension.compat_button_inset_horizontal_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_button_inset_horizontal_material; + global::Xamarin.Essentials.Resource.Dimension.compat_button_inset_vertical_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_button_inset_vertical_material; + global::Xamarin.Essentials.Resource.Dimension.compat_button_padding_horizontal_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_button_padding_horizontal_material; + global::Xamarin.Essentials.Resource.Dimension.compat_button_padding_vertical_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_button_padding_vertical_material; + global::Xamarin.Essentials.Resource.Dimension.compat_control_corner_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_control_corner_material; + global::Xamarin.Essentials.Resource.Dimension.notification_action_icon_size = global::Sarand.BusinessMgr.Resource.Dimension.notification_action_icon_size; + global::Xamarin.Essentials.Resource.Dimension.notification_action_text_size = global::Sarand.BusinessMgr.Resource.Dimension.notification_action_text_size; + global::Xamarin.Essentials.Resource.Dimension.notification_big_circle_margin = global::Sarand.BusinessMgr.Resource.Dimension.notification_big_circle_margin; + global::Xamarin.Essentials.Resource.Dimension.notification_content_margin_start = global::Sarand.BusinessMgr.Resource.Dimension.notification_content_margin_start; + global::Xamarin.Essentials.Resource.Dimension.notification_large_icon_height = global::Sarand.BusinessMgr.Resource.Dimension.notification_large_icon_height; + global::Xamarin.Essentials.Resource.Dimension.notification_large_icon_width = global::Sarand.BusinessMgr.Resource.Dimension.notification_large_icon_width; + global::Xamarin.Essentials.Resource.Dimension.notification_main_column_padding_top = global::Sarand.BusinessMgr.Resource.Dimension.notification_main_column_padding_top; + global::Xamarin.Essentials.Resource.Dimension.notification_media_narrow_margin = global::Sarand.BusinessMgr.Resource.Dimension.notification_media_narrow_margin; + global::Xamarin.Essentials.Resource.Dimension.notification_right_icon_size = global::Sarand.BusinessMgr.Resource.Dimension.notification_right_icon_size; + global::Xamarin.Essentials.Resource.Dimension.notification_right_side_padding_top = global::Sarand.BusinessMgr.Resource.Dimension.notification_right_side_padding_top; + global::Xamarin.Essentials.Resource.Dimension.notification_small_icon_background_padding = global::Sarand.BusinessMgr.Resource.Dimension.notification_small_icon_background_padding; + global::Xamarin.Essentials.Resource.Dimension.notification_small_icon_size_as_large = global::Sarand.BusinessMgr.Resource.Dimension.notification_small_icon_size_as_large; + global::Xamarin.Essentials.Resource.Dimension.notification_subtext_size = global::Sarand.BusinessMgr.Resource.Dimension.notification_subtext_size; + global::Xamarin.Essentials.Resource.Dimension.notification_top_pad = global::Sarand.BusinessMgr.Resource.Dimension.notification_top_pad; + global::Xamarin.Essentials.Resource.Dimension.notification_top_pad_large_text = global::Sarand.BusinessMgr.Resource.Dimension.notification_top_pad_large_text; + global::Xamarin.Essentials.Resource.Drawable.notification_action_background = global::Sarand.BusinessMgr.Resource.Drawable.notification_action_background; + global::Xamarin.Essentials.Resource.Drawable.notification_bg = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg; + global::Xamarin.Essentials.Resource.Drawable.notification_bg_low = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_low; + global::Xamarin.Essentials.Resource.Drawable.notification_bg_low_normal = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_low_normal; + global::Xamarin.Essentials.Resource.Drawable.notification_bg_low_pressed = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_low_pressed; + global::Xamarin.Essentials.Resource.Drawable.notification_bg_normal = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_normal; + global::Xamarin.Essentials.Resource.Drawable.notification_bg_normal_pressed = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_normal_pressed; + global::Xamarin.Essentials.Resource.Drawable.notification_icon_background = global::Sarand.BusinessMgr.Resource.Drawable.notification_icon_background; + global::Xamarin.Essentials.Resource.Drawable.notification_template_icon_bg = global::Sarand.BusinessMgr.Resource.Drawable.notification_template_icon_bg; + global::Xamarin.Essentials.Resource.Drawable.notification_template_icon_low_bg = global::Sarand.BusinessMgr.Resource.Drawable.notification_template_icon_low_bg; + global::Xamarin.Essentials.Resource.Drawable.notification_tile_bg = global::Sarand.BusinessMgr.Resource.Drawable.notification_tile_bg; + global::Xamarin.Essentials.Resource.Drawable.notify_panel_notification_icon_bg = global::Sarand.BusinessMgr.Resource.Drawable.notify_panel_notification_icon_bg; + global::Xamarin.Essentials.Resource.Id.action_container = global::Sarand.BusinessMgr.Resource.Id.action_container; + global::Xamarin.Essentials.Resource.Id.action_divider = global::Sarand.BusinessMgr.Resource.Id.action_divider; + global::Xamarin.Essentials.Resource.Id.action_image = global::Sarand.BusinessMgr.Resource.Id.action_image; + global::Xamarin.Essentials.Resource.Id.action_text = global::Sarand.BusinessMgr.Resource.Id.action_text; + global::Xamarin.Essentials.Resource.Id.actions = global::Sarand.BusinessMgr.Resource.Id.actions; + global::Xamarin.Essentials.Resource.Id.async = global::Sarand.BusinessMgr.Resource.Id.async; + global::Xamarin.Essentials.Resource.Id.blocking = global::Sarand.BusinessMgr.Resource.Id.blocking; + global::Xamarin.Essentials.Resource.Id.chronometer = global::Sarand.BusinessMgr.Resource.Id.chronometer; + global::Xamarin.Essentials.Resource.Id.forever = global::Sarand.BusinessMgr.Resource.Id.forever; + global::Xamarin.Essentials.Resource.Id.icon = global::Sarand.BusinessMgr.Resource.Id.icon; + global::Xamarin.Essentials.Resource.Id.icon_group = global::Sarand.BusinessMgr.Resource.Id.icon_group; + global::Xamarin.Essentials.Resource.Id.info = global::Sarand.BusinessMgr.Resource.Id.info; + global::Xamarin.Essentials.Resource.Id.italic = global::Sarand.BusinessMgr.Resource.Id.italic; + global::Xamarin.Essentials.Resource.Id.line1 = global::Sarand.BusinessMgr.Resource.Id.line1; + global::Xamarin.Essentials.Resource.Id.line3 = global::Sarand.BusinessMgr.Resource.Id.line3; + global::Xamarin.Essentials.Resource.Id.normal = global::Sarand.BusinessMgr.Resource.Id.normal; + global::Xamarin.Essentials.Resource.Id.notification_background = global::Sarand.BusinessMgr.Resource.Id.notification_background; + global::Xamarin.Essentials.Resource.Id.notification_main_column = global::Sarand.BusinessMgr.Resource.Id.notification_main_column; + global::Xamarin.Essentials.Resource.Id.notification_main_column_container = global::Sarand.BusinessMgr.Resource.Id.notification_main_column_container; + global::Xamarin.Essentials.Resource.Id.right_icon = global::Sarand.BusinessMgr.Resource.Id.right_icon; + global::Xamarin.Essentials.Resource.Id.right_side = global::Sarand.BusinessMgr.Resource.Id.right_side; + global::Xamarin.Essentials.Resource.Id.tag_transition_group = global::Sarand.BusinessMgr.Resource.Id.tag_transition_group; + global::Xamarin.Essentials.Resource.Id.text = global::Sarand.BusinessMgr.Resource.Id.text; + global::Xamarin.Essentials.Resource.Id.text2 = global::Sarand.BusinessMgr.Resource.Id.text2; + global::Xamarin.Essentials.Resource.Id.time = global::Sarand.BusinessMgr.Resource.Id.time; + global::Xamarin.Essentials.Resource.Id.title = global::Sarand.BusinessMgr.Resource.Id.title; + global::Xamarin.Essentials.Resource.Integer.status_bar_notification_info_maxnum = global::Sarand.BusinessMgr.Resource.Integer.status_bar_notification_info_maxnum; + global::Xamarin.Essentials.Resource.Layout.notification_action = global::Sarand.BusinessMgr.Resource.Layout.notification_action; + global::Xamarin.Essentials.Resource.Layout.notification_action_tombstone = global::Sarand.BusinessMgr.Resource.Layout.notification_action_tombstone; + global::Xamarin.Essentials.Resource.Layout.notification_template_custom_big = global::Sarand.BusinessMgr.Resource.Layout.notification_template_custom_big; + global::Xamarin.Essentials.Resource.Layout.notification_template_icon_group = global::Sarand.BusinessMgr.Resource.Layout.notification_template_icon_group; + global::Xamarin.Essentials.Resource.Layout.notification_template_part_chronometer = global::Sarand.BusinessMgr.Resource.Layout.notification_template_part_chronometer; + global::Xamarin.Essentials.Resource.Layout.notification_template_part_time = global::Sarand.BusinessMgr.Resource.Layout.notification_template_part_time; + global::Xamarin.Essentials.Resource.String.status_bar_notification_info_overflow = global::Sarand.BusinessMgr.Resource.String.status_bar_notification_info_overflow; + global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification; + global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Info = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Info; + global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Line2 = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Line2; + global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Time = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Time; + global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Title = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Title; + global::Xamarin.Essentials.Resource.Style.Widget_Compat_NotificationActionContainer = global::Sarand.BusinessMgr.Resource.Style.Widget_Compat_NotificationActionContainer; + global::Xamarin.Essentials.Resource.Style.Widget_Compat_NotificationActionText = global::Sarand.BusinessMgr.Resource.Style.Widget_Compat_NotificationActionText; + global::Xamarin.Essentials.Resource.Xml.xamarin_essentials_fileprovider_file_paths = global::Sarand.BusinessMgr.Resource.Xml.xamarin_essentials_fileprovider_file_paths; + global::Xamarin.Essentials.Resource.Styleable.FontFamily = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily; + global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderAuthority = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderAuthority; + global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderCerts = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderCerts; + global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderFetchStrategy = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderFetchStrategy; + global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderFetchTimeout = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderFetchTimeout; + global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderPackage = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderPackage; + global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderQuery = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderQuery; + global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont; + global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_font = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_android_font; + global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_fontStyle = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_android_fontStyle; + global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_fontWeight = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_android_fontWeight; + global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_font = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_font; + global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_fontStyle = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_fontStyle; + global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_fontWeight = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_fontWeight; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_fade_in = global::Sarand.BusinessMgr.Resource.Animation.abc_fade_in; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_fade_out = global::Sarand.BusinessMgr.Resource.Animation.abc_fade_out; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_grow_fade_in_from_bottom = global::Sarand.BusinessMgr.Resource.Animation.abc_grow_fade_in_from_bottom; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_popup_enter = global::Sarand.BusinessMgr.Resource.Animation.abc_popup_enter; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_popup_exit = global::Sarand.BusinessMgr.Resource.Animation.abc_popup_exit; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_shrink_fade_out_from_bottom = global::Sarand.BusinessMgr.Resource.Animation.abc_shrink_fade_out_from_bottom; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_slide_in_bottom = global::Sarand.BusinessMgr.Resource.Animation.abc_slide_in_bottom; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_slide_in_top = global::Sarand.BusinessMgr.Resource.Animation.abc_slide_in_top; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_slide_out_bottom = global::Sarand.BusinessMgr.Resource.Animation.abc_slide_out_bottom; + global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_slide_out_top = global::Sarand.BusinessMgr.Resource.Animation.abc_slide_out_top; + global::Xamarin.Forms.Platform.Android.Resource.Animation.design_bottom_sheet_slide_in = global::Sarand.BusinessMgr.Resource.Animation.design_bottom_sheet_slide_in; + global::Xamarin.Forms.Platform.Android.Resource.Animation.design_bottom_sheet_slide_out = global::Sarand.BusinessMgr.Resource.Animation.design_bottom_sheet_slide_out; + global::Xamarin.Forms.Platform.Android.Resource.Animation.design_snackbar_in = global::Sarand.BusinessMgr.Resource.Animation.design_snackbar_in; + global::Xamarin.Forms.Platform.Android.Resource.Animation.design_snackbar_out = global::Sarand.BusinessMgr.Resource.Animation.design_snackbar_out; + global::Xamarin.Forms.Platform.Android.Resource.Animation.EnterFromLeft = global::Sarand.BusinessMgr.Resource.Animation.EnterFromLeft; + global::Xamarin.Forms.Platform.Android.Resource.Animation.EnterFromRight = global::Sarand.BusinessMgr.Resource.Animation.EnterFromRight; + global::Xamarin.Forms.Platform.Android.Resource.Animation.ExitToLeft = global::Sarand.BusinessMgr.Resource.Animation.ExitToLeft; + global::Xamarin.Forms.Platform.Android.Resource.Animation.ExitToRight = global::Sarand.BusinessMgr.Resource.Animation.ExitToRight; + global::Xamarin.Forms.Platform.Android.Resource.Animation.tooltip_enter = global::Sarand.BusinessMgr.Resource.Animation.tooltip_enter; + global::Xamarin.Forms.Platform.Android.Resource.Animation.tooltip_exit = global::Sarand.BusinessMgr.Resource.Animation.tooltip_exit; + global::Xamarin.Forms.Platform.Android.Resource.Animator.design_appbar_state_list_animator = global::Sarand.BusinessMgr.Resource.Animator.design_appbar_state_list_animator; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarDivider = global::Sarand.BusinessMgr.Resource.Attribute.actionBarDivider; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarItemBackground = global::Sarand.BusinessMgr.Resource.Attribute.actionBarItemBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarPopupTheme = global::Sarand.BusinessMgr.Resource.Attribute.actionBarPopupTheme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSize = global::Sarand.BusinessMgr.Resource.Attribute.actionBarSize; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSplitStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionBarSplitStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarTabBarStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionBarTabBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarTabStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionBarTabStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarTabTextStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionBarTabTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarTheme = global::Sarand.BusinessMgr.Resource.Attribute.actionBarTheme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarWidgetTheme = global::Sarand.BusinessMgr.Resource.Attribute.actionBarWidgetTheme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionDropDownStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionDropDownStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionLayout = global::Sarand.BusinessMgr.Resource.Attribute.actionLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionMenuTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.actionMenuTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionMenuTextColor = global::Sarand.BusinessMgr.Resource.Attribute.actionMenuTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeBackground = global::Sarand.BusinessMgr.Resource.Attribute.actionModeBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeCloseButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionModeCloseButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeCloseDrawable = global::Sarand.BusinessMgr.Resource.Attribute.actionModeCloseDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeCopyDrawable = global::Sarand.BusinessMgr.Resource.Attribute.actionModeCopyDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeCutDrawable = global::Sarand.BusinessMgr.Resource.Attribute.actionModeCutDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeFindDrawable = global::Sarand.BusinessMgr.Resource.Attribute.actionModeFindDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModePasteDrawable = global::Sarand.BusinessMgr.Resource.Attribute.actionModePasteDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModePopupWindowStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionModePopupWindowStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeSelectAllDrawable = global::Sarand.BusinessMgr.Resource.Attribute.actionModeSelectAllDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeShareDrawable = global::Sarand.BusinessMgr.Resource.Attribute.actionModeShareDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeSplitBackground = global::Sarand.BusinessMgr.Resource.Attribute.actionModeSplitBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionModeStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeWebSearchDrawable = global::Sarand.BusinessMgr.Resource.Attribute.actionModeWebSearchDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionOverflowButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionOverflowButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionOverflowMenuStyle = global::Sarand.BusinessMgr.Resource.Attribute.actionOverflowMenuStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionProviderClass = global::Sarand.BusinessMgr.Resource.Attribute.actionProviderClass; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionViewClass = global::Sarand.BusinessMgr.Resource.Attribute.actionViewClass; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.activityChooserViewStyle = global::Sarand.BusinessMgr.Resource.Attribute.activityChooserViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.alertDialogButtonGroupStyle = global::Sarand.BusinessMgr.Resource.Attribute.alertDialogButtonGroupStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.alertDialogCenterButtons = global::Sarand.BusinessMgr.Resource.Attribute.alertDialogCenterButtons; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.alertDialogStyle = global::Sarand.BusinessMgr.Resource.Attribute.alertDialogStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.alertDialogTheme = global::Sarand.BusinessMgr.Resource.Attribute.alertDialogTheme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.allowStacking = global::Sarand.BusinessMgr.Resource.Attribute.allowStacking; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.alpha = global::Sarand.BusinessMgr.Resource.Attribute.alpha; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.alphabeticModifiers = global::Sarand.BusinessMgr.Resource.Attribute.alphabeticModifiers; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.arrowHeadLength = global::Sarand.BusinessMgr.Resource.Attribute.arrowHeadLength; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.arrowShaftLength = global::Sarand.BusinessMgr.Resource.Attribute.arrowShaftLength; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoCompleteTextViewStyle = global::Sarand.BusinessMgr.Resource.Attribute.autoCompleteTextViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizeMaxTextSize = global::Sarand.BusinessMgr.Resource.Attribute.autoSizeMaxTextSize; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizeMinTextSize = global::Sarand.BusinessMgr.Resource.Attribute.autoSizeMinTextSize; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizePresetSizes = global::Sarand.BusinessMgr.Resource.Attribute.autoSizePresetSizes; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizeStepGranularity = global::Sarand.BusinessMgr.Resource.Attribute.autoSizeStepGranularity; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizeTextType = global::Sarand.BusinessMgr.Resource.Attribute.autoSizeTextType; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.background = global::Sarand.BusinessMgr.Resource.Attribute.background; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.backgroundSplit = global::Sarand.BusinessMgr.Resource.Attribute.backgroundSplit; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.backgroundStacked = global::Sarand.BusinessMgr.Resource.Attribute.backgroundStacked; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.backgroundTint = global::Sarand.BusinessMgr.Resource.Attribute.backgroundTint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.backgroundTintMode = global::Sarand.BusinessMgr.Resource.Attribute.backgroundTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.barLength = global::Sarand.BusinessMgr.Resource.Attribute.barLength; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_autoHide = global::Sarand.BusinessMgr.Resource.Attribute.behavior_autoHide; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_hideable = global::Sarand.BusinessMgr.Resource.Attribute.behavior_hideable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_overlapTop = global::Sarand.BusinessMgr.Resource.Attribute.behavior_overlapTop; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_peekHeight = global::Sarand.BusinessMgr.Resource.Attribute.behavior_peekHeight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_skipCollapsed = global::Sarand.BusinessMgr.Resource.Attribute.behavior_skipCollapsed; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.borderWidth = global::Sarand.BusinessMgr.Resource.Attribute.borderWidth; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.borderlessButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.borderlessButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.bottomSheetDialogTheme = global::Sarand.BusinessMgr.Resource.Attribute.bottomSheetDialogTheme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.bottomSheetStyle = global::Sarand.BusinessMgr.Resource.Attribute.bottomSheetStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.buttonBarButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarNegativeButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.buttonBarNegativeButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarNeutralButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.buttonBarNeutralButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarPositiveButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.buttonBarPositiveButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarStyle = global::Sarand.BusinessMgr.Resource.Attribute.buttonBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonGravity = global::Sarand.BusinessMgr.Resource.Attribute.buttonGravity; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonPanelSideLayout = global::Sarand.BusinessMgr.Resource.Attribute.buttonPanelSideLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonStyle = global::Sarand.BusinessMgr.Resource.Attribute.buttonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonStyleSmall = global::Sarand.BusinessMgr.Resource.Attribute.buttonStyleSmall; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonTint = global::Sarand.BusinessMgr.Resource.Attribute.buttonTint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonTintMode = global::Sarand.BusinessMgr.Resource.Attribute.buttonTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardBackgroundColor = global::Sarand.BusinessMgr.Resource.Attribute.cardBackgroundColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardCornerRadius = global::Sarand.BusinessMgr.Resource.Attribute.cardCornerRadius; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardElevation = global::Sarand.BusinessMgr.Resource.Attribute.cardElevation; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardMaxElevation = global::Sarand.BusinessMgr.Resource.Attribute.cardMaxElevation; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardPreventCornerOverlap = global::Sarand.BusinessMgr.Resource.Attribute.cardPreventCornerOverlap; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardUseCompatPadding = global::Sarand.BusinessMgr.Resource.Attribute.cardUseCompatPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.checkboxStyle = global::Sarand.BusinessMgr.Resource.Attribute.checkboxStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.checkedTextViewStyle = global::Sarand.BusinessMgr.Resource.Attribute.checkedTextViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeIcon = global::Sarand.BusinessMgr.Resource.Attribute.closeIcon; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeItemLayout = global::Sarand.BusinessMgr.Resource.Attribute.closeItemLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.collapseContentDescription = global::Sarand.BusinessMgr.Resource.Attribute.collapseContentDescription; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.collapseIcon = global::Sarand.BusinessMgr.Resource.Attribute.collapseIcon; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.collapsedTitleGravity = global::Sarand.BusinessMgr.Resource.Attribute.collapsedTitleGravity; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.collapsedTitleTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.collapsedTitleTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.color = global::Sarand.BusinessMgr.Resource.Attribute.color; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorAccent = global::Sarand.BusinessMgr.Resource.Attribute.colorAccent; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorBackgroundFloating = global::Sarand.BusinessMgr.Resource.Attribute.colorBackgroundFloating; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorButtonNormal = global::Sarand.BusinessMgr.Resource.Attribute.colorButtonNormal; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorControlActivated = global::Sarand.BusinessMgr.Resource.Attribute.colorControlActivated; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorControlHighlight = global::Sarand.BusinessMgr.Resource.Attribute.colorControlHighlight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorControlNormal = global::Sarand.BusinessMgr.Resource.Attribute.colorControlNormal; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorError = global::Sarand.BusinessMgr.Resource.Attribute.colorError; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorPrimary = global::Sarand.BusinessMgr.Resource.Attribute.colorPrimary; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorPrimaryDark = global::Sarand.BusinessMgr.Resource.Attribute.colorPrimaryDark; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorSwitchThumbNormal = global::Sarand.BusinessMgr.Resource.Attribute.colorSwitchThumbNormal; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.commitIcon = global::Sarand.BusinessMgr.Resource.Attribute.commitIcon; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentDescription = global::Sarand.BusinessMgr.Resource.Attribute.contentDescription; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetEnd = global::Sarand.BusinessMgr.Resource.Attribute.contentInsetEnd; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetEndWithActions = global::Sarand.BusinessMgr.Resource.Attribute.contentInsetEndWithActions; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetLeft = global::Sarand.BusinessMgr.Resource.Attribute.contentInsetLeft; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetRight = global::Sarand.BusinessMgr.Resource.Attribute.contentInsetRight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetStart = global::Sarand.BusinessMgr.Resource.Attribute.contentInsetStart; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetStartWithNavigation = global::Sarand.BusinessMgr.Resource.Attribute.contentInsetStartWithNavigation; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPadding = global::Sarand.BusinessMgr.Resource.Attribute.contentPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPaddingBottom = global::Sarand.BusinessMgr.Resource.Attribute.contentPaddingBottom; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPaddingLeft = global::Sarand.BusinessMgr.Resource.Attribute.contentPaddingLeft; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPaddingRight = global::Sarand.BusinessMgr.Resource.Attribute.contentPaddingRight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPaddingTop = global::Sarand.BusinessMgr.Resource.Attribute.contentPaddingTop; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentScrim = global::Sarand.BusinessMgr.Resource.Attribute.contentScrim; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.controlBackground = global::Sarand.BusinessMgr.Resource.Attribute.controlBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.counterEnabled = global::Sarand.BusinessMgr.Resource.Attribute.counterEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.counterMaxLength = global::Sarand.BusinessMgr.Resource.Attribute.counterMaxLength; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.counterOverflowTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.counterOverflowTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.counterTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.counterTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.customNavigationLayout = global::Sarand.BusinessMgr.Resource.Attribute.customNavigationLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.defaultQueryHint = global::Sarand.BusinessMgr.Resource.Attribute.defaultQueryHint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.dialogPreferredPadding = global::Sarand.BusinessMgr.Resource.Attribute.dialogPreferredPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.dialogTheme = global::Sarand.BusinessMgr.Resource.Attribute.dialogTheme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.displayOptions = global::Sarand.BusinessMgr.Resource.Attribute.displayOptions; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.divider = global::Sarand.BusinessMgr.Resource.Attribute.divider; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.dividerHorizontal = global::Sarand.BusinessMgr.Resource.Attribute.dividerHorizontal; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.dividerPadding = global::Sarand.BusinessMgr.Resource.Attribute.dividerPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.dividerVertical = global::Sarand.BusinessMgr.Resource.Attribute.dividerVertical; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.drawableSize = global::Sarand.BusinessMgr.Resource.Attribute.drawableSize; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.drawerArrowStyle = global::Sarand.BusinessMgr.Resource.Attribute.drawerArrowStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.dropDownListViewStyle = global::Sarand.BusinessMgr.Resource.Attribute.dropDownListViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.dropdownListPreferredItemHeight = global::Sarand.BusinessMgr.Resource.Attribute.dropdownListPreferredItemHeight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.editTextBackground = global::Sarand.BusinessMgr.Resource.Attribute.editTextBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.editTextColor = global::Sarand.BusinessMgr.Resource.Attribute.editTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.editTextStyle = global::Sarand.BusinessMgr.Resource.Attribute.editTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.elevation = global::Sarand.BusinessMgr.Resource.Attribute.elevation; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.errorEnabled = global::Sarand.BusinessMgr.Resource.Attribute.errorEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.errorTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.errorTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandActivityOverflowButtonDrawable = global::Sarand.BusinessMgr.Resource.Attribute.expandActivityOverflowButtonDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.expanded = global::Sarand.BusinessMgr.Resource.Attribute.expanded; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleGravity = global::Sarand.BusinessMgr.Resource.Attribute.expandedTitleGravity; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMargin = global::Sarand.BusinessMgr.Resource.Attribute.expandedTitleMargin; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMarginBottom = global::Sarand.BusinessMgr.Resource.Attribute.expandedTitleMarginBottom; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMarginEnd = global::Sarand.BusinessMgr.Resource.Attribute.expandedTitleMarginEnd; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMarginStart = global::Sarand.BusinessMgr.Resource.Attribute.expandedTitleMarginStart; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMarginTop = global::Sarand.BusinessMgr.Resource.Attribute.expandedTitleMarginTop; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.expandedTitleTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fabSize = global::Sarand.BusinessMgr.Resource.Attribute.fabSize; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollEnabled = global::Sarand.BusinessMgr.Resource.Attribute.fastScrollEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollHorizontalThumbDrawable = global::Sarand.BusinessMgr.Resource.Attribute.fastScrollHorizontalThumbDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollHorizontalTrackDrawable = global::Sarand.BusinessMgr.Resource.Attribute.fastScrollHorizontalTrackDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollVerticalThumbDrawable = global::Sarand.BusinessMgr.Resource.Attribute.fastScrollVerticalThumbDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollVerticalTrackDrawable = global::Sarand.BusinessMgr.Resource.Attribute.fastScrollVerticalTrackDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.font = global::Sarand.BusinessMgr.Resource.Attribute.font; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontFamily = global::Sarand.BusinessMgr.Resource.Attribute.fontFamily; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderAuthority = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderAuthority; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderCerts = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderCerts; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderFetchStrategy = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderFetchStrategy; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderFetchTimeout = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderFetchTimeout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderPackage = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderPackage; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderQuery = global::Sarand.BusinessMgr.Resource.Attribute.fontProviderQuery; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontStyle = global::Sarand.BusinessMgr.Resource.Attribute.fontStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontWeight = global::Sarand.BusinessMgr.Resource.Attribute.fontWeight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.foregroundInsidePadding = global::Sarand.BusinessMgr.Resource.Attribute.foregroundInsidePadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.gapBetweenBars = global::Sarand.BusinessMgr.Resource.Attribute.gapBetweenBars; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.goIcon = global::Sarand.BusinessMgr.Resource.Attribute.goIcon; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.headerLayout = global::Sarand.BusinessMgr.Resource.Attribute.headerLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.height = global::Sarand.BusinessMgr.Resource.Attribute.height; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.hideOnContentScroll = global::Sarand.BusinessMgr.Resource.Attribute.hideOnContentScroll; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.hintAnimationEnabled = global::Sarand.BusinessMgr.Resource.Attribute.hintAnimationEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.hintEnabled = global::Sarand.BusinessMgr.Resource.Attribute.hintEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.hintTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.hintTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.homeAsUpIndicator = global::Sarand.BusinessMgr.Resource.Attribute.homeAsUpIndicator; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.homeLayout = global::Sarand.BusinessMgr.Resource.Attribute.homeLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.icon = global::Sarand.BusinessMgr.Resource.Attribute.icon; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconTint = global::Sarand.BusinessMgr.Resource.Attribute.iconTint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconTintMode = global::Sarand.BusinessMgr.Resource.Attribute.iconTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconifiedByDefault = global::Sarand.BusinessMgr.Resource.Attribute.iconifiedByDefault; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.imageButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.imageButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.indeterminateProgressStyle = global::Sarand.BusinessMgr.Resource.Attribute.indeterminateProgressStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.initialActivityCount = global::Sarand.BusinessMgr.Resource.Attribute.initialActivityCount; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.insetForeground = global::Sarand.BusinessMgr.Resource.Attribute.insetForeground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.isLightTheme = global::Sarand.BusinessMgr.Resource.Attribute.isLightTheme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemBackground = global::Sarand.BusinessMgr.Resource.Attribute.itemBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemIconTint = global::Sarand.BusinessMgr.Resource.Attribute.itemIconTint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemPadding = global::Sarand.BusinessMgr.Resource.Attribute.itemPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.itemTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemTextColor = global::Sarand.BusinessMgr.Resource.Attribute.itemTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.keylines = global::Sarand.BusinessMgr.Resource.Attribute.keylines; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout = global::Sarand.BusinessMgr.Resource.Attribute.layout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layoutManager = global::Sarand.BusinessMgr.Resource.Attribute.layoutManager; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_anchor = global::Sarand.BusinessMgr.Resource.Attribute.layout_anchor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_anchorGravity = global::Sarand.BusinessMgr.Resource.Attribute.layout_anchorGravity; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_behavior = global::Sarand.BusinessMgr.Resource.Attribute.layout_behavior; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_collapseMode = global::Sarand.BusinessMgr.Resource.Attribute.layout_collapseMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_collapseParallaxMultiplier = global::Sarand.BusinessMgr.Resource.Attribute.layout_collapseParallaxMultiplier; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_dodgeInsetEdges = global::Sarand.BusinessMgr.Resource.Attribute.layout_dodgeInsetEdges; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_insetEdge = global::Sarand.BusinessMgr.Resource.Attribute.layout_insetEdge; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_keyline = global::Sarand.BusinessMgr.Resource.Attribute.layout_keyline; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_scrollFlags = global::Sarand.BusinessMgr.Resource.Attribute.layout_scrollFlags; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_scrollInterpolator = global::Sarand.BusinessMgr.Resource.Attribute.layout_scrollInterpolator; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listChoiceBackgroundIndicator = global::Sarand.BusinessMgr.Resource.Attribute.listChoiceBackgroundIndicator; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listDividerAlertDialog = global::Sarand.BusinessMgr.Resource.Attribute.listDividerAlertDialog; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listItemLayout = global::Sarand.BusinessMgr.Resource.Attribute.listItemLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listLayout = global::Sarand.BusinessMgr.Resource.Attribute.listLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listMenuViewStyle = global::Sarand.BusinessMgr.Resource.Attribute.listMenuViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listPopupWindowStyle = global::Sarand.BusinessMgr.Resource.Attribute.listPopupWindowStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listPreferredItemHeight = global::Sarand.BusinessMgr.Resource.Attribute.listPreferredItemHeight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listPreferredItemHeightLarge = global::Sarand.BusinessMgr.Resource.Attribute.listPreferredItemHeightLarge; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listPreferredItemHeightSmall = global::Sarand.BusinessMgr.Resource.Attribute.listPreferredItemHeightSmall; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listPreferredItemPaddingLeft = global::Sarand.BusinessMgr.Resource.Attribute.listPreferredItemPaddingLeft; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.listPreferredItemPaddingRight = global::Sarand.BusinessMgr.Resource.Attribute.listPreferredItemPaddingRight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.logo = global::Sarand.BusinessMgr.Resource.Attribute.logo; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.logoDescription = global::Sarand.BusinessMgr.Resource.Attribute.logoDescription; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.maxActionInlineWidth = global::Sarand.BusinessMgr.Resource.Attribute.maxActionInlineWidth; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.maxButtonHeight = global::Sarand.BusinessMgr.Resource.Attribute.maxButtonHeight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.measureWithLargestChild = global::Sarand.BusinessMgr.Resource.Attribute.measureWithLargestChild; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.menu = global::Sarand.BusinessMgr.Resource.Attribute.menu; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.multiChoiceItemLayout = global::Sarand.BusinessMgr.Resource.Attribute.multiChoiceItemLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.navigationContentDescription = global::Sarand.BusinessMgr.Resource.Attribute.navigationContentDescription; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.navigationIcon = global::Sarand.BusinessMgr.Resource.Attribute.navigationIcon; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.navigationMode = global::Sarand.BusinessMgr.Resource.Attribute.navigationMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.numericModifiers = global::Sarand.BusinessMgr.Resource.Attribute.numericModifiers; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.overlapAnchor = global::Sarand.BusinessMgr.Resource.Attribute.overlapAnchor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.paddingBottomNoButtons = global::Sarand.BusinessMgr.Resource.Attribute.paddingBottomNoButtons; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.paddingEnd = global::Sarand.BusinessMgr.Resource.Attribute.paddingEnd; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.paddingStart = global::Sarand.BusinessMgr.Resource.Attribute.paddingStart; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.paddingTopNoTitle = global::Sarand.BusinessMgr.Resource.Attribute.paddingTopNoTitle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.panelBackground = global::Sarand.BusinessMgr.Resource.Attribute.panelBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.panelMenuListTheme = global::Sarand.BusinessMgr.Resource.Attribute.panelMenuListTheme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.panelMenuListWidth = global::Sarand.BusinessMgr.Resource.Attribute.panelMenuListWidth; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.passwordToggleContentDescription = global::Sarand.BusinessMgr.Resource.Attribute.passwordToggleContentDescription; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.passwordToggleDrawable = global::Sarand.BusinessMgr.Resource.Attribute.passwordToggleDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.passwordToggleEnabled = global::Sarand.BusinessMgr.Resource.Attribute.passwordToggleEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.passwordToggleTint = global::Sarand.BusinessMgr.Resource.Attribute.passwordToggleTint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.passwordToggleTintMode = global::Sarand.BusinessMgr.Resource.Attribute.passwordToggleTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.popupMenuStyle = global::Sarand.BusinessMgr.Resource.Attribute.popupMenuStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.popupTheme = global::Sarand.BusinessMgr.Resource.Attribute.popupTheme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.popupWindowStyle = global::Sarand.BusinessMgr.Resource.Attribute.popupWindowStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.preserveIconSpacing = global::Sarand.BusinessMgr.Resource.Attribute.preserveIconSpacing; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.pressedTranslationZ = global::Sarand.BusinessMgr.Resource.Attribute.pressedTranslationZ; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.progressBarPadding = global::Sarand.BusinessMgr.Resource.Attribute.progressBarPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.progressBarStyle = global::Sarand.BusinessMgr.Resource.Attribute.progressBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.queryBackground = global::Sarand.BusinessMgr.Resource.Attribute.queryBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.queryHint = global::Sarand.BusinessMgr.Resource.Attribute.queryHint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.radioButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.radioButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.ratingBarStyle = global::Sarand.BusinessMgr.Resource.Attribute.ratingBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.ratingBarStyleIndicator = global::Sarand.BusinessMgr.Resource.Attribute.ratingBarStyleIndicator; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.ratingBarStyleSmall = global::Sarand.BusinessMgr.Resource.Attribute.ratingBarStyleSmall; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.reverseLayout = global::Sarand.BusinessMgr.Resource.Attribute.reverseLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.rippleColor = global::Sarand.BusinessMgr.Resource.Attribute.rippleColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.scrimAnimationDuration = global::Sarand.BusinessMgr.Resource.Attribute.scrimAnimationDuration; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.scrimVisibleHeightTrigger = global::Sarand.BusinessMgr.Resource.Attribute.scrimVisibleHeightTrigger; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.searchHintIcon = global::Sarand.BusinessMgr.Resource.Attribute.searchHintIcon; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.searchIcon = global::Sarand.BusinessMgr.Resource.Attribute.searchIcon; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.searchViewStyle = global::Sarand.BusinessMgr.Resource.Attribute.searchViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.seekBarStyle = global::Sarand.BusinessMgr.Resource.Attribute.seekBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.selectableItemBackground = global::Sarand.BusinessMgr.Resource.Attribute.selectableItemBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.selectableItemBackgroundBorderless = global::Sarand.BusinessMgr.Resource.Attribute.selectableItemBackgroundBorderless; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.showAsAction = global::Sarand.BusinessMgr.Resource.Attribute.showAsAction; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.showDividers = global::Sarand.BusinessMgr.Resource.Attribute.showDividers; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.showText = global::Sarand.BusinessMgr.Resource.Attribute.showText; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.showTitle = global::Sarand.BusinessMgr.Resource.Attribute.showTitle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.singleChoiceItemLayout = global::Sarand.BusinessMgr.Resource.Attribute.singleChoiceItemLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.spanCount = global::Sarand.BusinessMgr.Resource.Attribute.spanCount; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.spinBars = global::Sarand.BusinessMgr.Resource.Attribute.spinBars; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.spinnerDropDownItemStyle = global::Sarand.BusinessMgr.Resource.Attribute.spinnerDropDownItemStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.spinnerStyle = global::Sarand.BusinessMgr.Resource.Attribute.spinnerStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.splitTrack = global::Sarand.BusinessMgr.Resource.Attribute.splitTrack; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.srcCompat = global::Sarand.BusinessMgr.Resource.Attribute.srcCompat; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.stackFromEnd = global::Sarand.BusinessMgr.Resource.Attribute.stackFromEnd; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.state_above_anchor = global::Sarand.BusinessMgr.Resource.Attribute.state_above_anchor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.state_collapsed = global::Sarand.BusinessMgr.Resource.Attribute.state_collapsed; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.state_collapsible = global::Sarand.BusinessMgr.Resource.Attribute.state_collapsible; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.statusBarBackground = global::Sarand.BusinessMgr.Resource.Attribute.statusBarBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.statusBarScrim = global::Sarand.BusinessMgr.Resource.Attribute.statusBarScrim; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.subMenuArrow = global::Sarand.BusinessMgr.Resource.Attribute.subMenuArrow; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.submitBackground = global::Sarand.BusinessMgr.Resource.Attribute.submitBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.subtitle = global::Sarand.BusinessMgr.Resource.Attribute.subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.subtitleTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.subtitleTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.subtitleTextColor = global::Sarand.BusinessMgr.Resource.Attribute.subtitleTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.subtitleTextStyle = global::Sarand.BusinessMgr.Resource.Attribute.subtitleTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.suggestionRowLayout = global::Sarand.BusinessMgr.Resource.Attribute.suggestionRowLayout; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.switchMinWidth = global::Sarand.BusinessMgr.Resource.Attribute.switchMinWidth; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.switchPadding = global::Sarand.BusinessMgr.Resource.Attribute.switchPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.switchStyle = global::Sarand.BusinessMgr.Resource.Attribute.switchStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.switchTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.switchTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabBackground = global::Sarand.BusinessMgr.Resource.Attribute.tabBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabContentStart = global::Sarand.BusinessMgr.Resource.Attribute.tabContentStart; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabGravity = global::Sarand.BusinessMgr.Resource.Attribute.tabGravity; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabIndicatorColor = global::Sarand.BusinessMgr.Resource.Attribute.tabIndicatorColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabIndicatorHeight = global::Sarand.BusinessMgr.Resource.Attribute.tabIndicatorHeight; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabMaxWidth = global::Sarand.BusinessMgr.Resource.Attribute.tabMaxWidth; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabMinWidth = global::Sarand.BusinessMgr.Resource.Attribute.tabMinWidth; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabMode = global::Sarand.BusinessMgr.Resource.Attribute.tabMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabPadding = global::Sarand.BusinessMgr.Resource.Attribute.tabPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabPaddingBottom = global::Sarand.BusinessMgr.Resource.Attribute.tabPaddingBottom; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabPaddingEnd = global::Sarand.BusinessMgr.Resource.Attribute.tabPaddingEnd; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabPaddingStart = global::Sarand.BusinessMgr.Resource.Attribute.tabPaddingStart; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabPaddingTop = global::Sarand.BusinessMgr.Resource.Attribute.tabPaddingTop; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabSelectedTextColor = global::Sarand.BusinessMgr.Resource.Attribute.tabSelectedTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.tabTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tabTextColor = global::Sarand.BusinessMgr.Resource.Attribute.tabTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textAllCaps = global::Sarand.BusinessMgr.Resource.Attribute.textAllCaps; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textAppearanceLargePopupMenu = global::Sarand.BusinessMgr.Resource.Attribute.textAppearanceLargePopupMenu; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textAppearanceListItem = global::Sarand.BusinessMgr.Resource.Attribute.textAppearanceListItem; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textAppearanceListItemSecondary = global::Sarand.BusinessMgr.Resource.Attribute.textAppearanceListItemSecondary; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textAppearanceListItemSmall = global::Sarand.BusinessMgr.Resource.Attribute.textAppearanceListItemSmall; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textAppearancePopupMenuHeader = global::Sarand.BusinessMgr.Resource.Attribute.textAppearancePopupMenuHeader; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textAppearanceSearchResultSubtitle = global::Sarand.BusinessMgr.Resource.Attribute.textAppearanceSearchResultSubtitle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textAppearanceSearchResultTitle = global::Sarand.BusinessMgr.Resource.Attribute.textAppearanceSearchResultTitle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textAppearanceSmallPopupMenu = global::Sarand.BusinessMgr.Resource.Attribute.textAppearanceSmallPopupMenu; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textColorAlertDialogListItem = global::Sarand.BusinessMgr.Resource.Attribute.textColorAlertDialogListItem; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textColorError = global::Sarand.BusinessMgr.Resource.Attribute.textColorError; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.textColorSearchUrl = global::Sarand.BusinessMgr.Resource.Attribute.textColorSearchUrl; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.theme = global::Sarand.BusinessMgr.Resource.Attribute.theme; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.thickness = global::Sarand.BusinessMgr.Resource.Attribute.thickness; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.thumbTextPadding = global::Sarand.BusinessMgr.Resource.Attribute.thumbTextPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.thumbTint = global::Sarand.BusinessMgr.Resource.Attribute.thumbTint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.thumbTintMode = global::Sarand.BusinessMgr.Resource.Attribute.thumbTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tickMark = global::Sarand.BusinessMgr.Resource.Attribute.tickMark; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tickMarkTint = global::Sarand.BusinessMgr.Resource.Attribute.tickMarkTint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tickMarkTintMode = global::Sarand.BusinessMgr.Resource.Attribute.tickMarkTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tint = global::Sarand.BusinessMgr.Resource.Attribute.tint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tintMode = global::Sarand.BusinessMgr.Resource.Attribute.tintMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.title = global::Sarand.BusinessMgr.Resource.Attribute.title; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleEnabled = global::Sarand.BusinessMgr.Resource.Attribute.titleEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleMargin = global::Sarand.BusinessMgr.Resource.Attribute.titleMargin; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleMarginBottom = global::Sarand.BusinessMgr.Resource.Attribute.titleMarginBottom; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleMarginEnd = global::Sarand.BusinessMgr.Resource.Attribute.titleMarginEnd; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleMarginStart = global::Sarand.BusinessMgr.Resource.Attribute.titleMarginStart; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleMarginTop = global::Sarand.BusinessMgr.Resource.Attribute.titleMarginTop; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleMargins = global::Sarand.BusinessMgr.Resource.Attribute.titleMargins; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleTextAppearance = global::Sarand.BusinessMgr.Resource.Attribute.titleTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleTextColor = global::Sarand.BusinessMgr.Resource.Attribute.titleTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.titleTextStyle = global::Sarand.BusinessMgr.Resource.Attribute.titleTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.toolbarId = global::Sarand.BusinessMgr.Resource.Attribute.toolbarId; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.toolbarNavigationButtonStyle = global::Sarand.BusinessMgr.Resource.Attribute.toolbarNavigationButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.toolbarStyle = global::Sarand.BusinessMgr.Resource.Attribute.toolbarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tooltipForegroundColor = global::Sarand.BusinessMgr.Resource.Attribute.tooltipForegroundColor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tooltipFrameBackground = global::Sarand.BusinessMgr.Resource.Attribute.tooltipFrameBackground; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.tooltipText = global::Sarand.BusinessMgr.Resource.Attribute.tooltipText; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.track = global::Sarand.BusinessMgr.Resource.Attribute.track; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.trackTint = global::Sarand.BusinessMgr.Resource.Attribute.trackTint; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.trackTintMode = global::Sarand.BusinessMgr.Resource.Attribute.trackTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.useCompatPadding = global::Sarand.BusinessMgr.Resource.Attribute.useCompatPadding; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.voiceIcon = global::Sarand.BusinessMgr.Resource.Attribute.voiceIcon; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowActionBar = global::Sarand.BusinessMgr.Resource.Attribute.windowActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowActionBarOverlay = global::Sarand.BusinessMgr.Resource.Attribute.windowActionBarOverlay; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowActionModeOverlay = global::Sarand.BusinessMgr.Resource.Attribute.windowActionModeOverlay; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowFixedHeightMajor = global::Sarand.BusinessMgr.Resource.Attribute.windowFixedHeightMajor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowFixedHeightMinor = global::Sarand.BusinessMgr.Resource.Attribute.windowFixedHeightMinor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowFixedWidthMajor = global::Sarand.BusinessMgr.Resource.Attribute.windowFixedWidthMajor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowFixedWidthMinor = global::Sarand.BusinessMgr.Resource.Attribute.windowFixedWidthMinor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowMinWidthMajor = global::Sarand.BusinessMgr.Resource.Attribute.windowMinWidthMajor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowMinWidthMinor = global::Sarand.BusinessMgr.Resource.Attribute.windowMinWidthMinor; + global::Xamarin.Forms.Platform.Android.Resource.Attribute.windowNoTitle = global::Sarand.BusinessMgr.Resource.Attribute.windowNoTitle; + global::Xamarin.Forms.Platform.Android.Resource.Boolean.abc_action_bar_embed_tabs = global::Sarand.BusinessMgr.Resource.Boolean.abc_action_bar_embed_tabs; + global::Xamarin.Forms.Platform.Android.Resource.Boolean.abc_allow_stacked_button_bar = global::Sarand.BusinessMgr.Resource.Boolean.abc_allow_stacked_button_bar; + global::Xamarin.Forms.Platform.Android.Resource.Boolean.abc_config_actionMenuItemAllCaps = global::Sarand.BusinessMgr.Resource.Boolean.abc_config_actionMenuItemAllCaps; + global::Xamarin.Forms.Platform.Android.Resource.Boolean.abc_config_closeDialogWhenTouchOutside = global::Sarand.BusinessMgr.Resource.Boolean.abc_config_closeDialogWhenTouchOutside; + global::Xamarin.Forms.Platform.Android.Resource.Boolean.abc_config_showMenuShortcutsWhenKeyboardPresent = global::Sarand.BusinessMgr.Resource.Boolean.abc_config_showMenuShortcutsWhenKeyboardPresent; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_background_cache_hint_selector_material_dark = global::Sarand.BusinessMgr.Resource.Color.abc_background_cache_hint_selector_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_background_cache_hint_selector_material_light = global::Sarand.BusinessMgr.Resource.Color.abc_background_cache_hint_selector_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_btn_colored_borderless_text_material = global::Sarand.BusinessMgr.Resource.Color.abc_btn_colored_borderless_text_material; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_btn_colored_text_material = global::Sarand.BusinessMgr.Resource.Color.abc_btn_colored_text_material; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_color_highlight_material = global::Sarand.BusinessMgr.Resource.Color.abc_color_highlight_material; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_hint_foreground_material_dark = global::Sarand.BusinessMgr.Resource.Color.abc_hint_foreground_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_hint_foreground_material_light = global::Sarand.BusinessMgr.Resource.Color.abc_hint_foreground_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_input_method_navigation_guard = global::Sarand.BusinessMgr.Resource.Color.abc_input_method_navigation_guard; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_primary_text_disable_only_material_dark = global::Sarand.BusinessMgr.Resource.Color.abc_primary_text_disable_only_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_primary_text_disable_only_material_light = global::Sarand.BusinessMgr.Resource.Color.abc_primary_text_disable_only_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_primary_text_material_dark = global::Sarand.BusinessMgr.Resource.Color.abc_primary_text_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_primary_text_material_light = global::Sarand.BusinessMgr.Resource.Color.abc_primary_text_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_search_url_text = global::Sarand.BusinessMgr.Resource.Color.abc_search_url_text; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_search_url_text_normal = global::Sarand.BusinessMgr.Resource.Color.abc_search_url_text_normal; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_search_url_text_pressed = global::Sarand.BusinessMgr.Resource.Color.abc_search_url_text_pressed; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_search_url_text_selected = global::Sarand.BusinessMgr.Resource.Color.abc_search_url_text_selected; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_secondary_text_material_dark = global::Sarand.BusinessMgr.Resource.Color.abc_secondary_text_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_secondary_text_material_light = global::Sarand.BusinessMgr.Resource.Color.abc_secondary_text_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_tint_btn_checkable = global::Sarand.BusinessMgr.Resource.Color.abc_tint_btn_checkable; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_tint_default = global::Sarand.BusinessMgr.Resource.Color.abc_tint_default; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_tint_edittext = global::Sarand.BusinessMgr.Resource.Color.abc_tint_edittext; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_tint_seek_thumb = global::Sarand.BusinessMgr.Resource.Color.abc_tint_seek_thumb; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_tint_spinner = global::Sarand.BusinessMgr.Resource.Color.abc_tint_spinner; + global::Xamarin.Forms.Platform.Android.Resource.Color.abc_tint_switch_track = global::Sarand.BusinessMgr.Resource.Color.abc_tint_switch_track; + global::Xamarin.Forms.Platform.Android.Resource.Color.accent_material_dark = global::Sarand.BusinessMgr.Resource.Color.accent_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.accent_material_light = global::Sarand.BusinessMgr.Resource.Color.accent_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.background_floating_material_dark = global::Sarand.BusinessMgr.Resource.Color.background_floating_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.background_floating_material_light = global::Sarand.BusinessMgr.Resource.Color.background_floating_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.background_material_dark = global::Sarand.BusinessMgr.Resource.Color.background_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.background_material_light = global::Sarand.BusinessMgr.Resource.Color.background_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.bright_foreground_disabled_material_dark = global::Sarand.BusinessMgr.Resource.Color.bright_foreground_disabled_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.bright_foreground_disabled_material_light = global::Sarand.BusinessMgr.Resource.Color.bright_foreground_disabled_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.bright_foreground_inverse_material_dark = global::Sarand.BusinessMgr.Resource.Color.bright_foreground_inverse_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.bright_foreground_inverse_material_light = global::Sarand.BusinessMgr.Resource.Color.bright_foreground_inverse_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.bright_foreground_material_dark = global::Sarand.BusinessMgr.Resource.Color.bright_foreground_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.bright_foreground_material_light = global::Sarand.BusinessMgr.Resource.Color.bright_foreground_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.button_material_dark = global::Sarand.BusinessMgr.Resource.Color.button_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.button_material_light = global::Sarand.BusinessMgr.Resource.Color.button_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.cardview_dark_background = global::Sarand.BusinessMgr.Resource.Color.cardview_dark_background; + global::Xamarin.Forms.Platform.Android.Resource.Color.cardview_light_background = global::Sarand.BusinessMgr.Resource.Color.cardview_light_background; + global::Xamarin.Forms.Platform.Android.Resource.Color.cardview_shadow_end_color = global::Sarand.BusinessMgr.Resource.Color.cardview_shadow_end_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.cardview_shadow_start_color = global::Sarand.BusinessMgr.Resource.Color.cardview_shadow_start_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_bottom_navigation_shadow_color = global::Sarand.BusinessMgr.Resource.Color.design_bottom_navigation_shadow_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_error = global::Sarand.BusinessMgr.Resource.Color.design_error; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_fab_shadow_end_color = global::Sarand.BusinessMgr.Resource.Color.design_fab_shadow_end_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_fab_shadow_mid_color = global::Sarand.BusinessMgr.Resource.Color.design_fab_shadow_mid_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_fab_shadow_start_color = global::Sarand.BusinessMgr.Resource.Color.design_fab_shadow_start_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_fab_stroke_end_inner_color = global::Sarand.BusinessMgr.Resource.Color.design_fab_stroke_end_inner_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_fab_stroke_end_outer_color = global::Sarand.BusinessMgr.Resource.Color.design_fab_stroke_end_outer_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_fab_stroke_top_inner_color = global::Sarand.BusinessMgr.Resource.Color.design_fab_stroke_top_inner_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_fab_stroke_top_outer_color = global::Sarand.BusinessMgr.Resource.Color.design_fab_stroke_top_outer_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_snackbar_background_color = global::Sarand.BusinessMgr.Resource.Color.design_snackbar_background_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.design_tint_password_toggle = global::Sarand.BusinessMgr.Resource.Color.design_tint_password_toggle; + global::Xamarin.Forms.Platform.Android.Resource.Color.dim_foreground_disabled_material_dark = global::Sarand.BusinessMgr.Resource.Color.dim_foreground_disabled_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.dim_foreground_disabled_material_light = global::Sarand.BusinessMgr.Resource.Color.dim_foreground_disabled_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.dim_foreground_material_dark = global::Sarand.BusinessMgr.Resource.Color.dim_foreground_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.dim_foreground_material_light = global::Sarand.BusinessMgr.Resource.Color.dim_foreground_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.error_color_material = global::Sarand.BusinessMgr.Resource.Color.error_color_material; + global::Xamarin.Forms.Platform.Android.Resource.Color.foreground_material_dark = global::Sarand.BusinessMgr.Resource.Color.foreground_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.foreground_material_light = global::Sarand.BusinessMgr.Resource.Color.foreground_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.highlighted_text_material_dark = global::Sarand.BusinessMgr.Resource.Color.highlighted_text_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.highlighted_text_material_light = global::Sarand.BusinessMgr.Resource.Color.highlighted_text_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_blue_grey_800 = global::Sarand.BusinessMgr.Resource.Color.material_blue_grey_800; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_blue_grey_900 = global::Sarand.BusinessMgr.Resource.Color.material_blue_grey_900; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_blue_grey_950 = global::Sarand.BusinessMgr.Resource.Color.material_blue_grey_950; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_deep_teal_200 = global::Sarand.BusinessMgr.Resource.Color.material_deep_teal_200; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_deep_teal_500 = global::Sarand.BusinessMgr.Resource.Color.material_deep_teal_500; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_grey_100 = global::Sarand.BusinessMgr.Resource.Color.material_grey_100; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_grey_300 = global::Sarand.BusinessMgr.Resource.Color.material_grey_300; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_grey_50 = global::Sarand.BusinessMgr.Resource.Color.material_grey_50; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_grey_600 = global::Sarand.BusinessMgr.Resource.Color.material_grey_600; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_grey_800 = global::Sarand.BusinessMgr.Resource.Color.material_grey_800; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_grey_850 = global::Sarand.BusinessMgr.Resource.Color.material_grey_850; + global::Xamarin.Forms.Platform.Android.Resource.Color.material_grey_900 = global::Sarand.BusinessMgr.Resource.Color.material_grey_900; + global::Xamarin.Forms.Platform.Android.Resource.Color.notification_action_color_filter = global::Sarand.BusinessMgr.Resource.Color.notification_action_color_filter; + global::Xamarin.Forms.Platform.Android.Resource.Color.notification_icon_bg_color = global::Sarand.BusinessMgr.Resource.Color.notification_icon_bg_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.notification_material_background_media_default_color = global::Sarand.BusinessMgr.Resource.Color.notification_material_background_media_default_color; + global::Xamarin.Forms.Platform.Android.Resource.Color.primary_dark_material_dark = global::Sarand.BusinessMgr.Resource.Color.primary_dark_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.primary_dark_material_light = global::Sarand.BusinessMgr.Resource.Color.primary_dark_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.primary_material_dark = global::Sarand.BusinessMgr.Resource.Color.primary_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.primary_material_light = global::Sarand.BusinessMgr.Resource.Color.primary_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.primary_text_default_material_dark = global::Sarand.BusinessMgr.Resource.Color.primary_text_default_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.primary_text_default_material_light = global::Sarand.BusinessMgr.Resource.Color.primary_text_default_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.primary_text_disabled_material_dark = global::Sarand.BusinessMgr.Resource.Color.primary_text_disabled_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.primary_text_disabled_material_light = global::Sarand.BusinessMgr.Resource.Color.primary_text_disabled_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.ripple_material_dark = global::Sarand.BusinessMgr.Resource.Color.ripple_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.ripple_material_light = global::Sarand.BusinessMgr.Resource.Color.ripple_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.secondary_text_default_material_dark = global::Sarand.BusinessMgr.Resource.Color.secondary_text_default_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.secondary_text_default_material_light = global::Sarand.BusinessMgr.Resource.Color.secondary_text_default_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.secondary_text_disabled_material_dark = global::Sarand.BusinessMgr.Resource.Color.secondary_text_disabled_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.secondary_text_disabled_material_light = global::Sarand.BusinessMgr.Resource.Color.secondary_text_disabled_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.switch_thumb_disabled_material_dark = global::Sarand.BusinessMgr.Resource.Color.switch_thumb_disabled_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.switch_thumb_disabled_material_light = global::Sarand.BusinessMgr.Resource.Color.switch_thumb_disabled_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.switch_thumb_material_dark = global::Sarand.BusinessMgr.Resource.Color.switch_thumb_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.switch_thumb_material_light = global::Sarand.BusinessMgr.Resource.Color.switch_thumb_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.switch_thumb_normal_material_dark = global::Sarand.BusinessMgr.Resource.Color.switch_thumb_normal_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.switch_thumb_normal_material_light = global::Sarand.BusinessMgr.Resource.Color.switch_thumb_normal_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Color.tooltip_background_dark = global::Sarand.BusinessMgr.Resource.Color.tooltip_background_dark; + global::Xamarin.Forms.Platform.Android.Resource.Color.tooltip_background_light = global::Sarand.BusinessMgr.Resource.Color.tooltip_background_light; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_content_inset_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_content_inset_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_content_inset_with_nav = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_content_inset_with_nav; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_default_height_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_default_height_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_default_padding_end_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_default_padding_end_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_default_padding_start_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_default_padding_start_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_elevation_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_elevation_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_icon_vertical_padding_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_icon_vertical_padding_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_overflow_padding_end_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_overflow_padding_end_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_overflow_padding_start_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_overflow_padding_start_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_progress_bar_size = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_progress_bar_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_stacked_max_height = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_stacked_max_height; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_stacked_tab_max_width = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_stacked_tab_max_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_subtitle_bottom_margin_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_subtitle_bottom_margin_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_bar_subtitle_top_margin_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_bar_subtitle_top_margin_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_button_min_height_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_button_min_height_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_button_min_width_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_button_min_width_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_action_button_min_width_overflow_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_action_button_min_width_overflow_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_alert_dialog_button_bar_height = global::Sarand.BusinessMgr.Resource.Dimension.abc_alert_dialog_button_bar_height; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_button_inset_horizontal_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_button_inset_horizontal_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_button_inset_vertical_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_button_inset_vertical_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_button_padding_horizontal_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_button_padding_horizontal_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_button_padding_vertical_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_button_padding_vertical_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_cascading_menus_min_smallest_width = global::Sarand.BusinessMgr.Resource.Dimension.abc_cascading_menus_min_smallest_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_config_prefDialogWidth = global::Sarand.BusinessMgr.Resource.Dimension.abc_config_prefDialogWidth; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_control_corner_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_control_corner_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_control_inset_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_control_inset_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_control_padding_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_control_padding_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_fixed_height_major = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_fixed_height_major; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_fixed_height_minor = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_fixed_height_minor; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_fixed_width_major = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_fixed_width_major; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_fixed_width_minor = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_fixed_width_minor; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_list_padding_bottom_no_buttons = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_list_padding_bottom_no_buttons; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_list_padding_top_no_title = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_list_padding_top_no_title; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_min_width_major = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_min_width_major; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_min_width_minor = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_min_width_minor; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_padding_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_padding_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_padding_top_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_padding_top_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dialog_title_divider_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_dialog_title_divider_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_disabled_alpha_material_dark = global::Sarand.BusinessMgr.Resource.Dimension.abc_disabled_alpha_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_disabled_alpha_material_light = global::Sarand.BusinessMgr.Resource.Dimension.abc_disabled_alpha_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dropdownitem_icon_width = global::Sarand.BusinessMgr.Resource.Dimension.abc_dropdownitem_icon_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dropdownitem_text_padding_left = global::Sarand.BusinessMgr.Resource.Dimension.abc_dropdownitem_text_padding_left; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_dropdownitem_text_padding_right = global::Sarand.BusinessMgr.Resource.Dimension.abc_dropdownitem_text_padding_right; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_edit_text_inset_bottom_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_edit_text_inset_bottom_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_edit_text_inset_horizontal_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_edit_text_inset_horizontal_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_edit_text_inset_top_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_edit_text_inset_top_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_floating_window_z = global::Sarand.BusinessMgr.Resource.Dimension.abc_floating_window_z; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_list_item_padding_horizontal_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_list_item_padding_horizontal_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_panel_menu_list_width = global::Sarand.BusinessMgr.Resource.Dimension.abc_panel_menu_list_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_progress_bar_height_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_progress_bar_height_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_search_view_preferred_height = global::Sarand.BusinessMgr.Resource.Dimension.abc_search_view_preferred_height; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_search_view_preferred_width = global::Sarand.BusinessMgr.Resource.Dimension.abc_search_view_preferred_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_seekbar_track_background_height_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_seekbar_track_background_height_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_seekbar_track_progress_height_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_seekbar_track_progress_height_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_select_dialog_padding_start_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_select_dialog_padding_start_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_switch_padding = global::Sarand.BusinessMgr.Resource.Dimension.abc_switch_padding; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_body_1_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_body_1_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_body_2_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_body_2_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_button_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_button_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_caption_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_caption_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_display_1_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_display_1_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_display_2_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_display_2_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_display_3_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_display_3_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_display_4_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_display_4_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_headline_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_headline_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_large_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_large_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_medium_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_medium_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_menu_header_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_menu_header_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_menu_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_menu_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_small_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_small_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_subhead_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_subhead_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_subtitle_material_toolbar = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_subtitle_material_toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_title_material = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_title_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.abc_text_size_title_material_toolbar = global::Sarand.BusinessMgr.Resource.Dimension.abc_text_size_title_material_toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.cardview_compat_inset_shadow = global::Sarand.BusinessMgr.Resource.Dimension.cardview_compat_inset_shadow; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.cardview_default_elevation = global::Sarand.BusinessMgr.Resource.Dimension.cardview_default_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.cardview_default_radius = global::Sarand.BusinessMgr.Resource.Dimension.cardview_default_radius; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.compat_button_inset_horizontal_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_button_inset_horizontal_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.compat_button_inset_vertical_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_button_inset_vertical_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.compat_button_padding_horizontal_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_button_padding_horizontal_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.compat_button_padding_vertical_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_button_padding_vertical_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.compat_control_corner_material = global::Sarand.BusinessMgr.Resource.Dimension.compat_control_corner_material; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_appbar_elevation = global::Sarand.BusinessMgr.Resource.Dimension.design_appbar_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_navigation_active_item_max_width = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_navigation_active_item_max_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_navigation_active_text_size = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_navigation_active_text_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_navigation_elevation = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_navigation_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_navigation_height = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_navigation_height; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_navigation_item_max_width = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_navigation_item_max_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_navigation_item_min_width = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_navigation_item_min_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_navigation_margin = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_navigation_margin; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_navigation_shadow_height = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_navigation_shadow_height; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_navigation_text_size = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_navigation_text_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_sheet_modal_elevation = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_sheet_modal_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_bottom_sheet_peek_height_min = global::Sarand.BusinessMgr.Resource.Dimension.design_bottom_sheet_peek_height_min; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_fab_border_width = global::Sarand.BusinessMgr.Resource.Dimension.design_fab_border_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_fab_elevation = global::Sarand.BusinessMgr.Resource.Dimension.design_fab_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_fab_image_size = global::Sarand.BusinessMgr.Resource.Dimension.design_fab_image_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_fab_size_mini = global::Sarand.BusinessMgr.Resource.Dimension.design_fab_size_mini; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_fab_size_normal = global::Sarand.BusinessMgr.Resource.Dimension.design_fab_size_normal; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_fab_translation_z_pressed = global::Sarand.BusinessMgr.Resource.Dimension.design_fab_translation_z_pressed; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_navigation_elevation = global::Sarand.BusinessMgr.Resource.Dimension.design_navigation_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_navigation_icon_padding = global::Sarand.BusinessMgr.Resource.Dimension.design_navigation_icon_padding; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_navigation_icon_size = global::Sarand.BusinessMgr.Resource.Dimension.design_navigation_icon_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_navigation_max_width = global::Sarand.BusinessMgr.Resource.Dimension.design_navigation_max_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_navigation_padding_bottom = global::Sarand.BusinessMgr.Resource.Dimension.design_navigation_padding_bottom; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_navigation_separator_vertical_padding = global::Sarand.BusinessMgr.Resource.Dimension.design_navigation_separator_vertical_padding; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_action_inline_max_width = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_action_inline_max_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_background_corner_radius = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_background_corner_radius; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_elevation = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_extra_spacing_horizontal = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_extra_spacing_horizontal; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_max_width = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_max_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_min_width = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_min_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_padding_horizontal = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_padding_horizontal; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_padding_vertical = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_padding_vertical; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_padding_vertical_2lines = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_padding_vertical_2lines; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_snackbar_text_size = global::Sarand.BusinessMgr.Resource.Dimension.design_snackbar_text_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_tab_max_width = global::Sarand.BusinessMgr.Resource.Dimension.design_tab_max_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_tab_scrollable_min_width = global::Sarand.BusinessMgr.Resource.Dimension.design_tab_scrollable_min_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_tab_text_size = global::Sarand.BusinessMgr.Resource.Dimension.design_tab_text_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.design_tab_text_size_2line = global::Sarand.BusinessMgr.Resource.Dimension.design_tab_text_size_2line; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.disabled_alpha_material_dark = global::Sarand.BusinessMgr.Resource.Dimension.disabled_alpha_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.disabled_alpha_material_light = global::Sarand.BusinessMgr.Resource.Dimension.disabled_alpha_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.fastscroll_default_thickness = global::Sarand.BusinessMgr.Resource.Dimension.fastscroll_default_thickness; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.fastscroll_margin = global::Sarand.BusinessMgr.Resource.Dimension.fastscroll_margin; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.fastscroll_minimum_range = global::Sarand.BusinessMgr.Resource.Dimension.fastscroll_minimum_range; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.highlight_alpha_material_colored = global::Sarand.BusinessMgr.Resource.Dimension.highlight_alpha_material_colored; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.highlight_alpha_material_dark = global::Sarand.BusinessMgr.Resource.Dimension.highlight_alpha_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.highlight_alpha_material_light = global::Sarand.BusinessMgr.Resource.Dimension.highlight_alpha_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.hint_alpha_material_dark = global::Sarand.BusinessMgr.Resource.Dimension.hint_alpha_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.hint_alpha_material_light = global::Sarand.BusinessMgr.Resource.Dimension.hint_alpha_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.hint_pressed_alpha_material_dark = global::Sarand.BusinessMgr.Resource.Dimension.hint_pressed_alpha_material_dark; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.hint_pressed_alpha_material_light = global::Sarand.BusinessMgr.Resource.Dimension.hint_pressed_alpha_material_light; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.item_touch_helper_max_drag_scroll_per_frame = global::Sarand.BusinessMgr.Resource.Dimension.item_touch_helper_max_drag_scroll_per_frame; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.item_touch_helper_swipe_escape_max_velocity = global::Sarand.BusinessMgr.Resource.Dimension.item_touch_helper_swipe_escape_max_velocity; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.item_touch_helper_swipe_escape_velocity = global::Sarand.BusinessMgr.Resource.Dimension.item_touch_helper_swipe_escape_velocity; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_action_icon_size = global::Sarand.BusinessMgr.Resource.Dimension.notification_action_icon_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_action_text_size = global::Sarand.BusinessMgr.Resource.Dimension.notification_action_text_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_big_circle_margin = global::Sarand.BusinessMgr.Resource.Dimension.notification_big_circle_margin; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_content_margin_start = global::Sarand.BusinessMgr.Resource.Dimension.notification_content_margin_start; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_large_icon_height = global::Sarand.BusinessMgr.Resource.Dimension.notification_large_icon_height; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_large_icon_width = global::Sarand.BusinessMgr.Resource.Dimension.notification_large_icon_width; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_main_column_padding_top = global::Sarand.BusinessMgr.Resource.Dimension.notification_main_column_padding_top; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_media_narrow_margin = global::Sarand.BusinessMgr.Resource.Dimension.notification_media_narrow_margin; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_right_icon_size = global::Sarand.BusinessMgr.Resource.Dimension.notification_right_icon_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_right_side_padding_top = global::Sarand.BusinessMgr.Resource.Dimension.notification_right_side_padding_top; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_small_icon_background_padding = global::Sarand.BusinessMgr.Resource.Dimension.notification_small_icon_background_padding; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_small_icon_size_as_large = global::Sarand.BusinessMgr.Resource.Dimension.notification_small_icon_size_as_large; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_subtext_size = global::Sarand.BusinessMgr.Resource.Dimension.notification_subtext_size; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_top_pad = global::Sarand.BusinessMgr.Resource.Dimension.notification_top_pad; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.notification_top_pad_large_text = global::Sarand.BusinessMgr.Resource.Dimension.notification_top_pad_large_text; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.tooltip_corner_radius = global::Sarand.BusinessMgr.Resource.Dimension.tooltip_corner_radius; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.tooltip_horizontal_padding = global::Sarand.BusinessMgr.Resource.Dimension.tooltip_horizontal_padding; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.tooltip_margin = global::Sarand.BusinessMgr.Resource.Dimension.tooltip_margin; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.tooltip_precise_anchor_extra_offset = global::Sarand.BusinessMgr.Resource.Dimension.tooltip_precise_anchor_extra_offset; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.tooltip_precise_anchor_threshold = global::Sarand.BusinessMgr.Resource.Dimension.tooltip_precise_anchor_threshold; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.tooltip_vertical_padding = global::Sarand.BusinessMgr.Resource.Dimension.tooltip_vertical_padding; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.tooltip_y_offset_non_touch = global::Sarand.BusinessMgr.Resource.Dimension.tooltip_y_offset_non_touch; + global::Xamarin.Forms.Platform.Android.Resource.Dimension.tooltip_y_offset_touch = global::Sarand.BusinessMgr.Resource.Dimension.tooltip_y_offset_touch; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ab_share_pack_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_ab_share_pack_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_action_bar_item_background_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_action_bar_item_background_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_borderless_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_borderless_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_check_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_check_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_check_to_on_mtrl_000 = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_check_to_on_mtrl_000; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_check_to_on_mtrl_015 = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_check_to_on_mtrl_015; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_colored_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_colored_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_default_mtrl_shape = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_default_mtrl_shape; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_radio_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_radio_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_radio_to_on_mtrl_000 = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_radio_to_on_mtrl_000; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_radio_to_on_mtrl_015 = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_radio_to_on_mtrl_015; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_switch_to_on_mtrl_00001 = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_switch_to_on_mtrl_00001; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_btn_switch_to_on_mtrl_00012 = global::Sarand.BusinessMgr.Resource.Drawable.abc_btn_switch_to_on_mtrl_00012; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_cab_background_internal_bg = global::Sarand.BusinessMgr.Resource.Drawable.abc_cab_background_internal_bg; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_cab_background_top_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_cab_background_top_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_cab_background_top_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_cab_background_top_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_control_background_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_control_background_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_dialog_material_background = global::Sarand.BusinessMgr.Resource.Drawable.abc_dialog_material_background; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_edit_text_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_edit_text_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_ab_back_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_ab_back_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_arrow_drop_right_black_24dp = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_arrow_drop_right_black_24dp; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_clear_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_clear_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_commit_search_api_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_commit_search_api_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_go_search_api_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_go_search_api_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_menu_copy_mtrl_am_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_menu_copy_mtrl_am_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_menu_cut_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_menu_cut_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_menu_overflow_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_menu_overflow_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_menu_paste_mtrl_am_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_menu_paste_mtrl_am_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_menu_selectall_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_menu_selectall_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_menu_share_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_menu_share_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_search_api_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_search_api_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_star_black_16dp = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_star_black_16dp; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_star_black_36dp = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_star_black_36dp; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_star_black_48dp = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_star_black_48dp; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_star_half_black_16dp = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_star_half_black_16dp; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_star_half_black_36dp = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_star_half_black_36dp; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_star_half_black_48dp = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_star_half_black_48dp; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ic_voice_search_api_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_ic_voice_search_api_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_item_background_holo_dark = global::Sarand.BusinessMgr.Resource.Drawable.abc_item_background_holo_dark; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_item_background_holo_light = global::Sarand.BusinessMgr.Resource.Drawable.abc_item_background_holo_light; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_divider_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_divider_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_focused_holo = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_focused_holo; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_longpressed_holo = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_longpressed_holo; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_pressed_holo_dark = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_pressed_holo_dark; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_pressed_holo_light = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_pressed_holo_light; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_selector_background_transition_holo_dark = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_selector_background_transition_holo_dark; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_selector_background_transition_holo_light = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_selector_background_transition_holo_light; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_selector_disabled_holo_dark = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_selector_disabled_holo_dark; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_selector_disabled_holo_light = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_selector_disabled_holo_light; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_selector_holo_dark = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_selector_holo_dark; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_list_selector_holo_light = global::Sarand.BusinessMgr.Resource.Drawable.abc_list_selector_holo_light; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_menu_hardkey_panel_mtrl_mult = global::Sarand.BusinessMgr.Resource.Drawable.abc_menu_hardkey_panel_mtrl_mult; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_popup_background_mtrl_mult = global::Sarand.BusinessMgr.Resource.Drawable.abc_popup_background_mtrl_mult; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ratingbar_indicator_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_ratingbar_indicator_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ratingbar_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_ratingbar_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_ratingbar_small_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_ratingbar_small_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_scrubber_control_off_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_scrubber_control_off_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_scrubber_control_to_pressed_mtrl_000 = global::Sarand.BusinessMgr.Resource.Drawable.abc_scrubber_control_to_pressed_mtrl_000; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_scrubber_control_to_pressed_mtrl_005 = global::Sarand.BusinessMgr.Resource.Drawable.abc_scrubber_control_to_pressed_mtrl_005; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_scrubber_primary_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_scrubber_primary_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_scrubber_track_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_scrubber_track_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_seekbar_thumb_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_seekbar_thumb_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_seekbar_tick_mark_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_seekbar_tick_mark_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_seekbar_track_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_seekbar_track_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_spinner_mtrl_am_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_spinner_mtrl_am_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_spinner_textfield_background_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_spinner_textfield_background_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_switch_thumb_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_switch_thumb_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_switch_track_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_switch_track_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_tab_indicator_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_tab_indicator_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_tab_indicator_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_tab_indicator_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_text_cursor_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_text_cursor_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_text_select_handle_left_mtrl_dark = global::Sarand.BusinessMgr.Resource.Drawable.abc_text_select_handle_left_mtrl_dark; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_text_select_handle_left_mtrl_light = global::Sarand.BusinessMgr.Resource.Drawable.abc_text_select_handle_left_mtrl_light; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_text_select_handle_middle_mtrl_dark = global::Sarand.BusinessMgr.Resource.Drawable.abc_text_select_handle_middle_mtrl_dark; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_text_select_handle_middle_mtrl_light = global::Sarand.BusinessMgr.Resource.Drawable.abc_text_select_handle_middle_mtrl_light; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_text_select_handle_right_mtrl_dark = global::Sarand.BusinessMgr.Resource.Drawable.abc_text_select_handle_right_mtrl_dark; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_text_select_handle_right_mtrl_light = global::Sarand.BusinessMgr.Resource.Drawable.abc_text_select_handle_right_mtrl_light; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_textfield_activated_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_textfield_activated_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_textfield_default_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_textfield_default_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_textfield_search_activated_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_textfield_search_activated_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_textfield_search_default_mtrl_alpha = global::Sarand.BusinessMgr.Resource.Drawable.abc_textfield_search_default_mtrl_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_textfield_search_material = global::Sarand.BusinessMgr.Resource.Drawable.abc_textfield_search_material; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.abc_vector_test = global::Sarand.BusinessMgr.Resource.Drawable.abc_vector_test; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.avd_hide_password = global::Sarand.BusinessMgr.Resource.Drawable.avd_hide_password; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.avd_hide_password_1 = global::Sarand.BusinessMgr.Resource.Drawable.avd_hide_password_1; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.avd_hide_password_2 = global::Sarand.BusinessMgr.Resource.Drawable.avd_hide_password_2; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.avd_hide_password_3 = global::Sarand.BusinessMgr.Resource.Drawable.avd_hide_password_3; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.avd_show_password = global::Sarand.BusinessMgr.Resource.Drawable.avd_show_password; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.avd_show_password_1 = global::Sarand.BusinessMgr.Resource.Drawable.avd_show_password_1; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.avd_show_password_2 = global::Sarand.BusinessMgr.Resource.Drawable.avd_show_password_2; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.avd_show_password_3 = global::Sarand.BusinessMgr.Resource.Drawable.avd_show_password_3; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.design_bottom_navigation_item_background = global::Sarand.BusinessMgr.Resource.Drawable.design_bottom_navigation_item_background; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.design_fab_background = global::Sarand.BusinessMgr.Resource.Drawable.design_fab_background; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.design_ic_visibility = global::Sarand.BusinessMgr.Resource.Drawable.design_ic_visibility; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.design_ic_visibility_off = global::Sarand.BusinessMgr.Resource.Drawable.design_ic_visibility_off; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.design_password_eye = global::Sarand.BusinessMgr.Resource.Drawable.design_password_eye; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.design_snackbar_background = global::Sarand.BusinessMgr.Resource.Drawable.design_snackbar_background; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.navigation_empty_icon = global::Sarand.BusinessMgr.Resource.Drawable.navigation_empty_icon; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_action_background = global::Sarand.BusinessMgr.Resource.Drawable.notification_action_background; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_bg = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_bg_low = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_low; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_bg_low_normal = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_low_normal; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_bg_low_pressed = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_low_pressed; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_bg_normal = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_normal; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_bg_normal_pressed = global::Sarand.BusinessMgr.Resource.Drawable.notification_bg_normal_pressed; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_icon_background = global::Sarand.BusinessMgr.Resource.Drawable.notification_icon_background; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_template_icon_bg = global::Sarand.BusinessMgr.Resource.Drawable.notification_template_icon_bg; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_template_icon_low_bg = global::Sarand.BusinessMgr.Resource.Drawable.notification_template_icon_low_bg; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notification_tile_bg = global::Sarand.BusinessMgr.Resource.Drawable.notification_tile_bg; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.notify_panel_notification_icon_bg = global::Sarand.BusinessMgr.Resource.Drawable.notify_panel_notification_icon_bg; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.tooltip_frame_dark = global::Sarand.BusinessMgr.Resource.Drawable.tooltip_frame_dark; + global::Xamarin.Forms.Platform.Android.Resource.Drawable.tooltip_frame_light = global::Sarand.BusinessMgr.Resource.Drawable.tooltip_frame_light; + global::Xamarin.Forms.Platform.Android.Resource.Id.ALT = global::Sarand.BusinessMgr.Resource.Id.ALT; + global::Xamarin.Forms.Platform.Android.Resource.Id.CTRL = global::Sarand.BusinessMgr.Resource.Id.CTRL; + global::Xamarin.Forms.Platform.Android.Resource.Id.FUNCTION = global::Sarand.BusinessMgr.Resource.Id.FUNCTION; + global::Xamarin.Forms.Platform.Android.Resource.Id.META = global::Sarand.BusinessMgr.Resource.Id.META; + global::Xamarin.Forms.Platform.Android.Resource.Id.SHIFT = global::Sarand.BusinessMgr.Resource.Id.SHIFT; + global::Xamarin.Forms.Platform.Android.Resource.Id.SYM = global::Sarand.BusinessMgr.Resource.Id.SYM; + global::Xamarin.Forms.Platform.Android.Resource.Id.action0 = global::Sarand.BusinessMgr.Resource.Id.action0; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_bar = global::Sarand.BusinessMgr.Resource.Id.action_bar; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_bar_activity_content = global::Sarand.BusinessMgr.Resource.Id.action_bar_activity_content; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_bar_container = global::Sarand.BusinessMgr.Resource.Id.action_bar_container; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_bar_root = global::Sarand.BusinessMgr.Resource.Id.action_bar_root; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_bar_spinner = global::Sarand.BusinessMgr.Resource.Id.action_bar_spinner; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_bar_subtitle = global::Sarand.BusinessMgr.Resource.Id.action_bar_subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_bar_title = global::Sarand.BusinessMgr.Resource.Id.action_bar_title; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_container = global::Sarand.BusinessMgr.Resource.Id.action_container; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_context_bar = global::Sarand.BusinessMgr.Resource.Id.action_context_bar; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_divider = global::Sarand.BusinessMgr.Resource.Id.action_divider; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_image = global::Sarand.BusinessMgr.Resource.Id.action_image; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_menu_divider = global::Sarand.BusinessMgr.Resource.Id.action_menu_divider; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_menu_presenter = global::Sarand.BusinessMgr.Resource.Id.action_menu_presenter; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_mode_bar = global::Sarand.BusinessMgr.Resource.Id.action_mode_bar; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_mode_bar_stub = global::Sarand.BusinessMgr.Resource.Id.action_mode_bar_stub; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_mode_close_button = global::Sarand.BusinessMgr.Resource.Id.action_mode_close_button; + global::Xamarin.Forms.Platform.Android.Resource.Id.action_text = global::Sarand.BusinessMgr.Resource.Id.action_text; + global::Xamarin.Forms.Platform.Android.Resource.Id.actions = global::Sarand.BusinessMgr.Resource.Id.actions; + global::Xamarin.Forms.Platform.Android.Resource.Id.activity_chooser_view_content = global::Sarand.BusinessMgr.Resource.Id.activity_chooser_view_content; + global::Xamarin.Forms.Platform.Android.Resource.Id.add = global::Sarand.BusinessMgr.Resource.Id.add; + global::Xamarin.Forms.Platform.Android.Resource.Id.alertTitle = global::Sarand.BusinessMgr.Resource.Id.alertTitle; + global::Xamarin.Forms.Platform.Android.Resource.Id.all = global::Sarand.BusinessMgr.Resource.Id.all; + global::Xamarin.Forms.Platform.Android.Resource.Id.always = global::Sarand.BusinessMgr.Resource.Id.always; + global::Xamarin.Forms.Platform.Android.Resource.Id.async = global::Sarand.BusinessMgr.Resource.Id.async; + global::Xamarin.Forms.Platform.Android.Resource.Id.auto = global::Sarand.BusinessMgr.Resource.Id.auto; + global::Xamarin.Forms.Platform.Android.Resource.Id.beginning = global::Sarand.BusinessMgr.Resource.Id.beginning; + global::Xamarin.Forms.Platform.Android.Resource.Id.blocking = global::Sarand.BusinessMgr.Resource.Id.blocking; + global::Xamarin.Forms.Platform.Android.Resource.Id.bottom = global::Sarand.BusinessMgr.Resource.Id.bottom; + global::Xamarin.Forms.Platform.Android.Resource.Id.bottomtab_navarea = global::Sarand.BusinessMgr.Resource.Id.bottomtab_navarea; + global::Xamarin.Forms.Platform.Android.Resource.Id.bottomtab_tabbar = global::Sarand.BusinessMgr.Resource.Id.bottomtab_tabbar; + global::Xamarin.Forms.Platform.Android.Resource.Id.buttonPanel = global::Sarand.BusinessMgr.Resource.Id.buttonPanel; + global::Xamarin.Forms.Platform.Android.Resource.Id.cancel_action = global::Sarand.BusinessMgr.Resource.Id.cancel_action; + global::Xamarin.Forms.Platform.Android.Resource.Id.center = global::Sarand.BusinessMgr.Resource.Id.center; + global::Xamarin.Forms.Platform.Android.Resource.Id.center_horizontal = global::Sarand.BusinessMgr.Resource.Id.center_horizontal; + global::Xamarin.Forms.Platform.Android.Resource.Id.center_vertical = global::Sarand.BusinessMgr.Resource.Id.center_vertical; + global::Xamarin.Forms.Platform.Android.Resource.Id.checkbox = global::Sarand.BusinessMgr.Resource.Id.checkbox; + global::Xamarin.Forms.Platform.Android.Resource.Id.chronometer = global::Sarand.BusinessMgr.Resource.Id.chronometer; + global::Xamarin.Forms.Platform.Android.Resource.Id.clip_horizontal = global::Sarand.BusinessMgr.Resource.Id.clip_horizontal; + global::Xamarin.Forms.Platform.Android.Resource.Id.clip_vertical = global::Sarand.BusinessMgr.Resource.Id.clip_vertical; + global::Xamarin.Forms.Platform.Android.Resource.Id.collapseActionView = global::Sarand.BusinessMgr.Resource.Id.collapseActionView; + global::Xamarin.Forms.Platform.Android.Resource.Id.container = global::Sarand.BusinessMgr.Resource.Id.container; + global::Xamarin.Forms.Platform.Android.Resource.Id.contentPanel = global::Sarand.BusinessMgr.Resource.Id.contentPanel; + global::Xamarin.Forms.Platform.Android.Resource.Id.coordinator = global::Sarand.BusinessMgr.Resource.Id.coordinator; + global::Xamarin.Forms.Platform.Android.Resource.Id.custom = global::Sarand.BusinessMgr.Resource.Id.custom; + global::Xamarin.Forms.Platform.Android.Resource.Id.customPanel = global::Sarand.BusinessMgr.Resource.Id.customPanel; + global::Xamarin.Forms.Platform.Android.Resource.Id.decor_content_parent = global::Sarand.BusinessMgr.Resource.Id.decor_content_parent; + global::Xamarin.Forms.Platform.Android.Resource.Id.default_activity_button = global::Sarand.BusinessMgr.Resource.Id.default_activity_button; + global::Xamarin.Forms.Platform.Android.Resource.Id.design_bottom_sheet = global::Sarand.BusinessMgr.Resource.Id.design_bottom_sheet; + global::Xamarin.Forms.Platform.Android.Resource.Id.design_menu_item_action_area = global::Sarand.BusinessMgr.Resource.Id.design_menu_item_action_area; + global::Xamarin.Forms.Platform.Android.Resource.Id.design_menu_item_action_area_stub = global::Sarand.BusinessMgr.Resource.Id.design_menu_item_action_area_stub; + global::Xamarin.Forms.Platform.Android.Resource.Id.design_menu_item_text = global::Sarand.BusinessMgr.Resource.Id.design_menu_item_text; + global::Xamarin.Forms.Platform.Android.Resource.Id.design_navigation_view = global::Sarand.BusinessMgr.Resource.Id.design_navigation_view; + global::Xamarin.Forms.Platform.Android.Resource.Id.disableHome = global::Sarand.BusinessMgr.Resource.Id.disableHome; + global::Xamarin.Forms.Platform.Android.Resource.Id.edit_query = global::Sarand.BusinessMgr.Resource.Id.edit_query; + global::Xamarin.Forms.Platform.Android.Resource.Id.end = global::Sarand.BusinessMgr.Resource.Id.end; + global::Xamarin.Forms.Platform.Android.Resource.Id.end_padder = global::Sarand.BusinessMgr.Resource.Id.end_padder; + global::Xamarin.Forms.Platform.Android.Resource.Id.enterAlways = global::Sarand.BusinessMgr.Resource.Id.enterAlways; + global::Xamarin.Forms.Platform.Android.Resource.Id.enterAlwaysCollapsed = global::Sarand.BusinessMgr.Resource.Id.enterAlwaysCollapsed; + global::Xamarin.Forms.Platform.Android.Resource.Id.exitUntilCollapsed = global::Sarand.BusinessMgr.Resource.Id.exitUntilCollapsed; + global::Xamarin.Forms.Platform.Android.Resource.Id.expand_activities_button = global::Sarand.BusinessMgr.Resource.Id.expand_activities_button; + global::Xamarin.Forms.Platform.Android.Resource.Id.expanded_menu = global::Sarand.BusinessMgr.Resource.Id.expanded_menu; + global::Xamarin.Forms.Platform.Android.Resource.Id.fill = global::Sarand.BusinessMgr.Resource.Id.fill; + global::Xamarin.Forms.Platform.Android.Resource.Id.fill_horizontal = global::Sarand.BusinessMgr.Resource.Id.fill_horizontal; + global::Xamarin.Forms.Platform.Android.Resource.Id.fill_vertical = global::Sarand.BusinessMgr.Resource.Id.fill_vertical; + global::Xamarin.Forms.Platform.Android.Resource.Id.@fixed = global::Sarand.BusinessMgr.Resource.Id.@fixed; + global::Xamarin.Forms.Platform.Android.Resource.Id.flyoutcontent_appbar = global::Sarand.BusinessMgr.Resource.Id.flyoutcontent_appbar; + global::Xamarin.Forms.Platform.Android.Resource.Id.flyoutcontent_recycler = global::Sarand.BusinessMgr.Resource.Id.flyoutcontent_recycler; + global::Xamarin.Forms.Platform.Android.Resource.Id.forever = global::Sarand.BusinessMgr.Resource.Id.forever; + global::Xamarin.Forms.Platform.Android.Resource.Id.ghost_view = global::Sarand.BusinessMgr.Resource.Id.ghost_view; + global::Xamarin.Forms.Platform.Android.Resource.Id.home = global::Sarand.BusinessMgr.Resource.Id.home; + global::Xamarin.Forms.Platform.Android.Resource.Id.homeAsUp = global::Sarand.BusinessMgr.Resource.Id.homeAsUp; + global::Xamarin.Forms.Platform.Android.Resource.Id.icon = global::Sarand.BusinessMgr.Resource.Id.icon; + global::Xamarin.Forms.Platform.Android.Resource.Id.icon_group = global::Sarand.BusinessMgr.Resource.Id.icon_group; + global::Xamarin.Forms.Platform.Android.Resource.Id.ifRoom = global::Sarand.BusinessMgr.Resource.Id.ifRoom; + global::Xamarin.Forms.Platform.Android.Resource.Id.image = global::Sarand.BusinessMgr.Resource.Id.image; + global::Xamarin.Forms.Platform.Android.Resource.Id.info = global::Sarand.BusinessMgr.Resource.Id.info; + global::Xamarin.Forms.Platform.Android.Resource.Id.italic = global::Sarand.BusinessMgr.Resource.Id.italic; + global::Xamarin.Forms.Platform.Android.Resource.Id.item_touch_helper_previous_elevation = global::Sarand.BusinessMgr.Resource.Id.item_touch_helper_previous_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Id.largeLabel = global::Sarand.BusinessMgr.Resource.Id.largeLabel; + global::Xamarin.Forms.Platform.Android.Resource.Id.left = global::Sarand.BusinessMgr.Resource.Id.left; + global::Xamarin.Forms.Platform.Android.Resource.Id.line1 = global::Sarand.BusinessMgr.Resource.Id.line1; + global::Xamarin.Forms.Platform.Android.Resource.Id.line3 = global::Sarand.BusinessMgr.Resource.Id.line3; + global::Xamarin.Forms.Platform.Android.Resource.Id.listMode = global::Sarand.BusinessMgr.Resource.Id.listMode; + global::Xamarin.Forms.Platform.Android.Resource.Id.list_item = global::Sarand.BusinessMgr.Resource.Id.list_item; + global::Xamarin.Forms.Platform.Android.Resource.Id.main_appbar = global::Sarand.BusinessMgr.Resource.Id.main_appbar; + global::Xamarin.Forms.Platform.Android.Resource.Id.main_scrollview = global::Sarand.BusinessMgr.Resource.Id.main_scrollview; + global::Xamarin.Forms.Platform.Android.Resource.Id.main_tablayout = global::Sarand.BusinessMgr.Resource.Id.main_tablayout; + global::Xamarin.Forms.Platform.Android.Resource.Id.main_toolbar = global::Sarand.BusinessMgr.Resource.Id.main_toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Id.masked = global::Sarand.BusinessMgr.Resource.Id.masked; + global::Xamarin.Forms.Platform.Android.Resource.Id.media_actions = global::Sarand.BusinessMgr.Resource.Id.media_actions; + global::Xamarin.Forms.Platform.Android.Resource.Id.message = global::Sarand.BusinessMgr.Resource.Id.message; + global::Xamarin.Forms.Platform.Android.Resource.Id.middle = global::Sarand.BusinessMgr.Resource.Id.middle; + global::Xamarin.Forms.Platform.Android.Resource.Id.mini = global::Sarand.BusinessMgr.Resource.Id.mini; + global::Xamarin.Forms.Platform.Android.Resource.Id.multiply = global::Sarand.BusinessMgr.Resource.Id.multiply; + global::Xamarin.Forms.Platform.Android.Resource.Id.navigation_header_container = global::Sarand.BusinessMgr.Resource.Id.navigation_header_container; + global::Xamarin.Forms.Platform.Android.Resource.Id.never = global::Sarand.BusinessMgr.Resource.Id.never; + global::Xamarin.Forms.Platform.Android.Resource.Id.none = global::Sarand.BusinessMgr.Resource.Id.none; + global::Xamarin.Forms.Platform.Android.Resource.Id.normal = global::Sarand.BusinessMgr.Resource.Id.normal; + global::Xamarin.Forms.Platform.Android.Resource.Id.notification_background = global::Sarand.BusinessMgr.Resource.Id.notification_background; + global::Xamarin.Forms.Platform.Android.Resource.Id.notification_main_column = global::Sarand.BusinessMgr.Resource.Id.notification_main_column; + global::Xamarin.Forms.Platform.Android.Resource.Id.notification_main_column_container = global::Sarand.BusinessMgr.Resource.Id.notification_main_column_container; + global::Xamarin.Forms.Platform.Android.Resource.Id.parallax = global::Sarand.BusinessMgr.Resource.Id.parallax; + global::Xamarin.Forms.Platform.Android.Resource.Id.parentPanel = global::Sarand.BusinessMgr.Resource.Id.parentPanel; + global::Xamarin.Forms.Platform.Android.Resource.Id.parent_matrix = global::Sarand.BusinessMgr.Resource.Id.parent_matrix; + global::Xamarin.Forms.Platform.Android.Resource.Id.pin = global::Sarand.BusinessMgr.Resource.Id.pin; + global::Xamarin.Forms.Platform.Android.Resource.Id.progress_circular = global::Sarand.BusinessMgr.Resource.Id.progress_circular; + global::Xamarin.Forms.Platform.Android.Resource.Id.progress_horizontal = global::Sarand.BusinessMgr.Resource.Id.progress_horizontal; + global::Xamarin.Forms.Platform.Android.Resource.Id.radio = global::Sarand.BusinessMgr.Resource.Id.radio; + global::Xamarin.Forms.Platform.Android.Resource.Id.right = global::Sarand.BusinessMgr.Resource.Id.right; + global::Xamarin.Forms.Platform.Android.Resource.Id.right_icon = global::Sarand.BusinessMgr.Resource.Id.right_icon; + global::Xamarin.Forms.Platform.Android.Resource.Id.right_side = global::Sarand.BusinessMgr.Resource.Id.right_side; + global::Xamarin.Forms.Platform.Android.Resource.Id.save_image_matrix = global::Sarand.BusinessMgr.Resource.Id.save_image_matrix; + global::Xamarin.Forms.Platform.Android.Resource.Id.save_non_transition_alpha = global::Sarand.BusinessMgr.Resource.Id.save_non_transition_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Id.save_scale_type = global::Sarand.BusinessMgr.Resource.Id.save_scale_type; + global::Xamarin.Forms.Platform.Android.Resource.Id.screen = global::Sarand.BusinessMgr.Resource.Id.screen; + global::Xamarin.Forms.Platform.Android.Resource.Id.scroll = global::Sarand.BusinessMgr.Resource.Id.scroll; + global::Xamarin.Forms.Platform.Android.Resource.Id.scrollIndicatorDown = global::Sarand.BusinessMgr.Resource.Id.scrollIndicatorDown; + global::Xamarin.Forms.Platform.Android.Resource.Id.scrollIndicatorUp = global::Sarand.BusinessMgr.Resource.Id.scrollIndicatorUp; + global::Xamarin.Forms.Platform.Android.Resource.Id.scrollView = global::Sarand.BusinessMgr.Resource.Id.scrollView; + global::Xamarin.Forms.Platform.Android.Resource.Id.scrollable = global::Sarand.BusinessMgr.Resource.Id.scrollable; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_badge = global::Sarand.BusinessMgr.Resource.Id.search_badge; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_bar = global::Sarand.BusinessMgr.Resource.Id.search_bar; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_button = global::Sarand.BusinessMgr.Resource.Id.search_button; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_close_btn = global::Sarand.BusinessMgr.Resource.Id.search_close_btn; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_edit_frame = global::Sarand.BusinessMgr.Resource.Id.search_edit_frame; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_go_btn = global::Sarand.BusinessMgr.Resource.Id.search_go_btn; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_mag_icon = global::Sarand.BusinessMgr.Resource.Id.search_mag_icon; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_plate = global::Sarand.BusinessMgr.Resource.Id.search_plate; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_src_text = global::Sarand.BusinessMgr.Resource.Id.search_src_text; + global::Xamarin.Forms.Platform.Android.Resource.Id.search_voice_btn = global::Sarand.BusinessMgr.Resource.Id.search_voice_btn; + global::Xamarin.Forms.Platform.Android.Resource.Id.select_dialog_listview = global::Sarand.BusinessMgr.Resource.Id.select_dialog_listview; + global::Xamarin.Forms.Platform.Android.Resource.Id.shellcontent_appbar = global::Sarand.BusinessMgr.Resource.Id.shellcontent_appbar; + global::Xamarin.Forms.Platform.Android.Resource.Id.shellcontent_scrollview = global::Sarand.BusinessMgr.Resource.Id.shellcontent_scrollview; + global::Xamarin.Forms.Platform.Android.Resource.Id.shellcontent_toolbar = global::Sarand.BusinessMgr.Resource.Id.shellcontent_toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Id.shortcut = global::Sarand.BusinessMgr.Resource.Id.shortcut; + global::Xamarin.Forms.Platform.Android.Resource.Id.showCustom = global::Sarand.BusinessMgr.Resource.Id.showCustom; + global::Xamarin.Forms.Platform.Android.Resource.Id.showHome = global::Sarand.BusinessMgr.Resource.Id.showHome; + global::Xamarin.Forms.Platform.Android.Resource.Id.showTitle = global::Sarand.BusinessMgr.Resource.Id.showTitle; + global::Xamarin.Forms.Platform.Android.Resource.Id.smallLabel = global::Sarand.BusinessMgr.Resource.Id.smallLabel; + global::Xamarin.Forms.Platform.Android.Resource.Id.snackbar_action = global::Sarand.BusinessMgr.Resource.Id.snackbar_action; + global::Xamarin.Forms.Platform.Android.Resource.Id.snackbar_text = global::Sarand.BusinessMgr.Resource.Id.snackbar_text; + global::Xamarin.Forms.Platform.Android.Resource.Id.snap = global::Sarand.BusinessMgr.Resource.Id.snap; + global::Xamarin.Forms.Platform.Android.Resource.Id.spacer = global::Sarand.BusinessMgr.Resource.Id.spacer; + global::Xamarin.Forms.Platform.Android.Resource.Id.split_action_bar = global::Sarand.BusinessMgr.Resource.Id.split_action_bar; + global::Xamarin.Forms.Platform.Android.Resource.Id.src_atop = global::Sarand.BusinessMgr.Resource.Id.src_atop; + global::Xamarin.Forms.Platform.Android.Resource.Id.src_in = global::Sarand.BusinessMgr.Resource.Id.src_in; + global::Xamarin.Forms.Platform.Android.Resource.Id.src_over = global::Sarand.BusinessMgr.Resource.Id.src_over; + global::Xamarin.Forms.Platform.Android.Resource.Id.start = global::Sarand.BusinessMgr.Resource.Id.start; + global::Xamarin.Forms.Platform.Android.Resource.Id.status_bar_latest_event_content = global::Sarand.BusinessMgr.Resource.Id.status_bar_latest_event_content; + global::Xamarin.Forms.Platform.Android.Resource.Id.submenuarrow = global::Sarand.BusinessMgr.Resource.Id.submenuarrow; + global::Xamarin.Forms.Platform.Android.Resource.Id.submit_area = global::Sarand.BusinessMgr.Resource.Id.submit_area; + global::Xamarin.Forms.Platform.Android.Resource.Id.tabMode = global::Sarand.BusinessMgr.Resource.Id.tabMode; + global::Xamarin.Forms.Platform.Android.Resource.Id.tag_transition_group = global::Sarand.BusinessMgr.Resource.Id.tag_transition_group; + global::Xamarin.Forms.Platform.Android.Resource.Id.text = global::Sarand.BusinessMgr.Resource.Id.text; + global::Xamarin.Forms.Platform.Android.Resource.Id.text2 = global::Sarand.BusinessMgr.Resource.Id.text2; + global::Xamarin.Forms.Platform.Android.Resource.Id.textSpacerNoButtons = global::Sarand.BusinessMgr.Resource.Id.textSpacerNoButtons; + global::Xamarin.Forms.Platform.Android.Resource.Id.textSpacerNoTitle = global::Sarand.BusinessMgr.Resource.Id.textSpacerNoTitle; + global::Xamarin.Forms.Platform.Android.Resource.Id.text_input_password_toggle = global::Sarand.BusinessMgr.Resource.Id.text_input_password_toggle; + global::Xamarin.Forms.Platform.Android.Resource.Id.textinput_counter = global::Sarand.BusinessMgr.Resource.Id.textinput_counter; + global::Xamarin.Forms.Platform.Android.Resource.Id.textinput_error = global::Sarand.BusinessMgr.Resource.Id.textinput_error; + global::Xamarin.Forms.Platform.Android.Resource.Id.time = global::Sarand.BusinessMgr.Resource.Id.time; + global::Xamarin.Forms.Platform.Android.Resource.Id.title = global::Sarand.BusinessMgr.Resource.Id.title; + global::Xamarin.Forms.Platform.Android.Resource.Id.titleDividerNoCustom = global::Sarand.BusinessMgr.Resource.Id.titleDividerNoCustom; + global::Xamarin.Forms.Platform.Android.Resource.Id.title_template = global::Sarand.BusinessMgr.Resource.Id.title_template; + global::Xamarin.Forms.Platform.Android.Resource.Id.top = global::Sarand.BusinessMgr.Resource.Id.top; + global::Xamarin.Forms.Platform.Android.Resource.Id.topPanel = global::Sarand.BusinessMgr.Resource.Id.topPanel; + global::Xamarin.Forms.Platform.Android.Resource.Id.touch_outside = global::Sarand.BusinessMgr.Resource.Id.touch_outside; + global::Xamarin.Forms.Platform.Android.Resource.Id.transition_current_scene = global::Sarand.BusinessMgr.Resource.Id.transition_current_scene; + global::Xamarin.Forms.Platform.Android.Resource.Id.transition_layout_save = global::Sarand.BusinessMgr.Resource.Id.transition_layout_save; + global::Xamarin.Forms.Platform.Android.Resource.Id.transition_position = global::Sarand.BusinessMgr.Resource.Id.transition_position; + global::Xamarin.Forms.Platform.Android.Resource.Id.transition_scene_layoutid_cache = global::Sarand.BusinessMgr.Resource.Id.transition_scene_layoutid_cache; + global::Xamarin.Forms.Platform.Android.Resource.Id.transition_transform = global::Sarand.BusinessMgr.Resource.Id.transition_transform; + global::Xamarin.Forms.Platform.Android.Resource.Id.uniform = global::Sarand.BusinessMgr.Resource.Id.uniform; + global::Xamarin.Forms.Platform.Android.Resource.Id.up = global::Sarand.BusinessMgr.Resource.Id.up; + global::Xamarin.Forms.Platform.Android.Resource.Id.useLogo = global::Sarand.BusinessMgr.Resource.Id.useLogo; + global::Xamarin.Forms.Platform.Android.Resource.Id.view_offset_helper = global::Sarand.BusinessMgr.Resource.Id.view_offset_helper; + global::Xamarin.Forms.Platform.Android.Resource.Id.visible = global::Sarand.BusinessMgr.Resource.Id.visible; + global::Xamarin.Forms.Platform.Android.Resource.Id.withText = global::Sarand.BusinessMgr.Resource.Id.withText; + global::Xamarin.Forms.Platform.Android.Resource.Id.wrap_content = global::Sarand.BusinessMgr.Resource.Id.wrap_content; + global::Xamarin.Forms.Platform.Android.Resource.Integer.abc_config_activityDefaultDur = global::Sarand.BusinessMgr.Resource.Integer.abc_config_activityDefaultDur; + global::Xamarin.Forms.Platform.Android.Resource.Integer.abc_config_activityShortDur = global::Sarand.BusinessMgr.Resource.Integer.abc_config_activityShortDur; + global::Xamarin.Forms.Platform.Android.Resource.Integer.app_bar_elevation_anim_duration = global::Sarand.BusinessMgr.Resource.Integer.app_bar_elevation_anim_duration; + global::Xamarin.Forms.Platform.Android.Resource.Integer.bottom_sheet_slide_duration = global::Sarand.BusinessMgr.Resource.Integer.bottom_sheet_slide_duration; + global::Xamarin.Forms.Platform.Android.Resource.Integer.cancel_button_image_alpha = global::Sarand.BusinessMgr.Resource.Integer.cancel_button_image_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Integer.config_tooltipAnimTime = global::Sarand.BusinessMgr.Resource.Integer.config_tooltipAnimTime; + global::Xamarin.Forms.Platform.Android.Resource.Integer.design_snackbar_text_max_lines = global::Sarand.BusinessMgr.Resource.Integer.design_snackbar_text_max_lines; + global::Xamarin.Forms.Platform.Android.Resource.Integer.hide_password_duration = global::Sarand.BusinessMgr.Resource.Integer.hide_password_duration; + global::Xamarin.Forms.Platform.Android.Resource.Integer.show_password_duration = global::Sarand.BusinessMgr.Resource.Integer.show_password_duration; + global::Xamarin.Forms.Platform.Android.Resource.Integer.status_bar_notification_info_maxnum = global::Sarand.BusinessMgr.Resource.Integer.status_bar_notification_info_maxnum; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_action_bar_title_item = global::Sarand.BusinessMgr.Resource.Layout.abc_action_bar_title_item; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_action_bar_up_container = global::Sarand.BusinessMgr.Resource.Layout.abc_action_bar_up_container; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_action_menu_item_layout = global::Sarand.BusinessMgr.Resource.Layout.abc_action_menu_item_layout; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_action_menu_layout = global::Sarand.BusinessMgr.Resource.Layout.abc_action_menu_layout; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_action_mode_bar = global::Sarand.BusinessMgr.Resource.Layout.abc_action_mode_bar; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_action_mode_close_item_material = global::Sarand.BusinessMgr.Resource.Layout.abc_action_mode_close_item_material; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_activity_chooser_view = global::Sarand.BusinessMgr.Resource.Layout.abc_activity_chooser_view; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_activity_chooser_view_list_item = global::Sarand.BusinessMgr.Resource.Layout.abc_activity_chooser_view_list_item; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_alert_dialog_button_bar_material = global::Sarand.BusinessMgr.Resource.Layout.abc_alert_dialog_button_bar_material; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_alert_dialog_material = global::Sarand.BusinessMgr.Resource.Layout.abc_alert_dialog_material; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_alert_dialog_title_material = global::Sarand.BusinessMgr.Resource.Layout.abc_alert_dialog_title_material; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_dialog_title_material = global::Sarand.BusinessMgr.Resource.Layout.abc_dialog_title_material; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_expanded_menu_layout = global::Sarand.BusinessMgr.Resource.Layout.abc_expanded_menu_layout; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_list_menu_item_checkbox = global::Sarand.BusinessMgr.Resource.Layout.abc_list_menu_item_checkbox; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_list_menu_item_icon = global::Sarand.BusinessMgr.Resource.Layout.abc_list_menu_item_icon; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_list_menu_item_layout = global::Sarand.BusinessMgr.Resource.Layout.abc_list_menu_item_layout; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_list_menu_item_radio = global::Sarand.BusinessMgr.Resource.Layout.abc_list_menu_item_radio; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_popup_menu_header_item_layout = global::Sarand.BusinessMgr.Resource.Layout.abc_popup_menu_header_item_layout; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_popup_menu_item_layout = global::Sarand.BusinessMgr.Resource.Layout.abc_popup_menu_item_layout; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_screen_content_include = global::Sarand.BusinessMgr.Resource.Layout.abc_screen_content_include; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_screen_simple = global::Sarand.BusinessMgr.Resource.Layout.abc_screen_simple; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_screen_simple_overlay_action_mode = global::Sarand.BusinessMgr.Resource.Layout.abc_screen_simple_overlay_action_mode; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_screen_toolbar = global::Sarand.BusinessMgr.Resource.Layout.abc_screen_toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_search_dropdown_item_icons_2line = global::Sarand.BusinessMgr.Resource.Layout.abc_search_dropdown_item_icons_2line; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_search_view = global::Sarand.BusinessMgr.Resource.Layout.abc_search_view; + global::Xamarin.Forms.Platform.Android.Resource.Layout.abc_select_dialog_material = global::Sarand.BusinessMgr.Resource.Layout.abc_select_dialog_material; + global::Xamarin.Forms.Platform.Android.Resource.Layout.BottomTabLayout = global::Sarand.BusinessMgr.Resource.Layout.BottomTabLayout; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_bottom_navigation_item = global::Sarand.BusinessMgr.Resource.Layout.design_bottom_navigation_item; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_bottom_sheet_dialog = global::Sarand.BusinessMgr.Resource.Layout.design_bottom_sheet_dialog; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_layout_snackbar = global::Sarand.BusinessMgr.Resource.Layout.design_layout_snackbar; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_layout_snackbar_include = global::Sarand.BusinessMgr.Resource.Layout.design_layout_snackbar_include; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_layout_tab_icon = global::Sarand.BusinessMgr.Resource.Layout.design_layout_tab_icon; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_layout_tab_text = global::Sarand.BusinessMgr.Resource.Layout.design_layout_tab_text; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_menu_item_action_area = global::Sarand.BusinessMgr.Resource.Layout.design_menu_item_action_area; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_navigation_item = global::Sarand.BusinessMgr.Resource.Layout.design_navigation_item; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_navigation_item_header = global::Sarand.BusinessMgr.Resource.Layout.design_navigation_item_header; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_navigation_item_separator = global::Sarand.BusinessMgr.Resource.Layout.design_navigation_item_separator; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_navigation_item_subheader = global::Sarand.BusinessMgr.Resource.Layout.design_navigation_item_subheader; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_navigation_menu = global::Sarand.BusinessMgr.Resource.Layout.design_navigation_menu; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_navigation_menu_item = global::Sarand.BusinessMgr.Resource.Layout.design_navigation_menu_item; + global::Xamarin.Forms.Platform.Android.Resource.Layout.design_text_input_password_icon = global::Sarand.BusinessMgr.Resource.Layout.design_text_input_password_icon; + global::Xamarin.Forms.Platform.Android.Resource.Layout.FlyoutContent = global::Sarand.BusinessMgr.Resource.Layout.FlyoutContent; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_action = global::Sarand.BusinessMgr.Resource.Layout.notification_action; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_action_tombstone = global::Sarand.BusinessMgr.Resource.Layout.notification_action_tombstone; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_media_action = global::Sarand.BusinessMgr.Resource.Layout.notification_media_action; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_media_cancel_action = global::Sarand.BusinessMgr.Resource.Layout.notification_media_cancel_action; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_big_media = global::Sarand.BusinessMgr.Resource.Layout.notification_template_big_media; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_big_media_custom = global::Sarand.BusinessMgr.Resource.Layout.notification_template_big_media_custom; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_big_media_narrow = global::Sarand.BusinessMgr.Resource.Layout.notification_template_big_media_narrow; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_big_media_narrow_custom = global::Sarand.BusinessMgr.Resource.Layout.notification_template_big_media_narrow_custom; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_custom_big = global::Sarand.BusinessMgr.Resource.Layout.notification_template_custom_big; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_icon_group = global::Sarand.BusinessMgr.Resource.Layout.notification_template_icon_group; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_lines_media = global::Sarand.BusinessMgr.Resource.Layout.notification_template_lines_media; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_media = global::Sarand.BusinessMgr.Resource.Layout.notification_template_media; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_media_custom = global::Sarand.BusinessMgr.Resource.Layout.notification_template_media_custom; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_part_chronometer = global::Sarand.BusinessMgr.Resource.Layout.notification_template_part_chronometer; + global::Xamarin.Forms.Platform.Android.Resource.Layout.notification_template_part_time = global::Sarand.BusinessMgr.Resource.Layout.notification_template_part_time; + global::Xamarin.Forms.Platform.Android.Resource.Layout.RootLayout = global::Sarand.BusinessMgr.Resource.Layout.RootLayout; + global::Xamarin.Forms.Platform.Android.Resource.Layout.select_dialog_item_material = global::Sarand.BusinessMgr.Resource.Layout.select_dialog_item_material; + global::Xamarin.Forms.Platform.Android.Resource.Layout.select_dialog_multichoice_material = global::Sarand.BusinessMgr.Resource.Layout.select_dialog_multichoice_material; + global::Xamarin.Forms.Platform.Android.Resource.Layout.select_dialog_singlechoice_material = global::Sarand.BusinessMgr.Resource.Layout.select_dialog_singlechoice_material; + global::Xamarin.Forms.Platform.Android.Resource.Layout.ShellContent = global::Sarand.BusinessMgr.Resource.Layout.ShellContent; + global::Xamarin.Forms.Platform.Android.Resource.Layout.support_simple_spinner_dropdown_item = global::Sarand.BusinessMgr.Resource.Layout.support_simple_spinner_dropdown_item; + global::Xamarin.Forms.Platform.Android.Resource.Layout.tooltip = global::Sarand.BusinessMgr.Resource.Layout.tooltip; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_action_bar_home_description = global::Sarand.BusinessMgr.Resource.String.abc_action_bar_home_description; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_action_bar_up_description = global::Sarand.BusinessMgr.Resource.String.abc_action_bar_up_description; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_action_menu_overflow_description = global::Sarand.BusinessMgr.Resource.String.abc_action_menu_overflow_description; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_action_mode_done = global::Sarand.BusinessMgr.Resource.String.abc_action_mode_done; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_activity_chooser_view_see_all = global::Sarand.BusinessMgr.Resource.String.abc_activity_chooser_view_see_all; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_activitychooserview_choose_application = global::Sarand.BusinessMgr.Resource.String.abc_activitychooserview_choose_application; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_capital_off = global::Sarand.BusinessMgr.Resource.String.abc_capital_off; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_capital_on = global::Sarand.BusinessMgr.Resource.String.abc_capital_on; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_body_1_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_body_1_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_body_2_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_body_2_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_button_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_button_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_caption_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_caption_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_display_1_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_display_1_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_display_2_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_display_2_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_display_3_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_display_3_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_display_4_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_display_4_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_headline_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_headline_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_menu_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_menu_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_subhead_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_subhead_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_font_family_title_material = global::Sarand.BusinessMgr.Resource.String.abc_font_family_title_material; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_search_hint = global::Sarand.BusinessMgr.Resource.String.abc_search_hint; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_searchview_description_clear = global::Sarand.BusinessMgr.Resource.String.abc_searchview_description_clear; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_searchview_description_query = global::Sarand.BusinessMgr.Resource.String.abc_searchview_description_query; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_searchview_description_search = global::Sarand.BusinessMgr.Resource.String.abc_searchview_description_search; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_searchview_description_submit = global::Sarand.BusinessMgr.Resource.String.abc_searchview_description_submit; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_searchview_description_voice = global::Sarand.BusinessMgr.Resource.String.abc_searchview_description_voice; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_shareactionprovider_share_with = global::Sarand.BusinessMgr.Resource.String.abc_shareactionprovider_share_with; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_shareactionprovider_share_with_application = global::Sarand.BusinessMgr.Resource.String.abc_shareactionprovider_share_with_application; + global::Xamarin.Forms.Platform.Android.Resource.String.abc_toolbar_collapse_description = global::Sarand.BusinessMgr.Resource.String.abc_toolbar_collapse_description; + global::Xamarin.Forms.Platform.Android.Resource.String.appbar_scrolling_view_behavior = global::Sarand.BusinessMgr.Resource.String.appbar_scrolling_view_behavior; + global::Xamarin.Forms.Platform.Android.Resource.String.bottom_sheet_behavior = global::Sarand.BusinessMgr.Resource.String.bottom_sheet_behavior; + global::Xamarin.Forms.Platform.Android.Resource.String.character_counter_pattern = global::Sarand.BusinessMgr.Resource.String.character_counter_pattern; + global::Xamarin.Forms.Platform.Android.Resource.String.password_toggle_content_description = global::Sarand.BusinessMgr.Resource.String.password_toggle_content_description; + global::Xamarin.Forms.Platform.Android.Resource.String.path_password_eye = global::Sarand.BusinessMgr.Resource.String.path_password_eye; + global::Xamarin.Forms.Platform.Android.Resource.String.path_password_eye_mask_strike_through = global::Sarand.BusinessMgr.Resource.String.path_password_eye_mask_strike_through; + global::Xamarin.Forms.Platform.Android.Resource.String.path_password_eye_mask_visible = global::Sarand.BusinessMgr.Resource.String.path_password_eye_mask_visible; + global::Xamarin.Forms.Platform.Android.Resource.String.path_password_strike_through = global::Sarand.BusinessMgr.Resource.String.path_password_strike_through; + global::Xamarin.Forms.Platform.Android.Resource.String.search_menu_title = global::Sarand.BusinessMgr.Resource.String.search_menu_title; + global::Xamarin.Forms.Platform.Android.Resource.String.status_bar_notification_info_overflow = global::Sarand.BusinessMgr.Resource.String.status_bar_notification_info_overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.AlertDialog_AppCompat = global::Sarand.BusinessMgr.Resource.Style.AlertDialog_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.AlertDialog_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.AlertDialog_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Animation_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Animation_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Animation_AppCompat_DropDownUp = global::Sarand.BusinessMgr.Resource.Style.Animation_AppCompat_DropDownUp; + global::Xamarin.Forms.Platform.Android.Resource.Style.Animation_AppCompat_Tooltip = global::Sarand.BusinessMgr.Resource.Style.Animation_AppCompat_Tooltip; + global::Xamarin.Forms.Platform.Android.Resource.Style.Animation_Design_BottomSheetDialog = global::Sarand.BusinessMgr.Resource.Style.Animation_Design_BottomSheetDialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_AlertDialog_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_AlertDialog_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_AlertDialog_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Base_AlertDialog_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Animation_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_Animation_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Animation_AppCompat_DropDownUp = global::Sarand.BusinessMgr.Resource.Style.Base_Animation_AppCompat_DropDownUp; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Animation_AppCompat_Tooltip = global::Sarand.BusinessMgr.Resource.Style.Base_Animation_AppCompat_Tooltip; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_CardView = global::Sarand.BusinessMgr.Resource.Style.Base_CardView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_DialogWindowTitle_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_DialogWindowTitle_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_DialogWindowTitleBackground_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_DialogWindowTitleBackground_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Body1 = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Body1; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Body2 = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Body2; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Button = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Button; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Caption = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Caption; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Display1 = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Display1; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Display2 = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Display2; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Display3 = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Display3; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Display4 = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Display4; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Headline = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Headline; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Large = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Large; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Large_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Large_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Medium = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Medium; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Medium_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Medium_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Menu = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Menu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_SearchResult = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_SearchResult; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_SearchResult_Subtitle = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_SearchResult_Subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_SearchResult_Title = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_SearchResult_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Small = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Small_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Small_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Subhead = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Subhead; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Subhead_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Subhead_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Title = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Title_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Title_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Tooltip = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Tooltip; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Menu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Title = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionMode_Title = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_ActionMode_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_Button = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_Button; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_Button_Colored = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_Button_Colored; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_Button_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_Button_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_DropDownItem = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_DropDownItem; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_PopupMenu_Header = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_PopupMenu_Header; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_PopupMenu_Large; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_PopupMenu_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_Switch = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_Switch; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_TextAppearance_Widget_AppCompat_Toolbar_Title = global::Sarand.BusinessMgr.Resource.Style.Base_TextAppearance_Widget_AppCompat_Toolbar_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_CompactMenu = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_CompactMenu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Dialog_Alert = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Dialog_Alert; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Dialog_FixedSize = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Dialog_FixedSize; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Dialog_MinWidth = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Dialog_MinWidth; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_DialogWhenLarge = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_DialogWhenLarge; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Light_DarkActionBar = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Light_DarkActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Light_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Light_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Light_Dialog_Alert = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Light_Dialog_Alert; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Light_Dialog_FixedSize = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Light_Dialog_FixedSize; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Light_Dialog_MinWidth = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Light_Dialog_MinWidth; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Theme_AppCompat_Light_DialogWhenLarge = global::Sarand.BusinessMgr.Resource.Style.Base_Theme_AppCompat_Light_DialogWhenLarge; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_ThemeOverlay_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_ThemeOverlay_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_ThemeOverlay_AppCompat_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Base_ThemeOverlay_AppCompat_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_ThemeOverlay_AppCompat_Dark = global::Sarand.BusinessMgr.Resource.Style.Base_ThemeOverlay_AppCompat_Dark; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_ThemeOverlay_AppCompat_Dark_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Base_ThemeOverlay_AppCompat_Dark_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_ThemeOverlay_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_ThemeOverlay_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_ThemeOverlay_AppCompat_Dialog_Alert = global::Sarand.BusinessMgr.Resource.Style.Base_ThemeOverlay_AppCompat_Dialog_Alert; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_ThemeOverlay_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Base_ThemeOverlay_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V11_Theme_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_V11_Theme_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V11_Theme_AppCompat_Light_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_V11_Theme_AppCompat_Light_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V11_ThemeOverlay_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_V11_ThemeOverlay_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V12_Widget_AppCompat_AutoCompleteTextView = global::Sarand.BusinessMgr.Resource.Style.Base_V12_Widget_AppCompat_AutoCompleteTextView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V12_Widget_AppCompat_EditText = global::Sarand.BusinessMgr.Resource.Style.Base_V12_Widget_AppCompat_EditText; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V14_Widget_Design_AppBarLayout = global::Sarand.BusinessMgr.Resource.Style.Base_V14_Widget_Design_AppBarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V21_Theme_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_V21_Theme_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V21_Theme_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_V21_Theme_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V21_Theme_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Base_V21_Theme_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V21_Theme_AppCompat_Light_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_V21_Theme_AppCompat_Light_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V21_ThemeOverlay_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_V21_ThemeOverlay_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V21_Widget_Design_AppBarLayout = global::Sarand.BusinessMgr.Resource.Style.Base_V21_Widget_Design_AppBarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V22_Theme_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_V22_Theme_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V22_Theme_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Base_V22_Theme_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V23_Theme_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_V23_Theme_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V23_Theme_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Base_V23_Theme_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V26_Theme_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_V26_Theme_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V26_Theme_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Base_V26_Theme_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V26_Widget_AppCompat_Toolbar = global::Sarand.BusinessMgr.Resource.Style.Base_V26_Widget_AppCompat_Toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V26_Widget_Design_AppBarLayout = global::Sarand.BusinessMgr.Resource.Style.Base_V26_Widget_Design_AppBarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V7_Theme_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Base_V7_Theme_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V7_Theme_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_V7_Theme_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V7_Theme_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Base_V7_Theme_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V7_Theme_AppCompat_Light_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_V7_Theme_AppCompat_Light_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V7_ThemeOverlay_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Base_V7_ThemeOverlay_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V7_Widget_AppCompat_AutoCompleteTextView = global::Sarand.BusinessMgr.Resource.Style.Base_V7_Widget_AppCompat_AutoCompleteTextView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V7_Widget_AppCompat_EditText = global::Sarand.BusinessMgr.Resource.Style.Base_V7_Widget_AppCompat_EditText; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_V7_Widget_AppCompat_Toolbar = global::Sarand.BusinessMgr.Resource.Style.Base_V7_Widget_AppCompat_Toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActionBar_Solid = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActionBar_Solid; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActionBar_TabBar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActionBar_TabBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActionBar_TabText = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActionBar_TabText; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActionBar_TabView = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActionBar_TabView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActionButton = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActionButton; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActionButton_CloseMode = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActionButton_CloseMode; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActionButton_Overflow = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActionButton_Overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActionMode = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActionMode; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ActivityChooserView = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ActivityChooserView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_AutoCompleteTextView = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_AutoCompleteTextView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Button = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Button; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Button_Borderless = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Button_Borderless; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Button_Borderless_Colored = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Button_Borderless_Colored; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Button_ButtonBar_AlertDialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Button_Colored = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Button_Colored; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Button_Small = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Button_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ButtonBar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ButtonBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ButtonBar_AlertDialog = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ButtonBar_AlertDialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_CompoundButton_CheckBox = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_CompoundButton_CheckBox; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_CompoundButton_RadioButton = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_CompoundButton_RadioButton; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_CompoundButton_Switch = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_CompoundButton_Switch; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_DrawerArrowToggle = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_DrawerArrowToggle; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_DrawerArrowToggle_Common = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_DrawerArrowToggle_Common; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_DropDownItem_Spinner = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_DropDownItem_Spinner; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_EditText = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_EditText; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ImageButton = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ImageButton; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Light_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Light_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_Solid = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_Solid; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_TabBar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_TabBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_TabText = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_TabText; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_TabView = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Light_ActionBar_TabView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Light_PopupMenu = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Light_PopupMenu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Light_PopupMenu_Overflow = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Light_PopupMenu_Overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ListMenuView = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ListMenuView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ListPopupWindow = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ListPopupWindow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ListView = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ListView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ListView_DropDown = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ListView_DropDown; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ListView_Menu = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ListView_Menu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_PopupMenu = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_PopupMenu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_PopupMenu_Overflow = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_PopupMenu_Overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_PopupWindow = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_PopupWindow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ProgressBar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ProgressBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_ProgressBar_Horizontal = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_ProgressBar_Horizontal; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_RatingBar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_RatingBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_RatingBar_Indicator = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_RatingBar_Indicator; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_RatingBar_Small = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_RatingBar_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_SearchView = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_SearchView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_SearchView_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_SearchView_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_SeekBar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_SeekBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_SeekBar_Discrete = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_SeekBar_Discrete; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Spinner = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Spinner; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Spinner_Underlined = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Spinner_Underlined; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_TextView_SpinnerItem = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_TextView_SpinnerItem; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Toolbar = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_AppCompat_Toolbar_Button_Navigation = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_AppCompat_Toolbar_Button_Navigation; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_Design_AppBarLayout = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_Design_AppBarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Style.Base_Widget_Design_TabLayout = global::Sarand.BusinessMgr.Resource.Style.Base_Widget_Design_TabLayout; + global::Xamarin.Forms.Platform.Android.Resource.Style.CardView = global::Sarand.BusinessMgr.Resource.Style.CardView; + global::Xamarin.Forms.Platform.Android.Resource.Style.CardView_Dark = global::Sarand.BusinessMgr.Resource.Style.CardView_Dark; + global::Xamarin.Forms.Platform.Android.Resource.Style.CardView_Light = global::Sarand.BusinessMgr.Resource.Style.CardView_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Platform_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Platform_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_ThemeOverlay_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Platform_ThemeOverlay_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_ThemeOverlay_AppCompat_Dark = global::Sarand.BusinessMgr.Resource.Style.Platform_ThemeOverlay_AppCompat_Dark; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_ThemeOverlay_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Platform_ThemeOverlay_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_V11_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Platform_V11_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_V11_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Platform_V11_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_V14_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Platform_V14_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_V14_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Platform_V14_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_V21_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Platform_V21_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_V21_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Platform_V21_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_V25_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Platform_V25_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_V25_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Platform_V25_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Platform_Widget_AppCompat_Spinner = global::Sarand.BusinessMgr.Resource.Style.Platform_Widget_AppCompat_Spinner; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_DialogWindowTitle_AppCompat = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_DialogWindowTitle_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_ActionBar_TitleItem; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_DialogTitle_Icon = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_DialogTitle_Icon; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_PopupMenuItem = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_PopupMenuItem; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_PopupMenuItem_Text; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown_Query = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown_Query; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown_Text = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_Search_DropDown_Text; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlOverlay_Widget_AppCompat_SearchView_MagIcon = global::Sarand.BusinessMgr.Resource.Style.RtlOverlay_Widget_AppCompat_SearchView_MagIcon; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlUnderlay_Widget_AppCompat_ActionButton = global::Sarand.BusinessMgr.Resource.Style.RtlUnderlay_Widget_AppCompat_ActionButton; + global::Xamarin.Forms.Platform.Android.Resource.Style.RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = global::Sarand.BusinessMgr.Resource.Style.RtlUnderlay_Widget_AppCompat_ActionButton_Overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Body1 = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Body1; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Body2 = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Body2; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Button = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Button; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Caption = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Caption; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Display1 = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Display1; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Display2 = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Display2; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Display3 = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Display3; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Display4 = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Display4; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Headline = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Headline; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Large = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Large; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Large_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Large_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Light_SearchResult_Subtitle = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Light_SearchResult_Subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Light_SearchResult_Title = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Light_SearchResult_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Light_Widget_PopupMenu_Large; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Light_Widget_PopupMenu_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Medium = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Medium; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Medium_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Medium_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Menu = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Menu; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_SearchResult_Subtitle = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_SearchResult_Subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_SearchResult_Title = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_SearchResult_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Small = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Small_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Small_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Subhead = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Subhead; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Subhead_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Subhead_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Title = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Title_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Title_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Tooltip = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Tooltip; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Menu = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Menu; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Subtitle = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Title = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_ActionMode_Subtitle = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_ActionMode_Subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_ActionMode_Title = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_ActionMode_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_Button = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_Button; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_Button_Borderless_Colored = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_Button_Borderless_Colored; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_Button_Colored = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_Button_Colored; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_Button_Inverse = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_Button_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_DropDownItem = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_DropDownItem; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Header = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Header; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Large = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Large; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Small = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_PopupMenu_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_Switch = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_Switch; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_AppCompat_Widget_TextView_SpinnerItem = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_AppCompat_Widget_TextView_SpinnerItem; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification_Info = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Info; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification_Info_Media = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Info_Media; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification_Line2 = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Line2; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification_Line2_Media = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Line2_Media; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification_Media = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Media; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification_Time = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Time; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification_Time_Media = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Time_Media; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification_Title = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Compat_Notification_Title_Media = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Compat_Notification_Title_Media; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Design_CollapsingToolbar_Expanded = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Design_CollapsingToolbar_Expanded; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Design_Counter = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Design_Counter; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Design_Counter_Overflow = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Design_Counter_Overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Design_Error = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Design_Error; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Design_Hint = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Design_Hint; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Design_Snackbar_Message = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Design_Snackbar_Message; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Design_Tab = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Design_Tab; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Widget_AppCompat_ExpandedMenu_Item = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Widget_AppCompat_ExpandedMenu_Item; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Widget_AppCompat_Toolbar_Subtitle = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Widget_AppCompat_Toolbar_Subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Style.TextAppearance_Widget_AppCompat_Toolbar_Title = global::Sarand.BusinessMgr.Resource.Style.TextAppearance_Widget_AppCompat_Toolbar_Title; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_CompactMenu = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_CompactMenu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_DayNight = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_DayNight; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_DayNight_DarkActionBar = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_DayNight_DarkActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_DayNight_Dialog = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_DayNight_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_DayNight_Dialog_Alert = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_DayNight_Dialog_Alert; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_DayNight_Dialog_MinWidth = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_DayNight_Dialog_MinWidth; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_DayNight_DialogWhenLarge = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_DayNight_DialogWhenLarge; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_DayNight_NoActionBar = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_DayNight_NoActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Dialog_Alert = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Dialog_Alert; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Dialog_MinWidth = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Dialog_MinWidth; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_DialogWhenLarge = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_DialogWhenLarge; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Light_DarkActionBar = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Light_DarkActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Light_Dialog = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Light_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Light_Dialog_Alert = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Light_Dialog_Alert; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Light_Dialog_MinWidth = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Light_Dialog_MinWidth; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Light_DialogWhenLarge = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Light_DialogWhenLarge; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_Light_NoActionBar = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_Light_NoActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_AppCompat_NoActionBar = global::Sarand.BusinessMgr.Resource.Style.Theme_AppCompat_NoActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_Design = global::Sarand.BusinessMgr.Resource.Style.Theme_Design; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_Design_BottomSheetDialog = global::Sarand.BusinessMgr.Resource.Style.Theme_Design_BottomSheetDialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_Design_Light = global::Sarand.BusinessMgr.Resource.Style.Theme_Design_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_Design_Light_BottomSheetDialog = global::Sarand.BusinessMgr.Resource.Style.Theme_Design_Light_BottomSheetDialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_Design_Light_NoActionBar = global::Sarand.BusinessMgr.Resource.Style.Theme_Design_Light_NoActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Theme_Design_NoActionBar = global::Sarand.BusinessMgr.Resource.Style.Theme_Design_NoActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.ThemeOverlay_AppCompat = global::Sarand.BusinessMgr.Resource.Style.ThemeOverlay_AppCompat; + global::Xamarin.Forms.Platform.Android.Resource.Style.ThemeOverlay_AppCompat_ActionBar = global::Sarand.BusinessMgr.Resource.Style.ThemeOverlay_AppCompat_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.ThemeOverlay_AppCompat_Dark = global::Sarand.BusinessMgr.Resource.Style.ThemeOverlay_AppCompat_Dark; + global::Xamarin.Forms.Platform.Android.Resource.Style.ThemeOverlay_AppCompat_Dark_ActionBar = global::Sarand.BusinessMgr.Resource.Style.ThemeOverlay_AppCompat_Dark_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.ThemeOverlay_AppCompat_Dialog = global::Sarand.BusinessMgr.Resource.Style.ThemeOverlay_AppCompat_Dialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.ThemeOverlay_AppCompat_Dialog_Alert = global::Sarand.BusinessMgr.Resource.Style.ThemeOverlay_AppCompat_Dialog_Alert; + global::Xamarin.Forms.Platform.Android.Resource.Style.ThemeOverlay_AppCompat_Light = global::Sarand.BusinessMgr.Resource.Style.ThemeOverlay_AppCompat_Light; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActionBar_Solid = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActionBar_Solid; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActionBar_TabBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActionBar_TabBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActionBar_TabText = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActionBar_TabText; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActionBar_TabView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActionBar_TabView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActionButton = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActionButton; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActionButton_CloseMode = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActionButton_CloseMode; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActionButton_Overflow = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActionButton_Overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActionMode = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActionMode; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ActivityChooserView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ActivityChooserView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_AutoCompleteTextView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_AutoCompleteTextView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Button = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Button; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Button_Borderless = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Button_Borderless; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Button_Borderless_Colored = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Button_Borderless_Colored; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Button_ButtonBar_AlertDialog = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Button_ButtonBar_AlertDialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Button_Colored = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Button_Colored; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Button_Small = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Button_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ButtonBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ButtonBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ButtonBar_AlertDialog = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ButtonBar_AlertDialog; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_CompoundButton_CheckBox = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_CompoundButton_CheckBox; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_CompoundButton_RadioButton = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_CompoundButton_RadioButton; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_CompoundButton_Switch = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_CompoundButton_Switch; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_DrawerArrowToggle = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_DrawerArrowToggle; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_DropDownItem_Spinner = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_DropDownItem_Spinner; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_EditText = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_EditText; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ImageButton = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ImageButton; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionBar_Solid = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionBar_Solid; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionBar_Solid_Inverse = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionBar_Solid_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionBar_TabBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionBar_TabBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionBar_TabBar_Inverse = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionBar_TabBar_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionBar_TabText = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionBar_TabText; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionBar_TabText_Inverse = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionBar_TabText_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionBar_TabView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionBar_TabView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionBar_TabView_Inverse = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionBar_TabView_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionButton = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionButton; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionButton_CloseMode = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionButton_CloseMode; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionButton_Overflow = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionButton_Overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActionMode_Inverse = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActionMode_Inverse; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ActivityChooserView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ActivityChooserView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_AutoCompleteTextView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_AutoCompleteTextView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_DropDownItem_Spinner = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_DropDownItem_Spinner; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ListPopupWindow = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ListPopupWindow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_ListView_DropDown = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_ListView_DropDown; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_PopupMenu = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_PopupMenu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_PopupMenu_Overflow = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_PopupMenu_Overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_SearchView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_SearchView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Light_Spinner_DropDown_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Light_Spinner_DropDown_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ListMenuView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ListMenuView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ListPopupWindow = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ListPopupWindow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ListView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ListView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ListView_DropDown = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ListView_DropDown; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ListView_Menu = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ListView_Menu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_PopupMenu = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_PopupMenu; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_PopupMenu_Overflow = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_PopupMenu_Overflow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_PopupWindow = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_PopupWindow; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ProgressBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ProgressBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_ProgressBar_Horizontal = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_ProgressBar_Horizontal; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_RatingBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_RatingBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_RatingBar_Indicator = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_RatingBar_Indicator; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_RatingBar_Small = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_RatingBar_Small; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_SearchView = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_SearchView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_SearchView_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_SearchView_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_SeekBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_SeekBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_SeekBar_Discrete = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_SeekBar_Discrete; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Spinner = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Spinner; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Spinner_DropDown = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Spinner_DropDown; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Spinner_DropDown_ActionBar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Spinner_DropDown_ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Spinner_Underlined = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Spinner_Underlined; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_TextView_SpinnerItem = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_TextView_SpinnerItem; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Toolbar = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_AppCompat_Toolbar_Button_Navigation = global::Sarand.BusinessMgr.Resource.Style.Widget_AppCompat_Toolbar_Button_Navigation; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Compat_NotificationActionContainer = global::Sarand.BusinessMgr.Resource.Style.Widget_Compat_NotificationActionContainer; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Compat_NotificationActionText = global::Sarand.BusinessMgr.Resource.Style.Widget_Compat_NotificationActionText; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_AppBarLayout = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_AppBarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_BottomNavigationView = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_BottomNavigationView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_BottomSheet_Modal = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_BottomSheet_Modal; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_CollapsingToolbar = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_CollapsingToolbar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_CoordinatorLayout = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_CoordinatorLayout; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_FloatingActionButton = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_FloatingActionButton; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_NavigationView = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_NavigationView; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_ScrimInsetsFrameLayout = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_ScrimInsetsFrameLayout; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_Snackbar = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_Snackbar; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_TabLayout = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_TabLayout; + global::Xamarin.Forms.Platform.Android.Resource.Style.Widget_Design_TextInputLayout = global::Sarand.BusinessMgr.Resource.Style.Widget_Design_TextInputLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_background = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_background; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_backgroundSplit = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_backgroundSplit; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_backgroundStacked = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_backgroundStacked; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_contentInsetEnd = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_contentInsetEnd; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_contentInsetEndWithActions = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_contentInsetEndWithActions; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_contentInsetLeft = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_contentInsetLeft; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_contentInsetRight = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_contentInsetRight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_contentInsetStart = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_contentInsetStart; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_contentInsetStartWithNavigation = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_contentInsetStartWithNavigation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_customNavigationLayout = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_customNavigationLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_displayOptions = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_displayOptions; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_divider = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_divider; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_elevation = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_height = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_height; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_hideOnContentScroll = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_hideOnContentScroll; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_homeAsUpIndicator = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_homeAsUpIndicator; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_homeLayout = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_homeLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_icon = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_icon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_indeterminateProgressStyle = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_indeterminateProgressStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_itemPadding = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_itemPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_logo = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_logo; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_navigationMode = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_navigationMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_popupTheme = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_popupTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_progressBarPadding = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_progressBarPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_progressBarStyle = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_progressBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_subtitle = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_subtitleTextStyle = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_subtitleTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_title = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_title; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBar_titleTextStyle = global::Sarand.BusinessMgr.Resource.Styleable.ActionBar_titleTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBarLayout = global::Sarand.BusinessMgr.Resource.Styleable.ActionBarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionBarLayout_android_layout_gravity = global::Sarand.BusinessMgr.Resource.Styleable.ActionBarLayout_android_layout_gravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMenuItemView = global::Sarand.BusinessMgr.Resource.Styleable.ActionMenuItemView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMenuItemView_android_minWidth = global::Sarand.BusinessMgr.Resource.Styleable.ActionMenuItemView_android_minWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMenuView = global::Sarand.BusinessMgr.Resource.Styleable.ActionMenuView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMode = global::Sarand.BusinessMgr.Resource.Styleable.ActionMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMode_background = global::Sarand.BusinessMgr.Resource.Styleable.ActionMode_background; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMode_backgroundSplit = global::Sarand.BusinessMgr.Resource.Styleable.ActionMode_backgroundSplit; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMode_closeItemLayout = global::Sarand.BusinessMgr.Resource.Styleable.ActionMode_closeItemLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMode_height = global::Sarand.BusinessMgr.Resource.Styleable.ActionMode_height; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMode_subtitleTextStyle = global::Sarand.BusinessMgr.Resource.Styleable.ActionMode_subtitleTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActionMode_titleTextStyle = global::Sarand.BusinessMgr.Resource.Styleable.ActionMode_titleTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActivityChooserView = global::Sarand.BusinessMgr.Resource.Styleable.ActivityChooserView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActivityChooserView_expandActivityOverflowButtonDrawable = global::Sarand.BusinessMgr.Resource.Styleable.ActivityChooserView_expandActivityOverflowButtonDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ActivityChooserView_initialActivityCount = global::Sarand.BusinessMgr.Resource.Styleable.ActivityChooserView_initialActivityCount; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AlertDialog = global::Sarand.BusinessMgr.Resource.Styleable.AlertDialog; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AlertDialog_android_layout = global::Sarand.BusinessMgr.Resource.Styleable.AlertDialog_android_layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AlertDialog_buttonPanelSideLayout = global::Sarand.BusinessMgr.Resource.Styleable.AlertDialog_buttonPanelSideLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AlertDialog_listItemLayout = global::Sarand.BusinessMgr.Resource.Styleable.AlertDialog_listItemLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AlertDialog_listLayout = global::Sarand.BusinessMgr.Resource.Styleable.AlertDialog_listLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AlertDialog_multiChoiceItemLayout = global::Sarand.BusinessMgr.Resource.Styleable.AlertDialog_multiChoiceItemLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AlertDialog_showTitle = global::Sarand.BusinessMgr.Resource.Styleable.AlertDialog_showTitle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AlertDialog_singleChoiceItemLayout = global::Sarand.BusinessMgr.Resource.Styleable.AlertDialog_singleChoiceItemLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayout = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayout_android_background = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayout_android_background; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayout_android_keyboardNavigationCluster = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayout_android_keyboardNavigationCluster; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayout_android_touchscreenBlocksFocus = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayout_android_touchscreenBlocksFocus; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayout_elevation = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayout_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayout_expanded = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayout_expanded; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayoutStates = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayoutStates; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayoutStates_state_collapsed = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayoutStates_state_collapsed; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayoutStates_state_collapsible = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayoutStates_state_collapsible; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayout_Layout = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayout_Layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayout_Layout_layout_scrollFlags = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayout_Layout_layout_scrollFlags; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppBarLayout_Layout_layout_scrollInterpolator = global::Sarand.BusinessMgr.Resource.Styleable.AppBarLayout_Layout_layout_scrollInterpolator; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatImageView = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatImageView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatImageView_android_src = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatImageView_android_src; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatImageView_srcCompat = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatImageView_srcCompat; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatImageView_tint = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatImageView_tint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatImageView_tintMode = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatImageView_tintMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatSeekBar = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatSeekBar; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatSeekBar_android_thumb = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatSeekBar_android_thumb; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatSeekBar_tickMark = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatSeekBar_tickMark; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatSeekBar_tickMarkTint = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatSeekBar_tickMarkTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatSeekBar_tickMarkTintMode = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatSeekBar_tickMarkTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextHelper = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextHelper; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextHelper_android_drawableBottom = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextHelper_android_drawableBottom; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextHelper_android_drawableEnd = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextHelper_android_drawableEnd; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextHelper_android_drawableLeft = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextHelper_android_drawableLeft; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextHelper_android_drawableRight = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextHelper_android_drawableRight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextHelper_android_drawableStart = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextHelper_android_drawableStart; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextHelper_android_drawableTop = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextHelper_android_drawableTop; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextHelper_android_textAppearance = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextHelper_android_textAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextView = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextView_android_textAppearance = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextView_android_textAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextView_autoSizeMaxTextSize = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextView_autoSizeMaxTextSize; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextView_autoSizeMinTextSize = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextView_autoSizeMinTextSize; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextView_autoSizePresetSizes = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextView_autoSizePresetSizes; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextView_autoSizeStepGranularity = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextView_autoSizeStepGranularity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextView_autoSizeTextType = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextView_autoSizeTextType; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextView_fontFamily = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextView_fontFamily; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTextView_textAllCaps = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTextView_textAllCaps; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarDivider = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarDivider; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarItemBackground = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarItemBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarPopupTheme = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarPopupTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarSize = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarSize; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarSplitStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarSplitStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarTabBarStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarTabBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarTabStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarTabStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarTabTextStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarTabTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarTheme = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionBarWidgetTheme = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionBarWidgetTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionDropDownStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionDropDownStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionMenuTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionMenuTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionMenuTextColor = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionMenuTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeBackground = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeCloseButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeCloseButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeCloseDrawable = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeCloseDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeCopyDrawable = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeCopyDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeCutDrawable = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeCutDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeFindDrawable = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeFindDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModePasteDrawable = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModePasteDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModePopupWindowStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModePopupWindowStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeSelectAllDrawable = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeSelectAllDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeShareDrawable = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeShareDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeSplitBackground = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeSplitBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionModeWebSearchDrawable = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionModeWebSearchDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionOverflowButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionOverflowButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_actionOverflowMenuStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_actionOverflowMenuStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_activityChooserViewStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_activityChooserViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_alertDialogButtonGroupStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_alertDialogButtonGroupStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_alertDialogCenterButtons = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_alertDialogCenterButtons; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_alertDialogStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_alertDialogStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_alertDialogTheme = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_alertDialogTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_android_windowAnimationStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_android_windowAnimationStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_android_windowIsFloating = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_android_windowIsFloating; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_autoCompleteTextViewStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_autoCompleteTextViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_borderlessButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_borderlessButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_buttonBarButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_buttonBarButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_buttonBarNegativeButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_buttonBarNegativeButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_buttonBarNeutralButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_buttonBarNeutralButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_buttonBarPositiveButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_buttonBarPositiveButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_buttonBarStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_buttonBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_buttonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_buttonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_buttonStyleSmall = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_buttonStyleSmall; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_checkboxStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_checkboxStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_checkedTextViewStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_checkedTextViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorAccent = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorAccent; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorBackgroundFloating = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorBackgroundFloating; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorButtonNormal = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorButtonNormal; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorControlActivated = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorControlActivated; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorControlHighlight = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorControlHighlight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorControlNormal = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorControlNormal; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorError = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorError; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorPrimary = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorPrimary; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorPrimaryDark = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorPrimaryDark; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_colorSwitchThumbNormal = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_colorSwitchThumbNormal; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_controlBackground = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_controlBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_dialogPreferredPadding = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_dialogPreferredPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_dialogTheme = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_dialogTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_dividerHorizontal = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_dividerHorizontal; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_dividerVertical = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_dividerVertical; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_dropDownListViewStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_dropDownListViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_dropdownListPreferredItemHeight = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_dropdownListPreferredItemHeight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_editTextBackground = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_editTextBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_editTextColor = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_editTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_editTextStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_editTextStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_homeAsUpIndicator = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_homeAsUpIndicator; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_imageButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_imageButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_listChoiceBackgroundIndicator = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_listChoiceBackgroundIndicator; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_listDividerAlertDialog = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_listDividerAlertDialog; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_listMenuViewStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_listMenuViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_listPopupWindowStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_listPopupWindowStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_listPreferredItemHeight = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_listPreferredItemHeight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_listPreferredItemHeightLarge = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_listPreferredItemHeightLarge; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_listPreferredItemHeightSmall = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_listPreferredItemHeightSmall; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_listPreferredItemPaddingLeft = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_listPreferredItemPaddingLeft; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_listPreferredItemPaddingRight = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_listPreferredItemPaddingRight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_panelBackground = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_panelBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_panelMenuListTheme = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_panelMenuListTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_panelMenuListWidth = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_panelMenuListWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_popupMenuStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_popupMenuStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_popupWindowStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_popupWindowStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_radioButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_radioButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_ratingBarStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_ratingBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_ratingBarStyleIndicator = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_ratingBarStyleIndicator; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_ratingBarStyleSmall = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_ratingBarStyleSmall; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_searchViewStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_searchViewStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_seekBarStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_seekBarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_selectableItemBackground = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_selectableItemBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_selectableItemBackgroundBorderless = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_selectableItemBackgroundBorderless; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_spinnerDropDownItemStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_spinnerDropDownItemStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_spinnerStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_spinnerStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_switchStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_switchStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textAppearanceLargePopupMenu = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textAppearanceLargePopupMenu; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textAppearanceListItem = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textAppearanceListItem; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textAppearanceListItemSecondary = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textAppearanceListItemSecondary; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textAppearanceListItemSmall = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textAppearanceListItemSmall; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textAppearancePopupMenuHeader = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textAppearancePopupMenuHeader; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textAppearanceSearchResultSubtitle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textAppearanceSearchResultSubtitle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textAppearanceSearchResultTitle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textAppearanceSearchResultTitle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textAppearanceSmallPopupMenu = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textAppearanceSmallPopupMenu; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textColorAlertDialogListItem = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textColorAlertDialogListItem; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_textColorSearchUrl = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_textColorSearchUrl; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_toolbarNavigationButtonStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_toolbarNavigationButtonStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_toolbarStyle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_toolbarStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_tooltipForegroundColor = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_tooltipForegroundColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_tooltipFrameBackground = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_tooltipFrameBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowActionBar = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowActionBar; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowActionBarOverlay = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowActionBarOverlay; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowActionModeOverlay = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowActionModeOverlay; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowFixedHeightMajor = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowFixedHeightMajor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowFixedHeightMinor = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowFixedHeightMinor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowFixedWidthMajor = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowFixedWidthMajor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowFixedWidthMinor = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowFixedWidthMinor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowMinWidthMajor = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowMinWidthMajor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowMinWidthMinor = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowMinWidthMinor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.AppCompatTheme_windowNoTitle = global::Sarand.BusinessMgr.Resource.Styleable.AppCompatTheme_windowNoTitle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomNavigationView = global::Sarand.BusinessMgr.Resource.Styleable.BottomNavigationView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomNavigationView_elevation = global::Sarand.BusinessMgr.Resource.Styleable.BottomNavigationView_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomNavigationView_itemBackground = global::Sarand.BusinessMgr.Resource.Styleable.BottomNavigationView_itemBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomNavigationView_itemIconTint = global::Sarand.BusinessMgr.Resource.Styleable.BottomNavigationView_itemIconTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomNavigationView_itemTextColor = global::Sarand.BusinessMgr.Resource.Styleable.BottomNavigationView_itemTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomNavigationView_menu = global::Sarand.BusinessMgr.Resource.Styleable.BottomNavigationView_menu; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomSheetBehavior_Layout = global::Sarand.BusinessMgr.Resource.Styleable.BottomSheetBehavior_Layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomSheetBehavior_Layout_behavior_hideable = global::Sarand.BusinessMgr.Resource.Styleable.BottomSheetBehavior_Layout_behavior_hideable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomSheetBehavior_Layout_behavior_peekHeight = global::Sarand.BusinessMgr.Resource.Styleable.BottomSheetBehavior_Layout_behavior_peekHeight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.BottomSheetBehavior_Layout_behavior_skipCollapsed = global::Sarand.BusinessMgr.Resource.Styleable.BottomSheetBehavior_Layout_behavior_skipCollapsed; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ButtonBarLayout = global::Sarand.BusinessMgr.Resource.Styleable.ButtonBarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ButtonBarLayout_allowStacking = global::Sarand.BusinessMgr.Resource.Styleable.ButtonBarLayout_allowStacking; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView = global::Sarand.BusinessMgr.Resource.Styleable.CardView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_android_minHeight = global::Sarand.BusinessMgr.Resource.Styleable.CardView_android_minHeight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_android_minWidth = global::Sarand.BusinessMgr.Resource.Styleable.CardView_android_minWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_cardBackgroundColor = global::Sarand.BusinessMgr.Resource.Styleable.CardView_cardBackgroundColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_cardCornerRadius = global::Sarand.BusinessMgr.Resource.Styleable.CardView_cardCornerRadius; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_cardElevation = global::Sarand.BusinessMgr.Resource.Styleable.CardView_cardElevation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_cardMaxElevation = global::Sarand.BusinessMgr.Resource.Styleable.CardView_cardMaxElevation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_cardPreventCornerOverlap = global::Sarand.BusinessMgr.Resource.Styleable.CardView_cardPreventCornerOverlap; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_cardUseCompatPadding = global::Sarand.BusinessMgr.Resource.Styleable.CardView_cardUseCompatPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_contentPadding = global::Sarand.BusinessMgr.Resource.Styleable.CardView_contentPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_contentPaddingBottom = global::Sarand.BusinessMgr.Resource.Styleable.CardView_contentPaddingBottom; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_contentPaddingLeft = global::Sarand.BusinessMgr.Resource.Styleable.CardView_contentPaddingLeft; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_contentPaddingRight = global::Sarand.BusinessMgr.Resource.Styleable.CardView_contentPaddingRight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CardView_contentPaddingTop = global::Sarand.BusinessMgr.Resource.Styleable.CardView_contentPaddingTop; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_collapsedTitleGravity = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_collapsedTitleGravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_collapsedTitleTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_collapsedTitleTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_contentScrim = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_contentScrim; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_expandedTitleGravity = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_expandedTitleGravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMargin = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMargin; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMarginBottom = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMarginBottom; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMarginEnd = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMarginEnd; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMarginStart = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMarginStart; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMarginTop = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_expandedTitleMarginTop; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_expandedTitleTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_expandedTitleTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_scrimAnimationDuration = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_scrimAnimationDuration; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_scrimVisibleHeightTrigger = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_scrimVisibleHeightTrigger; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_statusBarScrim = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_statusBarScrim; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_title = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_title; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_titleEnabled = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_titleEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_toolbarId = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_toolbarId; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_Layout = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_Layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_Layout_layout_collapseMode = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_Layout_layout_collapseMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier = global::Sarand.BusinessMgr.Resource.Styleable.CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ColorStateListItem = global::Sarand.BusinessMgr.Resource.Styleable.ColorStateListItem; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ColorStateListItem_alpha = global::Sarand.BusinessMgr.Resource.Styleable.ColorStateListItem_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ColorStateListItem_android_alpha = global::Sarand.BusinessMgr.Resource.Styleable.ColorStateListItem_android_alpha; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ColorStateListItem_android_color = global::Sarand.BusinessMgr.Resource.Styleable.ColorStateListItem_android_color; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CompoundButton = global::Sarand.BusinessMgr.Resource.Styleable.CompoundButton; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CompoundButton_android_button = global::Sarand.BusinessMgr.Resource.Styleable.CompoundButton_android_button; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CompoundButton_buttonTint = global::Sarand.BusinessMgr.Resource.Styleable.CompoundButton_buttonTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CompoundButton_buttonTintMode = global::Sarand.BusinessMgr.Resource.Styleable.CompoundButton_buttonTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_keylines = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_keylines; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_statusBarBackground = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_statusBarBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_Layout = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_Layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_Layout_android_layout_gravity = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_Layout_android_layout_gravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_Layout_layout_anchor = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_Layout_layout_anchor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_Layout_layout_anchorGravity = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_Layout_layout_anchorGravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_Layout_layout_behavior = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_Layout_layout_behavior; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_Layout_layout_dodgeInsetEdges = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_Layout_layout_dodgeInsetEdges; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_Layout_layout_insetEdge = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_Layout_layout_insetEdge; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.CoordinatorLayout_Layout_layout_keyline = global::Sarand.BusinessMgr.Resource.Styleable.CoordinatorLayout_Layout_layout_keyline; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DesignTheme = global::Sarand.BusinessMgr.Resource.Styleable.DesignTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DesignTheme_bottomSheetDialogTheme = global::Sarand.BusinessMgr.Resource.Styleable.DesignTheme_bottomSheetDialogTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DesignTheme_bottomSheetStyle = global::Sarand.BusinessMgr.Resource.Styleable.DesignTheme_bottomSheetStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DesignTheme_textColorError = global::Sarand.BusinessMgr.Resource.Styleable.DesignTheme_textColorError; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DrawerArrowToggle = global::Sarand.BusinessMgr.Resource.Styleable.DrawerArrowToggle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DrawerArrowToggle_arrowHeadLength = global::Sarand.BusinessMgr.Resource.Styleable.DrawerArrowToggle_arrowHeadLength; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DrawerArrowToggle_arrowShaftLength = global::Sarand.BusinessMgr.Resource.Styleable.DrawerArrowToggle_arrowShaftLength; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DrawerArrowToggle_barLength = global::Sarand.BusinessMgr.Resource.Styleable.DrawerArrowToggle_barLength; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DrawerArrowToggle_color = global::Sarand.BusinessMgr.Resource.Styleable.DrawerArrowToggle_color; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DrawerArrowToggle_drawableSize = global::Sarand.BusinessMgr.Resource.Styleable.DrawerArrowToggle_drawableSize; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DrawerArrowToggle_gapBetweenBars = global::Sarand.BusinessMgr.Resource.Styleable.DrawerArrowToggle_gapBetweenBars; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DrawerArrowToggle_spinBars = global::Sarand.BusinessMgr.Resource.Styleable.DrawerArrowToggle_spinBars; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.DrawerArrowToggle_thickness = global::Sarand.BusinessMgr.Resource.Styleable.DrawerArrowToggle_thickness; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_backgroundTint = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_backgroundTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_backgroundTintMode = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_backgroundTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_borderWidth = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_borderWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_elevation = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_fabSize = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_fabSize; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_pressedTranslationZ = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_pressedTranslationZ; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_rippleColor = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_rippleColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_useCompatPadding = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_useCompatPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_Behavior_Layout = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_Behavior_Layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FloatingActionButton_Behavior_Layout_behavior_autoHide = global::Sarand.BusinessMgr.Resource.Styleable.FloatingActionButton_Behavior_Layout_behavior_autoHide; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamily = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamily_fontProviderAuthority = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderAuthority; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamily_fontProviderCerts = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderCerts; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamily_fontProviderFetchStrategy = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderFetchStrategy; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamily_fontProviderFetchTimeout = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderFetchTimeout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamily_fontProviderPackage = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderPackage; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamily_fontProviderQuery = global::Sarand.BusinessMgr.Resource.Styleable.FontFamily_fontProviderQuery; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamilyFont = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamilyFont_android_font = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_android_font; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamilyFont_android_fontStyle = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_android_fontStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamilyFont_android_fontWeight = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_android_fontWeight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamilyFont_font = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_font; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamilyFont_fontStyle = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_fontStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.FontFamilyFont_fontWeight = global::Sarand.BusinessMgr.Resource.Styleable.FontFamilyFont_fontWeight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ForegroundLinearLayout = global::Sarand.BusinessMgr.Resource.Styleable.ForegroundLinearLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ForegroundLinearLayout_android_foreground = global::Sarand.BusinessMgr.Resource.Styleable.ForegroundLinearLayout_android_foreground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ForegroundLinearLayout_android_foregroundGravity = global::Sarand.BusinessMgr.Resource.Styleable.ForegroundLinearLayout_android_foregroundGravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ForegroundLinearLayout_foregroundInsidePadding = global::Sarand.BusinessMgr.Resource.Styleable.ForegroundLinearLayout_foregroundInsidePadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_android_baselineAligned = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_android_baselineAligned; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_android_baselineAlignedChildIndex = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_android_baselineAlignedChildIndex; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_android_gravity = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_android_gravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_android_orientation = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_android_orientation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_android_weightSum = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_android_weightSum; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_divider = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_divider; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_dividerPadding = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_dividerPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_measureWithLargestChild = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_measureWithLargestChild; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_showDividers = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_showDividers; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_Layout = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_Layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_Layout_android_layout_gravity = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_Layout_android_layout_gravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_Layout_android_layout_height = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_Layout_android_layout_height; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_Layout_android_layout_weight = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_Layout_android_layout_weight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.LinearLayoutCompat_Layout_android_layout_width = global::Sarand.BusinessMgr.Resource.Styleable.LinearLayoutCompat_Layout_android_layout_width; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ListPopupWindow = global::Sarand.BusinessMgr.Resource.Styleable.ListPopupWindow; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ListPopupWindow_android_dropDownHorizontalOffset = global::Sarand.BusinessMgr.Resource.Styleable.ListPopupWindow_android_dropDownHorizontalOffset; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ListPopupWindow_android_dropDownVerticalOffset = global::Sarand.BusinessMgr.Resource.Styleable.ListPopupWindow_android_dropDownVerticalOffset; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuGroup = global::Sarand.BusinessMgr.Resource.Styleable.MenuGroup; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuGroup_android_checkableBehavior = global::Sarand.BusinessMgr.Resource.Styleable.MenuGroup_android_checkableBehavior; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuGroup_android_enabled = global::Sarand.BusinessMgr.Resource.Styleable.MenuGroup_android_enabled; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuGroup_android_id = global::Sarand.BusinessMgr.Resource.Styleable.MenuGroup_android_id; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuGroup_android_menuCategory = global::Sarand.BusinessMgr.Resource.Styleable.MenuGroup_android_menuCategory; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuGroup_android_orderInCategory = global::Sarand.BusinessMgr.Resource.Styleable.MenuGroup_android_orderInCategory; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuGroup_android_visible = global::Sarand.BusinessMgr.Resource.Styleable.MenuGroup_android_visible; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_actionLayout = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_actionLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_actionProviderClass = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_actionProviderClass; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_actionViewClass = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_actionViewClass; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_alphabeticModifiers = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_alphabeticModifiers; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_alphabeticShortcut = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_alphabeticShortcut; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_checkable = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_checkable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_checked = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_checked; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_enabled = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_enabled; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_icon = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_icon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_id = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_id; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_menuCategory = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_menuCategory; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_numericShortcut = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_numericShortcut; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_onClick = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_onClick; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_orderInCategory = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_orderInCategory; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_title = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_title; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_titleCondensed = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_titleCondensed; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_android_visible = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_android_visible; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_contentDescription = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_contentDescription; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_iconTint = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_iconTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_iconTintMode = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_iconTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_numericModifiers = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_numericModifiers; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_showAsAction = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_showAsAction; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuItem_tooltipText = global::Sarand.BusinessMgr.Resource.Styleable.MenuItem_tooltipText; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView = global::Sarand.BusinessMgr.Resource.Styleable.MenuView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView_android_headerBackground = global::Sarand.BusinessMgr.Resource.Styleable.MenuView_android_headerBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView_android_horizontalDivider = global::Sarand.BusinessMgr.Resource.Styleable.MenuView_android_horizontalDivider; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView_android_itemBackground = global::Sarand.BusinessMgr.Resource.Styleable.MenuView_android_itemBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView_android_itemIconDisabledAlpha = global::Sarand.BusinessMgr.Resource.Styleable.MenuView_android_itemIconDisabledAlpha; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView_android_itemTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.MenuView_android_itemTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView_android_verticalDivider = global::Sarand.BusinessMgr.Resource.Styleable.MenuView_android_verticalDivider; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView_android_windowAnimationStyle = global::Sarand.BusinessMgr.Resource.Styleable.MenuView_android_windowAnimationStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView_preserveIconSpacing = global::Sarand.BusinessMgr.Resource.Styleable.MenuView_preserveIconSpacing; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.MenuView_subMenuArrow = global::Sarand.BusinessMgr.Resource.Styleable.MenuView_subMenuArrow; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_android_background = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_android_background; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_android_fitsSystemWindows = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_android_fitsSystemWindows; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_android_maxWidth = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_android_maxWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_elevation = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_headerLayout = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_headerLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_itemBackground = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_itemBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_itemIconTint = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_itemIconTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_itemTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_itemTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_itemTextColor = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_itemTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.NavigationView_menu = global::Sarand.BusinessMgr.Resource.Styleable.NavigationView_menu; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.PopupWindow = global::Sarand.BusinessMgr.Resource.Styleable.PopupWindow; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.PopupWindow_android_popupAnimationStyle = global::Sarand.BusinessMgr.Resource.Styleable.PopupWindow_android_popupAnimationStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.PopupWindow_android_popupBackground = global::Sarand.BusinessMgr.Resource.Styleable.PopupWindow_android_popupBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.PopupWindow_overlapAnchor = global::Sarand.BusinessMgr.Resource.Styleable.PopupWindow_overlapAnchor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.PopupWindowBackgroundState = global::Sarand.BusinessMgr.Resource.Styleable.PopupWindowBackgroundState; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.PopupWindowBackgroundState_state_above_anchor = global::Sarand.BusinessMgr.Resource.Styleable.PopupWindowBackgroundState_state_above_anchor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecycleListView = global::Sarand.BusinessMgr.Resource.Styleable.RecycleListView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecycleListView_paddingBottomNoButtons = global::Sarand.BusinessMgr.Resource.Styleable.RecycleListView_paddingBottomNoButtons; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecycleListView_paddingTopNoTitle = global::Sarand.BusinessMgr.Resource.Styleable.RecycleListView_paddingTopNoTitle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_android_descendantFocusability = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_android_descendantFocusability; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_android_orientation = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_android_orientation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_fastScrollEnabled = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_fastScrollEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_fastScrollHorizontalThumbDrawable = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_fastScrollHorizontalThumbDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_fastScrollHorizontalTrackDrawable = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_fastScrollHorizontalTrackDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_fastScrollVerticalThumbDrawable = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_fastScrollVerticalThumbDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_fastScrollVerticalTrackDrawable = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_fastScrollVerticalTrackDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_layoutManager = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_layoutManager; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_reverseLayout = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_reverseLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_spanCount = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_spanCount; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.RecyclerView_stackFromEnd = global::Sarand.BusinessMgr.Resource.Styleable.RecyclerView_stackFromEnd; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ScrimInsetsFrameLayout = global::Sarand.BusinessMgr.Resource.Styleable.ScrimInsetsFrameLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ScrimInsetsFrameLayout_insetForeground = global::Sarand.BusinessMgr.Resource.Styleable.ScrimInsetsFrameLayout_insetForeground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ScrollingViewBehavior_Layout = global::Sarand.BusinessMgr.Resource.Styleable.ScrollingViewBehavior_Layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ScrollingViewBehavior_Layout_behavior_overlapTop = global::Sarand.BusinessMgr.Resource.Styleable.ScrollingViewBehavior_Layout_behavior_overlapTop; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView = global::Sarand.BusinessMgr.Resource.Styleable.SearchView; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_android_focusable = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_android_focusable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_android_imeOptions = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_android_imeOptions; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_android_inputType = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_android_inputType; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_android_maxWidth = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_android_maxWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_closeIcon = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_closeIcon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_commitIcon = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_commitIcon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_defaultQueryHint = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_defaultQueryHint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_goIcon = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_goIcon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_iconifiedByDefault = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_iconifiedByDefault; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_layout = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_queryBackground = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_queryBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_queryHint = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_queryHint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_searchHintIcon = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_searchHintIcon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_searchIcon = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_searchIcon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_submitBackground = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_submitBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_suggestionRowLayout = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_suggestionRowLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SearchView_voiceIcon = global::Sarand.BusinessMgr.Resource.Styleable.SearchView_voiceIcon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SnackbarLayout = global::Sarand.BusinessMgr.Resource.Styleable.SnackbarLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SnackbarLayout_android_maxWidth = global::Sarand.BusinessMgr.Resource.Styleable.SnackbarLayout_android_maxWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SnackbarLayout_elevation = global::Sarand.BusinessMgr.Resource.Styleable.SnackbarLayout_elevation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SnackbarLayout_maxActionInlineWidth = global::Sarand.BusinessMgr.Resource.Styleable.SnackbarLayout_maxActionInlineWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Spinner = global::Sarand.BusinessMgr.Resource.Styleable.Spinner; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Spinner_android_dropDownWidth = global::Sarand.BusinessMgr.Resource.Styleable.Spinner_android_dropDownWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Spinner_android_entries = global::Sarand.BusinessMgr.Resource.Styleable.Spinner_android_entries; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Spinner_android_popupBackground = global::Sarand.BusinessMgr.Resource.Styleable.Spinner_android_popupBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Spinner_android_prompt = global::Sarand.BusinessMgr.Resource.Styleable.Spinner_android_prompt; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Spinner_popupTheme = global::Sarand.BusinessMgr.Resource.Styleable.Spinner_popupTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_android_textOff = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_android_textOff; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_android_textOn = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_android_textOn; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_android_thumb = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_android_thumb; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_showText = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_showText; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_splitTrack = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_splitTrack; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_switchMinWidth = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_switchMinWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_switchPadding = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_switchPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_switchTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_switchTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_thumbTextPadding = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_thumbTextPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_thumbTint = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_thumbTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_thumbTintMode = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_thumbTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_track = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_track; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_trackTint = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_trackTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.SwitchCompat_trackTintMode = global::Sarand.BusinessMgr.Resource.Styleable.SwitchCompat_trackTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabItem = global::Sarand.BusinessMgr.Resource.Styleable.TabItem; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabItem_android_icon = global::Sarand.BusinessMgr.Resource.Styleable.TabItem_android_icon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabItem_android_layout = global::Sarand.BusinessMgr.Resource.Styleable.TabItem_android_layout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabItem_android_text = global::Sarand.BusinessMgr.Resource.Styleable.TabItem_android_text; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabBackground = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabBackground; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabContentStart = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabContentStart; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabGravity = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabGravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabIndicatorColor = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabIndicatorColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabIndicatorHeight = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabIndicatorHeight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabMaxWidth = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabMaxWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabMinWidth = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabMinWidth; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabMode = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabPadding = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabPadding; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabPaddingBottom = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabPaddingBottom; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabPaddingEnd = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabPaddingEnd; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabPaddingStart = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabPaddingStart; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabPaddingTop = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabPaddingTop; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabSelectedTextColor = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabSelectedTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TabLayout_tabTextColor = global::Sarand.BusinessMgr.Resource.Styleable.TabLayout_tabTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_fontFamily = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_fontFamily; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_shadowColor = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_shadowColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_shadowDx = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_shadowDx; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_shadowDy = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_shadowDy; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_shadowRadius = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_shadowRadius; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_textColor = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_textColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_textColorHint = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_textColorHint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_textColorLink = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_textColorLink; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_textSize = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_textSize; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_textStyle = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_textStyle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_android_typeface = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_android_typeface; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_fontFamily = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_fontFamily; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextAppearance_textAllCaps = global::Sarand.BusinessMgr.Resource.Styleable.TextAppearance_textAllCaps; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_android_hint = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_android_hint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_android_textColorHint = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_android_textColorHint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_counterEnabled = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_counterEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_counterMaxLength = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_counterMaxLength; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_counterOverflowTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_counterOverflowTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_counterTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_counterTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_errorEnabled = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_errorEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_errorTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_errorTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_hintAnimationEnabled = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_hintAnimationEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_hintEnabled = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_hintEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_hintTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_hintTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_passwordToggleContentDescription = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_passwordToggleContentDescription; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_passwordToggleDrawable = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_passwordToggleDrawable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_passwordToggleEnabled = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_passwordToggleEnabled; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_passwordToggleTint = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_passwordToggleTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.TextInputLayout_passwordToggleTintMode = global::Sarand.BusinessMgr.Resource.Styleable.TextInputLayout_passwordToggleTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_android_gravity = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_android_gravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_android_minHeight = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_android_minHeight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_buttonGravity = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_buttonGravity; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_collapseContentDescription = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_collapseContentDescription; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_collapseIcon = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_collapseIcon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_contentInsetEnd = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_contentInsetEnd; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_contentInsetEndWithActions = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_contentInsetEndWithActions; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_contentInsetLeft = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_contentInsetLeft; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_contentInsetRight = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_contentInsetRight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_contentInsetStart = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_contentInsetStart; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_contentInsetStartWithNavigation = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_contentInsetStartWithNavigation; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_logo = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_logo; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_logoDescription = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_logoDescription; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_maxButtonHeight = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_maxButtonHeight; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_navigationContentDescription = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_navigationContentDescription; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_navigationIcon = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_navigationIcon; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_popupTheme = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_popupTheme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_subtitle = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_subtitle; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_subtitleTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_subtitleTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_subtitleTextColor = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_subtitleTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_title = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_title; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_titleMargin = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_titleMargin; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_titleMarginBottom = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_titleMarginBottom; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_titleMarginEnd = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_titleMarginEnd; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_titleMarginStart = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_titleMarginStart; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_titleMarginTop = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_titleMarginTop; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_titleMargins = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_titleMargins; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_titleTextAppearance = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_titleTextAppearance; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.Toolbar_titleTextColor = global::Sarand.BusinessMgr.Resource.Styleable.Toolbar_titleTextColor; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.View = global::Sarand.BusinessMgr.Resource.Styleable.View; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.View_android_focusable = global::Sarand.BusinessMgr.Resource.Styleable.View_android_focusable; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.View_android_theme = global::Sarand.BusinessMgr.Resource.Styleable.View_android_theme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.View_paddingEnd = global::Sarand.BusinessMgr.Resource.Styleable.View_paddingEnd; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.View_paddingStart = global::Sarand.BusinessMgr.Resource.Styleable.View_paddingStart; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.View_theme = global::Sarand.BusinessMgr.Resource.Styleable.View_theme; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ViewBackgroundHelper = global::Sarand.BusinessMgr.Resource.Styleable.ViewBackgroundHelper; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ViewBackgroundHelper_android_background = global::Sarand.BusinessMgr.Resource.Styleable.ViewBackgroundHelper_android_background; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ViewBackgroundHelper_backgroundTint = global::Sarand.BusinessMgr.Resource.Styleable.ViewBackgroundHelper_backgroundTint; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ViewBackgroundHelper_backgroundTintMode = global::Sarand.BusinessMgr.Resource.Styleable.ViewBackgroundHelper_backgroundTintMode; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ViewStubCompat = global::Sarand.BusinessMgr.Resource.Styleable.ViewStubCompat; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ViewStubCompat_android_id = global::Sarand.BusinessMgr.Resource.Styleable.ViewStubCompat_android_id; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ViewStubCompat_android_inflatedId = global::Sarand.BusinessMgr.Resource.Styleable.ViewStubCompat_android_inflatedId; + global::Xamarin.Forms.Platform.Android.Resource.Styleable.ViewStubCompat_android_layout = global::Sarand.BusinessMgr.Resource.Styleable.ViewStubCompat_android_layout; + } + + public partial class Animation + { + + // aapt resource value: 0x7f050000 + public const int abc_fade_in = 2131034112; + + // aapt resource value: 0x7f050001 + public const int abc_fade_out = 2131034113; + + // aapt resource value: 0x7f050002 + public const int abc_grow_fade_in_from_bottom = 2131034114; + + // aapt resource value: 0x7f050003 + public const int abc_popup_enter = 2131034115; + + // aapt resource value: 0x7f050004 + public const int abc_popup_exit = 2131034116; + + // aapt resource value: 0x7f050005 + public const int abc_shrink_fade_out_from_bottom = 2131034117; + + // aapt resource value: 0x7f050006 + public const int abc_slide_in_bottom = 2131034118; + + // aapt resource value: 0x7f050007 + public const int abc_slide_in_top = 2131034119; + + // aapt resource value: 0x7f050008 + public const int abc_slide_out_bottom = 2131034120; + + // aapt resource value: 0x7f050009 + public const int abc_slide_out_top = 2131034121; + + // aapt resource value: 0x7f05000a + public const int design_bottom_sheet_slide_in = 2131034122; + + // aapt resource value: 0x7f05000b + public const int design_bottom_sheet_slide_out = 2131034123; + + // aapt resource value: 0x7f05000c + public const int design_snackbar_in = 2131034124; + + // aapt resource value: 0x7f05000d + public const int design_snackbar_out = 2131034125; + + // aapt resource value: 0x7f05000e + public const int EnterFromLeft = 2131034126; + + // aapt resource value: 0x7f05000f + public const int EnterFromRight = 2131034127; + + // aapt resource value: 0x7f050010 + public const int ExitToLeft = 2131034128; + + // aapt resource value: 0x7f050011 + public const int ExitToRight = 2131034129; + + // aapt resource value: 0x7f050012 + public const int tooltip_enter = 2131034130; + + // aapt resource value: 0x7f050013 + public const int tooltip_exit = 2131034131; + + static Animation() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Animation() + { + } + } + + public partial class Animator + { + + // aapt resource value: 0x7f060000 + public const int design_appbar_state_list_animator = 2131099648; + + static Animator() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Animator() + { + } + } + + public partial class Attribute + { + + // aapt resource value: 0x7f01006b + public const int actionBarDivider = 2130772075; + + // aapt resource value: 0x7f01006c + public const int actionBarItemBackground = 2130772076; + + // aapt resource value: 0x7f010065 + public const int actionBarPopupTheme = 2130772069; + + // aapt resource value: 0x7f01006a + public const int actionBarSize = 2130772074; + + // aapt resource value: 0x7f010067 + public const int actionBarSplitStyle = 2130772071; + + // aapt resource value: 0x7f010066 + public const int actionBarStyle = 2130772070; + + // aapt resource value: 0x7f010061 + public const int actionBarTabBarStyle = 2130772065; + + // aapt resource value: 0x7f010060 + public const int actionBarTabStyle = 2130772064; + + // aapt resource value: 0x7f010062 + public const int actionBarTabTextStyle = 2130772066; + + // aapt resource value: 0x7f010068 + public const int actionBarTheme = 2130772072; + + // aapt resource value: 0x7f010069 + public const int actionBarWidgetTheme = 2130772073; + + // aapt resource value: 0x7f010086 + public const int actionButtonStyle = 2130772102; + + // aapt resource value: 0x7f010082 + public const int actionDropDownStyle = 2130772098; + + // aapt resource value: 0x7f0100dd + public const int actionLayout = 2130772189; + + // aapt resource value: 0x7f01006d + public const int actionMenuTextAppearance = 2130772077; + + // aapt resource value: 0x7f01006e + public const int actionMenuTextColor = 2130772078; + + // aapt resource value: 0x7f010071 + public const int actionModeBackground = 2130772081; + + // aapt resource value: 0x7f010070 + public const int actionModeCloseButtonStyle = 2130772080; + + // aapt resource value: 0x7f010073 + public const int actionModeCloseDrawable = 2130772083; + + // aapt resource value: 0x7f010075 + public const int actionModeCopyDrawable = 2130772085; + + // aapt resource value: 0x7f010074 + public const int actionModeCutDrawable = 2130772084; + + // aapt resource value: 0x7f010079 + public const int actionModeFindDrawable = 2130772089; + + // aapt resource value: 0x7f010076 + public const int actionModePasteDrawable = 2130772086; + + // aapt resource value: 0x7f01007b + public const int actionModePopupWindowStyle = 2130772091; + + // aapt resource value: 0x7f010077 + public const int actionModeSelectAllDrawable = 2130772087; + + // aapt resource value: 0x7f010078 + public const int actionModeShareDrawable = 2130772088; + + // aapt resource value: 0x7f010072 + public const int actionModeSplitBackground = 2130772082; + + // aapt resource value: 0x7f01006f + public const int actionModeStyle = 2130772079; + + // aapt resource value: 0x7f01007a + public const int actionModeWebSearchDrawable = 2130772090; + + // aapt resource value: 0x7f010063 + public const int actionOverflowButtonStyle = 2130772067; + + // aapt resource value: 0x7f010064 + public const int actionOverflowMenuStyle = 2130772068; + + // aapt resource value: 0x7f0100df + public const int actionProviderClass = 2130772191; + + // aapt resource value: 0x7f0100de + public const int actionViewClass = 2130772190; + + // aapt resource value: 0x7f01008e + public const int activityChooserViewStyle = 2130772110; + + // aapt resource value: 0x7f0100b3 + public const int alertDialogButtonGroupStyle = 2130772147; + + // aapt resource value: 0x7f0100b4 + public const int alertDialogCenterButtons = 2130772148; + + // aapt resource value: 0x7f0100b2 + public const int alertDialogStyle = 2130772146; + + // aapt resource value: 0x7f0100b5 + public const int alertDialogTheme = 2130772149; + + // aapt resource value: 0x7f0100cb + public const int allowStacking = 2130772171; + + // aapt resource value: 0x7f0100cc + public const int alpha = 2130772172; + + // aapt resource value: 0x7f0100da + public const int alphabeticModifiers = 2130772186; + + // aapt resource value: 0x7f0100d3 + public const int arrowHeadLength = 2130772179; + + // aapt resource value: 0x7f0100d4 + public const int arrowShaftLength = 2130772180; + + // aapt resource value: 0x7f0100ba + public const int autoCompleteTextViewStyle = 2130772154; + + // aapt resource value: 0x7f010054 + public const int autoSizeMaxTextSize = 2130772052; + + // aapt resource value: 0x7f010053 + public const int autoSizeMinTextSize = 2130772051; + + // aapt resource value: 0x7f010052 + public const int autoSizePresetSizes = 2130772050; + + // aapt resource value: 0x7f010051 + public const int autoSizeStepGranularity = 2130772049; + + // aapt resource value: 0x7f010050 + public const int autoSizeTextType = 2130772048; + + // aapt resource value: 0x7f01002e + public const int background = 2130772014; + + // aapt resource value: 0x7f010030 + public const int backgroundSplit = 2130772016; + + // aapt resource value: 0x7f01002f + public const int backgroundStacked = 2130772015; + + // aapt resource value: 0x7f010116 + public const int backgroundTint = 2130772246; + + // aapt resource value: 0x7f010117 + public const int backgroundTintMode = 2130772247; + + // aapt resource value: 0x7f0100d5 + public const int barLength = 2130772181; + + // aapt resource value: 0x7f010141 + public const int behavior_autoHide = 2130772289; + + // aapt resource value: 0x7f01011e + public const int behavior_hideable = 2130772254; + + // aapt resource value: 0x7f01014a + public const int behavior_overlapTop = 2130772298; + + // aapt resource value: 0x7f01011d + public const int behavior_peekHeight = 2130772253; + + // aapt resource value: 0x7f01011f + public const int behavior_skipCollapsed = 2130772255; + + // aapt resource value: 0x7f01013f + public const int borderWidth = 2130772287; + + // aapt resource value: 0x7f01008b + public const int borderlessButtonStyle = 2130772107; + + // aapt resource value: 0x7f010139 + public const int bottomSheetDialogTheme = 2130772281; + + // aapt resource value: 0x7f01013a + public const int bottomSheetStyle = 2130772282; + + // aapt resource value: 0x7f010088 + public const int buttonBarButtonStyle = 2130772104; + + // aapt resource value: 0x7f0100b8 + public const int buttonBarNegativeButtonStyle = 2130772152; + + // aapt resource value: 0x7f0100b9 + public const int buttonBarNeutralButtonStyle = 2130772153; + + // aapt resource value: 0x7f0100b7 + public const int buttonBarPositiveButtonStyle = 2130772151; + + // aapt resource value: 0x7f010087 + public const int buttonBarStyle = 2130772103; + + // aapt resource value: 0x7f01010b + public const int buttonGravity = 2130772235; + + // aapt resource value: 0x7f010043 + public const int buttonPanelSideLayout = 2130772035; + + // aapt resource value: 0x7f0100bb + public const int buttonStyle = 2130772155; + + // aapt resource value: 0x7f0100bc + public const int buttonStyleSmall = 2130772156; + + // aapt resource value: 0x7f0100cd + public const int buttonTint = 2130772173; + + // aapt resource value: 0x7f0100ce + public const int buttonTintMode = 2130772174; + + // aapt resource value: 0x7f010017 + public const int cardBackgroundColor = 2130771991; + + // aapt resource value: 0x7f010018 + public const int cardCornerRadius = 2130771992; + + // aapt resource value: 0x7f010019 + public const int cardElevation = 2130771993; + + // aapt resource value: 0x7f01001a + public const int cardMaxElevation = 2130771994; + + // aapt resource value: 0x7f01001c + public const int cardPreventCornerOverlap = 2130771996; + + // aapt resource value: 0x7f01001b + public const int cardUseCompatPadding = 2130771995; + + // aapt resource value: 0x7f0100bd + public const int checkboxStyle = 2130772157; + + // aapt resource value: 0x7f0100be + public const int checkedTextViewStyle = 2130772158; + + // aapt resource value: 0x7f0100ee + public const int closeIcon = 2130772206; + + // aapt resource value: 0x7f010040 + public const int closeItemLayout = 2130772032; + + // aapt resource value: 0x7f01010d + public const int collapseContentDescription = 2130772237; + + // aapt resource value: 0x7f01010c + public const int collapseIcon = 2130772236; + + // aapt resource value: 0x7f01012c + public const int collapsedTitleGravity = 2130772268; + + // aapt resource value: 0x7f010126 + public const int collapsedTitleTextAppearance = 2130772262; + + // aapt resource value: 0x7f0100cf + public const int color = 2130772175; + + // aapt resource value: 0x7f0100aa + public const int colorAccent = 2130772138; + + // aapt resource value: 0x7f0100b1 + public const int colorBackgroundFloating = 2130772145; + + // aapt resource value: 0x7f0100ae + public const int colorButtonNormal = 2130772142; + + // aapt resource value: 0x7f0100ac + public const int colorControlActivated = 2130772140; + + // aapt resource value: 0x7f0100ad + public const int colorControlHighlight = 2130772141; + + // aapt resource value: 0x7f0100ab + public const int colorControlNormal = 2130772139; + + // aapt resource value: 0x7f0100ca + public const int colorError = 2130772170; + + // aapt resource value: 0x7f0100a8 + public const int colorPrimary = 2130772136; + + // aapt resource value: 0x7f0100a9 + public const int colorPrimaryDark = 2130772137; + + // aapt resource value: 0x7f0100af + public const int colorSwitchThumbNormal = 2130772143; + + // aapt resource value: 0x7f0100f3 + public const int commitIcon = 2130772211; + + // aapt resource value: 0x7f0100e0 + public const int contentDescription = 2130772192; + + // aapt resource value: 0x7f010039 + public const int contentInsetEnd = 2130772025; + + // aapt resource value: 0x7f01003d + public const int contentInsetEndWithActions = 2130772029; + + // aapt resource value: 0x7f01003a + public const int contentInsetLeft = 2130772026; + + // aapt resource value: 0x7f01003b + public const int contentInsetRight = 2130772027; + + // aapt resource value: 0x7f010038 + public const int contentInsetStart = 2130772024; + + // aapt resource value: 0x7f01003c + public const int contentInsetStartWithNavigation = 2130772028; + + // aapt resource value: 0x7f01001d + public const int contentPadding = 2130771997; + + // aapt resource value: 0x7f010021 + public const int contentPaddingBottom = 2130772001; + + // aapt resource value: 0x7f01001e + public const int contentPaddingLeft = 2130771998; + + // aapt resource value: 0x7f01001f + public const int contentPaddingRight = 2130771999; + + // aapt resource value: 0x7f010020 + public const int contentPaddingTop = 2130772000; + + // aapt resource value: 0x7f010127 + public const int contentScrim = 2130772263; + + // aapt resource value: 0x7f0100b0 + public const int controlBackground = 2130772144; + + // aapt resource value: 0x7f010160 + public const int counterEnabled = 2130772320; + + // aapt resource value: 0x7f010161 + public const int counterMaxLength = 2130772321; + + // aapt resource value: 0x7f010163 + public const int counterOverflowTextAppearance = 2130772323; + + // aapt resource value: 0x7f010162 + public const int counterTextAppearance = 2130772322; + + // aapt resource value: 0x7f010031 + public const int customNavigationLayout = 2130772017; + + // aapt resource value: 0x7f0100ed + public const int defaultQueryHint = 2130772205; + + // aapt resource value: 0x7f010080 + public const int dialogPreferredPadding = 2130772096; + + // aapt resource value: 0x7f01007f + public const int dialogTheme = 2130772095; + + // aapt resource value: 0x7f010027 + public const int displayOptions = 2130772007; + + // aapt resource value: 0x7f01002d + public const int divider = 2130772013; + + // aapt resource value: 0x7f01008d + public const int dividerHorizontal = 2130772109; + + // aapt resource value: 0x7f0100d9 + public const int dividerPadding = 2130772185; + + // aapt resource value: 0x7f01008c + public const int dividerVertical = 2130772108; + + // aapt resource value: 0x7f0100d1 + public const int drawableSize = 2130772177; + + // aapt resource value: 0x7f010022 + public const int drawerArrowStyle = 2130772002; + + // aapt resource value: 0x7f01009f + public const int dropDownListViewStyle = 2130772127; + + // aapt resource value: 0x7f010083 + public const int dropdownListPreferredItemHeight = 2130772099; + + // aapt resource value: 0x7f010094 + public const int editTextBackground = 2130772116; + + // aapt resource value: 0x7f010093 + public const int editTextColor = 2130772115; + + // aapt resource value: 0x7f0100bf + public const int editTextStyle = 2130772159; + + // aapt resource value: 0x7f01003e + public const int elevation = 2130772030; + + // aapt resource value: 0x7f01015e + public const int errorEnabled = 2130772318; + + // aapt resource value: 0x7f01015f + public const int errorTextAppearance = 2130772319; + + // aapt resource value: 0x7f010042 + public const int expandActivityOverflowButtonDrawable = 2130772034; + + // aapt resource value: 0x7f010118 + public const int expanded = 2130772248; + + // aapt resource value: 0x7f01012d + public const int expandedTitleGravity = 2130772269; + + // aapt resource value: 0x7f010120 + public const int expandedTitleMargin = 2130772256; + + // aapt resource value: 0x7f010124 + public const int expandedTitleMarginBottom = 2130772260; + + // aapt resource value: 0x7f010123 + public const int expandedTitleMarginEnd = 2130772259; + + // aapt resource value: 0x7f010121 + public const int expandedTitleMarginStart = 2130772257; + + // aapt resource value: 0x7f010122 + public const int expandedTitleMarginTop = 2130772258; + + // aapt resource value: 0x7f010125 + public const int expandedTitleTextAppearance = 2130772261; + + // aapt resource value: 0x7f010015 + public const int externalRouteEnabledDrawable = 2130771989; + + // aapt resource value: 0x7f01013d + public const int fabSize = 2130772285; + + // aapt resource value: 0x7f010004 + public const int fastScrollEnabled = 2130771972; + + // aapt resource value: 0x7f010007 + public const int fastScrollHorizontalThumbDrawable = 2130771975; + + // aapt resource value: 0x7f010008 + public const int fastScrollHorizontalTrackDrawable = 2130771976; + + // aapt resource value: 0x7f010005 + public const int fastScrollVerticalThumbDrawable = 2130771973; + + // aapt resource value: 0x7f010006 + public const int fastScrollVerticalTrackDrawable = 2130771974; + + // aapt resource value: 0x7f010171 + public const int font = 2130772337; + + // aapt resource value: 0x7f010055 + public const int fontFamily = 2130772053; + + // aapt resource value: 0x7f01016a + public const int fontProviderAuthority = 2130772330; + + // aapt resource value: 0x7f01016d + public const int fontProviderCerts = 2130772333; + + // aapt resource value: 0x7f01016e + public const int fontProviderFetchStrategy = 2130772334; + + // aapt resource value: 0x7f01016f + public const int fontProviderFetchTimeout = 2130772335; + + // aapt resource value: 0x7f01016b + public const int fontProviderPackage = 2130772331; + + // aapt resource value: 0x7f01016c + public const int fontProviderQuery = 2130772332; + + // aapt resource value: 0x7f010170 + public const int fontStyle = 2130772336; + + // aapt resource value: 0x7f010172 + public const int fontWeight = 2130772338; + + // aapt resource value: 0x7f010142 + public const int foregroundInsidePadding = 2130772290; + + // aapt resource value: 0x7f0100d2 + public const int gapBetweenBars = 2130772178; + + // aapt resource value: 0x7f0100ef + public const int goIcon = 2130772207; + + // aapt resource value: 0x7f010148 + public const int headerLayout = 2130772296; + + // aapt resource value: 0x7f010023 + public const int height = 2130772003; + + // aapt resource value: 0x7f010037 + public const int hideOnContentScroll = 2130772023; + + // aapt resource value: 0x7f010164 + public const int hintAnimationEnabled = 2130772324; + + // aapt resource value: 0x7f01015d + public const int hintEnabled = 2130772317; + + // aapt resource value: 0x7f01015c + public const int hintTextAppearance = 2130772316; + + // aapt resource value: 0x7f010085 + public const int homeAsUpIndicator = 2130772101; + + // aapt resource value: 0x7f010032 + public const int homeLayout = 2130772018; + + // aapt resource value: 0x7f01002b + public const int icon = 2130772011; + + // aapt resource value: 0x7f0100e2 + public const int iconTint = 2130772194; + + // aapt resource value: 0x7f0100e3 + public const int iconTintMode = 2130772195; + + // aapt resource value: 0x7f0100eb + public const int iconifiedByDefault = 2130772203; + + // aapt resource value: 0x7f010095 + public const int imageButtonStyle = 2130772117; + + // aapt resource value: 0x7f010034 + public const int indeterminateProgressStyle = 2130772020; + + // aapt resource value: 0x7f010041 + public const int initialActivityCount = 2130772033; + + // aapt resource value: 0x7f010149 + public const int insetForeground = 2130772297; + + // aapt resource value: 0x7f010024 + public const int isLightTheme = 2130772004; + + // aapt resource value: 0x7f010146 + public const int itemBackground = 2130772294; + + // aapt resource value: 0x7f010144 + public const int itemIconTint = 2130772292; + + // aapt resource value: 0x7f010036 + public const int itemPadding = 2130772022; + + // aapt resource value: 0x7f010147 + public const int itemTextAppearance = 2130772295; + + // aapt resource value: 0x7f010145 + public const int itemTextColor = 2130772293; + + // aapt resource value: 0x7f010131 + public const int keylines = 2130772273; + + // aapt resource value: 0x7f0100ea + public const int layout = 2130772202; + + // aapt resource value: 0x7f010000 + public const int layoutManager = 2130771968; + + // aapt resource value: 0x7f010134 + public const int layout_anchor = 2130772276; + + // aapt resource value: 0x7f010136 + public const int layout_anchorGravity = 2130772278; + + // aapt resource value: 0x7f010133 + public const int layout_behavior = 2130772275; + + // aapt resource value: 0x7f01012f + public const int layout_collapseMode = 2130772271; + + // aapt resource value: 0x7f010130 + public const int layout_collapseParallaxMultiplier = 2130772272; + + // aapt resource value: 0x7f010138 + public const int layout_dodgeInsetEdges = 2130772280; + + // aapt resource value: 0x7f010137 + public const int layout_insetEdge = 2130772279; + + // aapt resource value: 0x7f010135 + public const int layout_keyline = 2130772277; + + // aapt resource value: 0x7f01011b + public const int layout_scrollFlags = 2130772251; + + // aapt resource value: 0x7f01011c + public const int layout_scrollInterpolator = 2130772252; + + // aapt resource value: 0x7f0100a7 + public const int listChoiceBackgroundIndicator = 2130772135; + + // aapt resource value: 0x7f010081 + public const int listDividerAlertDialog = 2130772097; + + // aapt resource value: 0x7f010047 + public const int listItemLayout = 2130772039; + + // aapt resource value: 0x7f010044 + public const int listLayout = 2130772036; + + // aapt resource value: 0x7f0100c7 + public const int listMenuViewStyle = 2130772167; + + // aapt resource value: 0x7f0100a0 + public const int listPopupWindowStyle = 2130772128; + + // aapt resource value: 0x7f01009a + public const int listPreferredItemHeight = 2130772122; + + // aapt resource value: 0x7f01009c + public const int listPreferredItemHeightLarge = 2130772124; + + // aapt resource value: 0x7f01009b + public const int listPreferredItemHeightSmall = 2130772123; + + // aapt resource value: 0x7f01009d + public const int listPreferredItemPaddingLeft = 2130772125; + + // aapt resource value: 0x7f01009e + public const int listPreferredItemPaddingRight = 2130772126; + + // aapt resource value: 0x7f01002c + public const int logo = 2130772012; + + // aapt resource value: 0x7f010110 + public const int logoDescription = 2130772240; + + // aapt resource value: 0x7f01014b + public const int maxActionInlineWidth = 2130772299; + + // aapt resource value: 0x7f01010a + public const int maxButtonHeight = 2130772234; + + // aapt resource value: 0x7f0100d7 + public const int measureWithLargestChild = 2130772183; + + // aapt resource value: 0x7f010009 + public const int mediaRouteAudioTrackDrawable = 2130771977; + + // aapt resource value: 0x7f01000a + public const int mediaRouteButtonStyle = 2130771978; + + // aapt resource value: 0x7f010016 + public const int mediaRouteButtonTint = 2130771990; + + // aapt resource value: 0x7f01000b + public const int mediaRouteCloseDrawable = 2130771979; + + // aapt resource value: 0x7f01000c + public const int mediaRouteControlPanelThemeOverlay = 2130771980; + + // aapt resource value: 0x7f01000d + public const int mediaRouteDefaultIconDrawable = 2130771981; + + // aapt resource value: 0x7f01000e + public const int mediaRoutePauseDrawable = 2130771982; + + // aapt resource value: 0x7f01000f + public const int mediaRoutePlayDrawable = 2130771983; + + // aapt resource value: 0x7f010010 + public const int mediaRouteSpeakerGroupIconDrawable = 2130771984; + + // aapt resource value: 0x7f010011 + public const int mediaRouteSpeakerIconDrawable = 2130771985; + + // aapt resource value: 0x7f010012 + public const int mediaRouteStopDrawable = 2130771986; + + // aapt resource value: 0x7f010013 + public const int mediaRouteTheme = 2130771987; + + // aapt resource value: 0x7f010014 + public const int mediaRouteTvIconDrawable = 2130771988; + + // aapt resource value: 0x7f010143 + public const int menu = 2130772291; + + // aapt resource value: 0x7f010045 + public const int multiChoiceItemLayout = 2130772037; + + // aapt resource value: 0x7f01010f + public const int navigationContentDescription = 2130772239; + + // aapt resource value: 0x7f01010e + public const int navigationIcon = 2130772238; + + // aapt resource value: 0x7f010026 + public const int navigationMode = 2130772006; + + // aapt resource value: 0x7f0100db + public const int numericModifiers = 2130772187; + + // aapt resource value: 0x7f0100e6 + public const int overlapAnchor = 2130772198; + + // aapt resource value: 0x7f0100e8 + public const int paddingBottomNoButtons = 2130772200; + + // aapt resource value: 0x7f010114 + public const int paddingEnd = 2130772244; + + // aapt resource value: 0x7f010113 + public const int paddingStart = 2130772243; + + // aapt resource value: 0x7f0100e9 + public const int paddingTopNoTitle = 2130772201; + + // aapt resource value: 0x7f0100a4 + public const int panelBackground = 2130772132; + + // aapt resource value: 0x7f0100a6 + public const int panelMenuListTheme = 2130772134; + + // aapt resource value: 0x7f0100a5 + public const int panelMenuListWidth = 2130772133; + + // aapt resource value: 0x7f010167 + public const int passwordToggleContentDescription = 2130772327; + + // aapt resource value: 0x7f010166 + public const int passwordToggleDrawable = 2130772326; + + // aapt resource value: 0x7f010165 + public const int passwordToggleEnabled = 2130772325; + + // aapt resource value: 0x7f010168 + public const int passwordToggleTint = 2130772328; + + // aapt resource value: 0x7f010169 + public const int passwordToggleTintMode = 2130772329; + + // aapt resource value: 0x7f010091 + public const int popupMenuStyle = 2130772113; + + // aapt resource value: 0x7f01003f + public const int popupTheme = 2130772031; + + // aapt resource value: 0x7f010092 + public const int popupWindowStyle = 2130772114; + + // aapt resource value: 0x7f0100e4 + public const int preserveIconSpacing = 2130772196; + + // aapt resource value: 0x7f01013e + public const int pressedTranslationZ = 2130772286; + + // aapt resource value: 0x7f010035 + public const int progressBarPadding = 2130772021; + + // aapt resource value: 0x7f010033 + public const int progressBarStyle = 2130772019; + + // aapt resource value: 0x7f0100f5 + public const int queryBackground = 2130772213; + + // aapt resource value: 0x7f0100ec + public const int queryHint = 2130772204; + + // aapt resource value: 0x7f0100c0 + public const int radioButtonStyle = 2130772160; + + // aapt resource value: 0x7f0100c1 + public const int ratingBarStyle = 2130772161; + + // aapt resource value: 0x7f0100c2 + public const int ratingBarStyleIndicator = 2130772162; + + // aapt resource value: 0x7f0100c3 + public const int ratingBarStyleSmall = 2130772163; + + // aapt resource value: 0x7f010002 + public const int reverseLayout = 2130771970; + + // aapt resource value: 0x7f01013c + public const int rippleColor = 2130772284; + + // aapt resource value: 0x7f01012b + public const int scrimAnimationDuration = 2130772267; + + // aapt resource value: 0x7f01012a + public const int scrimVisibleHeightTrigger = 2130772266; + + // aapt resource value: 0x7f0100f1 + public const int searchHintIcon = 2130772209; + + // aapt resource value: 0x7f0100f0 + public const int searchIcon = 2130772208; + + // aapt resource value: 0x7f010099 + public const int searchViewStyle = 2130772121; + + // aapt resource value: 0x7f0100c4 + public const int seekBarStyle = 2130772164; + + // aapt resource value: 0x7f010089 + public const int selectableItemBackground = 2130772105; + + // aapt resource value: 0x7f01008a + public const int selectableItemBackgroundBorderless = 2130772106; + + // aapt resource value: 0x7f0100dc + public const int showAsAction = 2130772188; + + // aapt resource value: 0x7f0100d8 + public const int showDividers = 2130772184; + + // aapt resource value: 0x7f010101 + public const int showText = 2130772225; + + // aapt resource value: 0x7f010048 + public const int showTitle = 2130772040; + + // aapt resource value: 0x7f010046 + public const int singleChoiceItemLayout = 2130772038; + + // aapt resource value: 0x7f010001 + public const int spanCount = 2130771969; + + // aapt resource value: 0x7f0100d0 + public const int spinBars = 2130772176; + + // aapt resource value: 0x7f010084 + public const int spinnerDropDownItemStyle = 2130772100; + + // aapt resource value: 0x7f0100c5 + public const int spinnerStyle = 2130772165; + + // aapt resource value: 0x7f010100 + public const int splitTrack = 2130772224; + + // aapt resource value: 0x7f010049 + public const int srcCompat = 2130772041; + + // aapt resource value: 0x7f010003 + public const int stackFromEnd = 2130771971; + + // aapt resource value: 0x7f0100e7 + public const int state_above_anchor = 2130772199; + + // aapt resource value: 0x7f010119 + public const int state_collapsed = 2130772249; + + // aapt resource value: 0x7f01011a + public const int state_collapsible = 2130772250; + + // aapt resource value: 0x7f010132 + public const int statusBarBackground = 2130772274; + + // aapt resource value: 0x7f010128 + public const int statusBarScrim = 2130772264; + + // aapt resource value: 0x7f0100e5 + public const int subMenuArrow = 2130772197; + + // aapt resource value: 0x7f0100f6 + public const int submitBackground = 2130772214; + + // aapt resource value: 0x7f010028 + public const int subtitle = 2130772008; + + // aapt resource value: 0x7f010103 + public const int subtitleTextAppearance = 2130772227; + + // aapt resource value: 0x7f010112 + public const int subtitleTextColor = 2130772242; + + // aapt resource value: 0x7f01002a + public const int subtitleTextStyle = 2130772010; + + // aapt resource value: 0x7f0100f4 + public const int suggestionRowLayout = 2130772212; + + // aapt resource value: 0x7f0100fe + public const int switchMinWidth = 2130772222; + + // aapt resource value: 0x7f0100ff + public const int switchPadding = 2130772223; + + // aapt resource value: 0x7f0100c6 + public const int switchStyle = 2130772166; + + // aapt resource value: 0x7f0100fd + public const int switchTextAppearance = 2130772221; + + // aapt resource value: 0x7f01014f + public const int tabBackground = 2130772303; + + // aapt resource value: 0x7f01014e + public const int tabContentStart = 2130772302; + + // aapt resource value: 0x7f010151 + public const int tabGravity = 2130772305; + + // aapt resource value: 0x7f01014c + public const int tabIndicatorColor = 2130772300; + + // aapt resource value: 0x7f01014d + public const int tabIndicatorHeight = 2130772301; + + // aapt resource value: 0x7f010153 + public const int tabMaxWidth = 2130772307; + + // aapt resource value: 0x7f010152 + public const int tabMinWidth = 2130772306; + + // aapt resource value: 0x7f010150 + public const int tabMode = 2130772304; + + // aapt resource value: 0x7f01015b + public const int tabPadding = 2130772315; + + // aapt resource value: 0x7f01015a + public const int tabPaddingBottom = 2130772314; + + // aapt resource value: 0x7f010159 + public const int tabPaddingEnd = 2130772313; + + // aapt resource value: 0x7f010157 + public const int tabPaddingStart = 2130772311; + + // aapt resource value: 0x7f010158 + public const int tabPaddingTop = 2130772312; + + // aapt resource value: 0x7f010156 + public const int tabSelectedTextColor = 2130772310; + + // aapt resource value: 0x7f010154 + public const int tabTextAppearance = 2130772308; + + // aapt resource value: 0x7f010155 + public const int tabTextColor = 2130772309; + + // aapt resource value: 0x7f01004f + public const int textAllCaps = 2130772047; + + // aapt resource value: 0x7f01007c + public const int textAppearanceLargePopupMenu = 2130772092; + + // aapt resource value: 0x7f0100a1 + public const int textAppearanceListItem = 2130772129; + + // aapt resource value: 0x7f0100a2 + public const int textAppearanceListItemSecondary = 2130772130; + + // aapt resource value: 0x7f0100a3 + public const int textAppearanceListItemSmall = 2130772131; + + // aapt resource value: 0x7f01007e + public const int textAppearancePopupMenuHeader = 2130772094; + + // aapt resource value: 0x7f010097 + public const int textAppearanceSearchResultSubtitle = 2130772119; + + // aapt resource value: 0x7f010096 + public const int textAppearanceSearchResultTitle = 2130772118; + + // aapt resource value: 0x7f01007d + public const int textAppearanceSmallPopupMenu = 2130772093; + + // aapt resource value: 0x7f0100b6 + public const int textColorAlertDialogListItem = 2130772150; + + // aapt resource value: 0x7f01013b + public const int textColorError = 2130772283; + + // aapt resource value: 0x7f010098 + public const int textColorSearchUrl = 2130772120; + + // aapt resource value: 0x7f010115 + public const int theme = 2130772245; + + // aapt resource value: 0x7f0100d6 + public const int thickness = 2130772182; + + // aapt resource value: 0x7f0100fc + public const int thumbTextPadding = 2130772220; + + // aapt resource value: 0x7f0100f7 + public const int thumbTint = 2130772215; + + // aapt resource value: 0x7f0100f8 + public const int thumbTintMode = 2130772216; + + // aapt resource value: 0x7f01004c + public const int tickMark = 2130772044; + + // aapt resource value: 0x7f01004d + public const int tickMarkTint = 2130772045; + + // aapt resource value: 0x7f01004e + public const int tickMarkTintMode = 2130772046; + + // aapt resource value: 0x7f01004a + public const int tint = 2130772042; + + // aapt resource value: 0x7f01004b + public const int tintMode = 2130772043; + + // aapt resource value: 0x7f010025 + public const int title = 2130772005; + + // aapt resource value: 0x7f01012e + public const int titleEnabled = 2130772270; + + // aapt resource value: 0x7f010104 + public const int titleMargin = 2130772228; + + // aapt resource value: 0x7f010108 + public const int titleMarginBottom = 2130772232; + + // aapt resource value: 0x7f010106 + public const int titleMarginEnd = 2130772230; + + // aapt resource value: 0x7f010105 + public const int titleMarginStart = 2130772229; + + // aapt resource value: 0x7f010107 + public const int titleMarginTop = 2130772231; + + // aapt resource value: 0x7f010109 + public const int titleMargins = 2130772233; + + // aapt resource value: 0x7f010102 + public const int titleTextAppearance = 2130772226; + + // aapt resource value: 0x7f010111 + public const int titleTextColor = 2130772241; + + // aapt resource value: 0x7f010029 + public const int titleTextStyle = 2130772009; + + // aapt resource value: 0x7f010129 + public const int toolbarId = 2130772265; + + // aapt resource value: 0x7f010090 + public const int toolbarNavigationButtonStyle = 2130772112; + + // aapt resource value: 0x7f01008f + public const int toolbarStyle = 2130772111; + + // aapt resource value: 0x7f0100c9 + public const int tooltipForegroundColor = 2130772169; + + // aapt resource value: 0x7f0100c8 + public const int tooltipFrameBackground = 2130772168; + + // aapt resource value: 0x7f0100e1 + public const int tooltipText = 2130772193; + + // aapt resource value: 0x7f0100f9 + public const int track = 2130772217; + + // aapt resource value: 0x7f0100fa + public const int trackTint = 2130772218; + + // aapt resource value: 0x7f0100fb + public const int trackTintMode = 2130772219; + + // aapt resource value: 0x7f010140 + public const int useCompatPadding = 2130772288; + + // aapt resource value: 0x7f0100f2 + public const int voiceIcon = 2130772210; + + // aapt resource value: 0x7f010056 + public const int windowActionBar = 2130772054; + + // aapt resource value: 0x7f010058 + public const int windowActionBarOverlay = 2130772056; + + // aapt resource value: 0x7f010059 + public const int windowActionModeOverlay = 2130772057; + + // aapt resource value: 0x7f01005d + public const int windowFixedHeightMajor = 2130772061; + + // aapt resource value: 0x7f01005b + public const int windowFixedHeightMinor = 2130772059; + + // aapt resource value: 0x7f01005a + public const int windowFixedWidthMajor = 2130772058; + + // aapt resource value: 0x7f01005c + public const int windowFixedWidthMinor = 2130772060; + + // aapt resource value: 0x7f01005e + public const int windowMinWidthMajor = 2130772062; + + // aapt resource value: 0x7f01005f + public const int windowMinWidthMinor = 2130772063; + + // aapt resource value: 0x7f010057 + public const int windowNoTitle = 2130772055; + + static Attribute() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Attribute() + { + } + } + + public partial class Boolean + { + + // aapt resource value: 0x7f0f0000 + public const int abc_action_bar_embed_tabs = 2131689472; + + // aapt resource value: 0x7f0f0001 + public const int abc_allow_stacked_button_bar = 2131689473; + + // aapt resource value: 0x7f0f0002 + public const int abc_config_actionMenuItemAllCaps = 2131689474; + + // aapt resource value: 0x7f0f0003 + public const int abc_config_closeDialogWhenTouchOutside = 2131689475; + + // aapt resource value: 0x7f0f0004 + public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2131689476; + + static Boolean() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Boolean() + { + } + } + + public partial class Color + { + + // aapt resource value: 0x7f0e004f + public const int abc_background_cache_hint_selector_material_dark = 2131624015; + + // aapt resource value: 0x7f0e0050 + public const int abc_background_cache_hint_selector_material_light = 2131624016; + + // aapt resource value: 0x7f0e0051 + public const int abc_btn_colored_borderless_text_material = 2131624017; + + // aapt resource value: 0x7f0e0052 + public const int abc_btn_colored_text_material = 2131624018; + + // aapt resource value: 0x7f0e0053 + public const int abc_color_highlight_material = 2131624019; + + // aapt resource value: 0x7f0e0054 + public const int abc_hint_foreground_material_dark = 2131624020; + + // aapt resource value: 0x7f0e0055 + public const int abc_hint_foreground_material_light = 2131624021; + + // aapt resource value: 0x7f0e0004 + public const int abc_input_method_navigation_guard = 2131623940; + + // aapt resource value: 0x7f0e0056 + public const int abc_primary_text_disable_only_material_dark = 2131624022; + + // aapt resource value: 0x7f0e0057 + public const int abc_primary_text_disable_only_material_light = 2131624023; + + // aapt resource value: 0x7f0e0058 + public const int abc_primary_text_material_dark = 2131624024; + + // aapt resource value: 0x7f0e0059 + public const int abc_primary_text_material_light = 2131624025; + + // aapt resource value: 0x7f0e005a + public const int abc_search_url_text = 2131624026; + + // aapt resource value: 0x7f0e0005 + public const int abc_search_url_text_normal = 2131623941; + + // aapt resource value: 0x7f0e0006 + public const int abc_search_url_text_pressed = 2131623942; + + // aapt resource value: 0x7f0e0007 + public const int abc_search_url_text_selected = 2131623943; + + // aapt resource value: 0x7f0e005b + public const int abc_secondary_text_material_dark = 2131624027; + + // aapt resource value: 0x7f0e005c + public const int abc_secondary_text_material_light = 2131624028; + + // aapt resource value: 0x7f0e005d + public const int abc_tint_btn_checkable = 2131624029; + + // aapt resource value: 0x7f0e005e + public const int abc_tint_default = 2131624030; + + // aapt resource value: 0x7f0e005f + public const int abc_tint_edittext = 2131624031; + + // aapt resource value: 0x7f0e0060 + public const int abc_tint_seek_thumb = 2131624032; + + // aapt resource value: 0x7f0e0061 + public const int abc_tint_spinner = 2131624033; + + // aapt resource value: 0x7f0e0062 + public const int abc_tint_switch_track = 2131624034; + + // aapt resource value: 0x7f0e0008 + public const int accent_material_dark = 2131623944; + + // aapt resource value: 0x7f0e0009 + public const int accent_material_light = 2131623945; + + // aapt resource value: 0x7f0e000a + public const int background_floating_material_dark = 2131623946; + + // aapt resource value: 0x7f0e000b + public const int background_floating_material_light = 2131623947; + + // aapt resource value: 0x7f0e000c + public const int background_material_dark = 2131623948; + + // aapt resource value: 0x7f0e000d + public const int background_material_light = 2131623949; + + // aapt resource value: 0x7f0e000e + public const int bright_foreground_disabled_material_dark = 2131623950; + + // aapt resource value: 0x7f0e000f + public const int bright_foreground_disabled_material_light = 2131623951; + + // aapt resource value: 0x7f0e0010 + public const int bright_foreground_inverse_material_dark = 2131623952; + + // aapt resource value: 0x7f0e0011 + public const int bright_foreground_inverse_material_light = 2131623953; + + // aapt resource value: 0x7f0e0012 + public const int bright_foreground_material_dark = 2131623954; + + // aapt resource value: 0x7f0e0013 + public const int bright_foreground_material_light = 2131623955; + + // aapt resource value: 0x7f0e0014 + public const int button_material_dark = 2131623956; + + // aapt resource value: 0x7f0e0015 + public const int button_material_light = 2131623957; + + // aapt resource value: 0x7f0e0000 + public const int cardview_dark_background = 2131623936; + + // aapt resource value: 0x7f0e0001 + public const int cardview_light_background = 2131623937; + + // aapt resource value: 0x7f0e0002 + public const int cardview_shadow_end_color = 2131623938; + + // aapt resource value: 0x7f0e0003 + public const int cardview_shadow_start_color = 2131623939; + + // aapt resource value: 0x7f0e004e + public const int colorAccent = 2131624014; + + // aapt resource value: 0x7f0e004c + public const int colorPrimary = 2131624012; + + // aapt resource value: 0x7f0e004d + public const int colorPrimaryDark = 2131624013; + + // aapt resource value: 0x7f0e0040 + public const int design_bottom_navigation_shadow_color = 2131624000; + + // aapt resource value: 0x7f0e0063 + public const int design_error = 2131624035; + + // aapt resource value: 0x7f0e0041 + public const int design_fab_shadow_end_color = 2131624001; + + // aapt resource value: 0x7f0e0042 + public const int design_fab_shadow_mid_color = 2131624002; + + // aapt resource value: 0x7f0e0043 + public const int design_fab_shadow_start_color = 2131624003; + + // aapt resource value: 0x7f0e0044 + public const int design_fab_stroke_end_inner_color = 2131624004; + + // aapt resource value: 0x7f0e0045 + public const int design_fab_stroke_end_outer_color = 2131624005; + + // aapt resource value: 0x7f0e0046 + public const int design_fab_stroke_top_inner_color = 2131624006; + + // aapt resource value: 0x7f0e0047 + public const int design_fab_stroke_top_outer_color = 2131624007; + + // aapt resource value: 0x7f0e0048 + public const int design_snackbar_background_color = 2131624008; + + // aapt resource value: 0x7f0e0064 + public const int design_tint_password_toggle = 2131624036; + + // aapt resource value: 0x7f0e0016 + public const int dim_foreground_disabled_material_dark = 2131623958; + + // aapt resource value: 0x7f0e0017 + public const int dim_foreground_disabled_material_light = 2131623959; + + // aapt resource value: 0x7f0e0018 + public const int dim_foreground_material_dark = 2131623960; + + // aapt resource value: 0x7f0e0019 + public const int dim_foreground_material_light = 2131623961; + + // aapt resource value: 0x7f0e001a + public const int error_color_material = 2131623962; + + // aapt resource value: 0x7f0e001b + public const int foreground_material_dark = 2131623963; + + // aapt resource value: 0x7f0e001c + public const int foreground_material_light = 2131623964; + + // aapt resource value: 0x7f0e001d + public const int highlighted_text_material_dark = 2131623965; + + // aapt resource value: 0x7f0e001e + public const int highlighted_text_material_light = 2131623966; + + // aapt resource value: 0x7f0e004b + public const int launcher_background = 2131624011; + + // aapt resource value: 0x7f0e001f + public const int material_blue_grey_800 = 2131623967; + + // aapt resource value: 0x7f0e0020 + public const int material_blue_grey_900 = 2131623968; + + // aapt resource value: 0x7f0e0021 + public const int material_blue_grey_950 = 2131623969; + + // aapt resource value: 0x7f0e0022 + public const int material_deep_teal_200 = 2131623970; + + // aapt resource value: 0x7f0e0023 + public const int material_deep_teal_500 = 2131623971; + + // aapt resource value: 0x7f0e0024 + public const int material_grey_100 = 2131623972; + + // aapt resource value: 0x7f0e0025 + public const int material_grey_300 = 2131623973; + + // aapt resource value: 0x7f0e0026 + public const int material_grey_50 = 2131623974; + + // aapt resource value: 0x7f0e0027 + public const int material_grey_600 = 2131623975; + + // aapt resource value: 0x7f0e0028 + public const int material_grey_800 = 2131623976; + + // aapt resource value: 0x7f0e0029 + public const int material_grey_850 = 2131623977; + + // aapt resource value: 0x7f0e002a + public const int material_grey_900 = 2131623978; + + // aapt resource value: 0x7f0e0049 + public const int notification_action_color_filter = 2131624009; + + // aapt resource value: 0x7f0e004a + public const int notification_icon_bg_color = 2131624010; + + // aapt resource value: 0x7f0e003f + public const int notification_material_background_media_default_color = 2131623999; + + // aapt resource value: 0x7f0e002b + public const int primary_dark_material_dark = 2131623979; + + // aapt resource value: 0x7f0e002c + public const int primary_dark_material_light = 2131623980; + + // aapt resource value: 0x7f0e002d + public const int primary_material_dark = 2131623981; + + // aapt resource value: 0x7f0e002e + public const int primary_material_light = 2131623982; + + // aapt resource value: 0x7f0e002f + public const int primary_text_default_material_dark = 2131623983; + + // aapt resource value: 0x7f0e0030 + public const int primary_text_default_material_light = 2131623984; + + // aapt resource value: 0x7f0e0031 + public const int primary_text_disabled_material_dark = 2131623985; + + // aapt resource value: 0x7f0e0032 + public const int primary_text_disabled_material_light = 2131623986; + + // aapt resource value: 0x7f0e0033 + public const int ripple_material_dark = 2131623987; + + // aapt resource value: 0x7f0e0034 + public const int ripple_material_light = 2131623988; + + // aapt resource value: 0x7f0e0035 + public const int secondary_text_default_material_dark = 2131623989; + + // aapt resource value: 0x7f0e0036 + public const int secondary_text_default_material_light = 2131623990; + + // aapt resource value: 0x7f0e0037 + public const int secondary_text_disabled_material_dark = 2131623991; + + // aapt resource value: 0x7f0e0038 + public const int secondary_text_disabled_material_light = 2131623992; + + // aapt resource value: 0x7f0e0039 + public const int switch_thumb_disabled_material_dark = 2131623993; + + // aapt resource value: 0x7f0e003a + public const int switch_thumb_disabled_material_light = 2131623994; + + // aapt resource value: 0x7f0e0065 + public const int switch_thumb_material_dark = 2131624037; + + // aapt resource value: 0x7f0e0066 + public const int switch_thumb_material_light = 2131624038; + + // aapt resource value: 0x7f0e003b + public const int switch_thumb_normal_material_dark = 2131623995; + + // aapt resource value: 0x7f0e003c + public const int switch_thumb_normal_material_light = 2131623996; + + // aapt resource value: 0x7f0e003d + public const int tooltip_background_dark = 2131623997; + + // aapt resource value: 0x7f0e003e + public const int tooltip_background_light = 2131623998; + + static Color() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Color() + { + } + } + + public partial class Dimension + { + + // aapt resource value: 0x7f09001b + public const int abc_action_bar_content_inset_material = 2131296283; + + // aapt resource value: 0x7f09001c + public const int abc_action_bar_content_inset_with_nav = 2131296284; + + // aapt resource value: 0x7f090010 + public const int abc_action_bar_default_height_material = 2131296272; + + // aapt resource value: 0x7f09001d + public const int abc_action_bar_default_padding_end_material = 2131296285; + + // aapt resource value: 0x7f09001e + public const int abc_action_bar_default_padding_start_material = 2131296286; + + // aapt resource value: 0x7f090020 + public const int abc_action_bar_elevation_material = 2131296288; + + // aapt resource value: 0x7f090021 + public const int abc_action_bar_icon_vertical_padding_material = 2131296289; + + // aapt resource value: 0x7f090022 + public const int abc_action_bar_overflow_padding_end_material = 2131296290; + + // aapt resource value: 0x7f090023 + public const int abc_action_bar_overflow_padding_start_material = 2131296291; + + // aapt resource value: 0x7f090011 + public const int abc_action_bar_progress_bar_size = 2131296273; + + // aapt resource value: 0x7f090024 + public const int abc_action_bar_stacked_max_height = 2131296292; + + // aapt resource value: 0x7f090025 + public const int abc_action_bar_stacked_tab_max_width = 2131296293; + + // aapt resource value: 0x7f090026 + public const int abc_action_bar_subtitle_bottom_margin_material = 2131296294; + + // aapt resource value: 0x7f090027 + public const int abc_action_bar_subtitle_top_margin_material = 2131296295; + + // aapt resource value: 0x7f090028 + public const int abc_action_button_min_height_material = 2131296296; + + // aapt resource value: 0x7f090029 + public const int abc_action_button_min_width_material = 2131296297; + + // aapt resource value: 0x7f09002a + public const int abc_action_button_min_width_overflow_material = 2131296298; + + // aapt resource value: 0x7f09000f + public const int abc_alert_dialog_button_bar_height = 2131296271; + + // aapt resource value: 0x7f09002b + public const int abc_button_inset_horizontal_material = 2131296299; + + // aapt resource value: 0x7f09002c + public const int abc_button_inset_vertical_material = 2131296300; + + // aapt resource value: 0x7f09002d + public const int abc_button_padding_horizontal_material = 2131296301; + + // aapt resource value: 0x7f09002e + public const int abc_button_padding_vertical_material = 2131296302; + + // aapt resource value: 0x7f09002f + public const int abc_cascading_menus_min_smallest_width = 2131296303; + + // aapt resource value: 0x7f090014 + public const int abc_config_prefDialogWidth = 2131296276; + + // aapt resource value: 0x7f090030 + public const int abc_control_corner_material = 2131296304; + + // aapt resource value: 0x7f090031 + public const int abc_control_inset_material = 2131296305; + + // aapt resource value: 0x7f090032 + public const int abc_control_padding_material = 2131296306; + + // aapt resource value: 0x7f090015 + public const int abc_dialog_fixed_height_major = 2131296277; + + // aapt resource value: 0x7f090016 + public const int abc_dialog_fixed_height_minor = 2131296278; + + // aapt resource value: 0x7f090017 + public const int abc_dialog_fixed_width_major = 2131296279; + + // aapt resource value: 0x7f090018 + public const int abc_dialog_fixed_width_minor = 2131296280; + + // aapt resource value: 0x7f090033 + public const int abc_dialog_list_padding_bottom_no_buttons = 2131296307; + + // aapt resource value: 0x7f090034 + public const int abc_dialog_list_padding_top_no_title = 2131296308; + + // aapt resource value: 0x7f090019 + public const int abc_dialog_min_width_major = 2131296281; + + // aapt resource value: 0x7f09001a + public const int abc_dialog_min_width_minor = 2131296282; + + // aapt resource value: 0x7f090035 + public const int abc_dialog_padding_material = 2131296309; + + // aapt resource value: 0x7f090036 + public const int abc_dialog_padding_top_material = 2131296310; + + // aapt resource value: 0x7f090037 + public const int abc_dialog_title_divider_material = 2131296311; + + // aapt resource value: 0x7f090038 + public const int abc_disabled_alpha_material_dark = 2131296312; + + // aapt resource value: 0x7f090039 + public const int abc_disabled_alpha_material_light = 2131296313; + + // aapt resource value: 0x7f09003a + public const int abc_dropdownitem_icon_width = 2131296314; + + // aapt resource value: 0x7f09003b + public const int abc_dropdownitem_text_padding_left = 2131296315; + + // aapt resource value: 0x7f09003c + public const int abc_dropdownitem_text_padding_right = 2131296316; + + // aapt resource value: 0x7f09003d + public const int abc_edit_text_inset_bottom_material = 2131296317; + + // aapt resource value: 0x7f09003e + public const int abc_edit_text_inset_horizontal_material = 2131296318; + + // aapt resource value: 0x7f09003f + public const int abc_edit_text_inset_top_material = 2131296319; + + // aapt resource value: 0x7f090040 + public const int abc_floating_window_z = 2131296320; + + // aapt resource value: 0x7f090041 + public const int abc_list_item_padding_horizontal_material = 2131296321; + + // aapt resource value: 0x7f090042 + public const int abc_panel_menu_list_width = 2131296322; + + // aapt resource value: 0x7f090043 + public const int abc_progress_bar_height_material = 2131296323; + + // aapt resource value: 0x7f090044 + public const int abc_search_view_preferred_height = 2131296324; + + // aapt resource value: 0x7f090045 + public const int abc_search_view_preferred_width = 2131296325; + + // aapt resource value: 0x7f090046 + public const int abc_seekbar_track_background_height_material = 2131296326; + + // aapt resource value: 0x7f090047 + public const int abc_seekbar_track_progress_height_material = 2131296327; + + // aapt resource value: 0x7f090048 + public const int abc_select_dialog_padding_start_material = 2131296328; + + // aapt resource value: 0x7f09001f + public const int abc_switch_padding = 2131296287; + + // aapt resource value: 0x7f090049 + public const int abc_text_size_body_1_material = 2131296329; + + // aapt resource value: 0x7f09004a + public const int abc_text_size_body_2_material = 2131296330; + + // aapt resource value: 0x7f09004b + public const int abc_text_size_button_material = 2131296331; + + // aapt resource value: 0x7f09004c + public const int abc_text_size_caption_material = 2131296332; + + // aapt resource value: 0x7f09004d + public const int abc_text_size_display_1_material = 2131296333; + + // aapt resource value: 0x7f09004e + public const int abc_text_size_display_2_material = 2131296334; + + // aapt resource value: 0x7f09004f + public const int abc_text_size_display_3_material = 2131296335; + + // aapt resource value: 0x7f090050 + public const int abc_text_size_display_4_material = 2131296336; + + // aapt resource value: 0x7f090051 + public const int abc_text_size_headline_material = 2131296337; + + // aapt resource value: 0x7f090052 + public const int abc_text_size_large_material = 2131296338; + + // aapt resource value: 0x7f090053 + public const int abc_text_size_medium_material = 2131296339; + + // aapt resource value: 0x7f090054 + public const int abc_text_size_menu_header_material = 2131296340; + + // aapt resource value: 0x7f090055 + public const int abc_text_size_menu_material = 2131296341; + + // aapt resource value: 0x7f090056 + public const int abc_text_size_small_material = 2131296342; + + // aapt resource value: 0x7f090057 + public const int abc_text_size_subhead_material = 2131296343; + + // aapt resource value: 0x7f090012 + public const int abc_text_size_subtitle_material_toolbar = 2131296274; + + // aapt resource value: 0x7f090058 + public const int abc_text_size_title_material = 2131296344; + + // aapt resource value: 0x7f090013 + public const int abc_text_size_title_material_toolbar = 2131296275; + + // aapt resource value: 0x7f09000c + public const int cardview_compat_inset_shadow = 2131296268; + + // aapt resource value: 0x7f09000d + public const int cardview_default_elevation = 2131296269; + + // aapt resource value: 0x7f09000e + public const int cardview_default_radius = 2131296270; + + // aapt resource value: 0x7f090094 + public const int compat_button_inset_horizontal_material = 2131296404; + + // aapt resource value: 0x7f090095 + public const int compat_button_inset_vertical_material = 2131296405; + + // aapt resource value: 0x7f090096 + public const int compat_button_padding_horizontal_material = 2131296406; + + // aapt resource value: 0x7f090097 + public const int compat_button_padding_vertical_material = 2131296407; + + // aapt resource value: 0x7f090098 + public const int compat_control_corner_material = 2131296408; + + // aapt resource value: 0x7f090072 + public const int design_appbar_elevation = 2131296370; + + // aapt resource value: 0x7f090073 + public const int design_bottom_navigation_active_item_max_width = 2131296371; + + // aapt resource value: 0x7f090074 + public const int design_bottom_navigation_active_text_size = 2131296372; + + // aapt resource value: 0x7f090075 + public const int design_bottom_navigation_elevation = 2131296373; + + // aapt resource value: 0x7f090076 + public const int design_bottom_navigation_height = 2131296374; + + // aapt resource value: 0x7f090077 + public const int design_bottom_navigation_item_max_width = 2131296375; + + // aapt resource value: 0x7f090078 + public const int design_bottom_navigation_item_min_width = 2131296376; + + // aapt resource value: 0x7f090079 + public const int design_bottom_navigation_margin = 2131296377; + + // aapt resource value: 0x7f09007a + public const int design_bottom_navigation_shadow_height = 2131296378; + + // aapt resource value: 0x7f09007b + public const int design_bottom_navigation_text_size = 2131296379; + + // aapt resource value: 0x7f09007c + public const int design_bottom_sheet_modal_elevation = 2131296380; + + // aapt resource value: 0x7f09007d + public const int design_bottom_sheet_peek_height_min = 2131296381; + + // aapt resource value: 0x7f09007e + public const int design_fab_border_width = 2131296382; + + // aapt resource value: 0x7f09007f + public const int design_fab_elevation = 2131296383; + + // aapt resource value: 0x7f090080 + public const int design_fab_image_size = 2131296384; + + // aapt resource value: 0x7f090081 + public const int design_fab_size_mini = 2131296385; + + // aapt resource value: 0x7f090082 + public const int design_fab_size_normal = 2131296386; + + // aapt resource value: 0x7f090083 + public const int design_fab_translation_z_pressed = 2131296387; + + // aapt resource value: 0x7f090084 + public const int design_navigation_elevation = 2131296388; + + // aapt resource value: 0x7f090085 + public const int design_navigation_icon_padding = 2131296389; + + // aapt resource value: 0x7f090086 + public const int design_navigation_icon_size = 2131296390; + + // aapt resource value: 0x7f09006a + public const int design_navigation_max_width = 2131296362; + + // aapt resource value: 0x7f090087 + public const int design_navigation_padding_bottom = 2131296391; + + // aapt resource value: 0x7f090088 + public const int design_navigation_separator_vertical_padding = 2131296392; + + // aapt resource value: 0x7f09006b + public const int design_snackbar_action_inline_max_width = 2131296363; + + // aapt resource value: 0x7f09006c + public const int design_snackbar_background_corner_radius = 2131296364; + + // aapt resource value: 0x7f090089 + public const int design_snackbar_elevation = 2131296393; + + // aapt resource value: 0x7f09006d + public const int design_snackbar_extra_spacing_horizontal = 2131296365; + + // aapt resource value: 0x7f09006e + public const int design_snackbar_max_width = 2131296366; + + // aapt resource value: 0x7f09006f + public const int design_snackbar_min_width = 2131296367; + + // aapt resource value: 0x7f09008a + public const int design_snackbar_padding_horizontal = 2131296394; + + // aapt resource value: 0x7f09008b + public const int design_snackbar_padding_vertical = 2131296395; + + // aapt resource value: 0x7f090070 + public const int design_snackbar_padding_vertical_2lines = 2131296368; + + // aapt resource value: 0x7f09008c + public const int design_snackbar_text_size = 2131296396; + + // aapt resource value: 0x7f09008d + public const int design_tab_max_width = 2131296397; + + // aapt resource value: 0x7f090071 + public const int design_tab_scrollable_min_width = 2131296369; + + // aapt resource value: 0x7f09008e + public const int design_tab_text_size = 2131296398; + + // aapt resource value: 0x7f09008f + public const int design_tab_text_size_2line = 2131296399; + + // aapt resource value: 0x7f090059 + public const int disabled_alpha_material_dark = 2131296345; + + // aapt resource value: 0x7f09005a + public const int disabled_alpha_material_light = 2131296346; + + // aapt resource value: 0x7f090000 + public const int fastscroll_default_thickness = 2131296256; + + // aapt resource value: 0x7f090001 + public const int fastscroll_margin = 2131296257; + + // aapt resource value: 0x7f090002 + public const int fastscroll_minimum_range = 2131296258; + + // aapt resource value: 0x7f09005b + public const int highlight_alpha_material_colored = 2131296347; + + // aapt resource value: 0x7f09005c + public const int highlight_alpha_material_dark = 2131296348; + + // aapt resource value: 0x7f09005d + public const int highlight_alpha_material_light = 2131296349; + + // aapt resource value: 0x7f09005e + public const int hint_alpha_material_dark = 2131296350; + + // aapt resource value: 0x7f09005f + public const int hint_alpha_material_light = 2131296351; + + // aapt resource value: 0x7f090060 + public const int hint_pressed_alpha_material_dark = 2131296352; + + // aapt resource value: 0x7f090061 + public const int hint_pressed_alpha_material_light = 2131296353; + + // aapt resource value: 0x7f090003 + public const int item_touch_helper_max_drag_scroll_per_frame = 2131296259; + + // aapt resource value: 0x7f090004 + public const int item_touch_helper_swipe_escape_max_velocity = 2131296260; + + // aapt resource value: 0x7f090005 + public const int item_touch_helper_swipe_escape_velocity = 2131296261; + + // aapt resource value: 0x7f090006 + public const int mr_controller_volume_group_list_item_height = 2131296262; + + // aapt resource value: 0x7f090007 + public const int mr_controller_volume_group_list_item_icon_size = 2131296263; + + // aapt resource value: 0x7f090008 + public const int mr_controller_volume_group_list_max_height = 2131296264; + + // aapt resource value: 0x7f09000b + public const int mr_controller_volume_group_list_padding_top = 2131296267; + + // aapt resource value: 0x7f090009 + public const int mr_dialog_fixed_width_major = 2131296265; + + // aapt resource value: 0x7f09000a + public const int mr_dialog_fixed_width_minor = 2131296266; + + // aapt resource value: 0x7f090099 + public const int notification_action_icon_size = 2131296409; + + // aapt resource value: 0x7f09009a + public const int notification_action_text_size = 2131296410; + + // aapt resource value: 0x7f09009b + public const int notification_big_circle_margin = 2131296411; + + // aapt resource value: 0x7f090091 + public const int notification_content_margin_start = 2131296401; + + // aapt resource value: 0x7f09009c + public const int notification_large_icon_height = 2131296412; + + // aapt resource value: 0x7f09009d + public const int notification_large_icon_width = 2131296413; + + // aapt resource value: 0x7f090092 + public const int notification_main_column_padding_top = 2131296402; + + // aapt resource value: 0x7f090093 + public const int notification_media_narrow_margin = 2131296403; + + // aapt resource value: 0x7f09009e + public const int notification_right_icon_size = 2131296414; + + // aapt resource value: 0x7f090090 + public const int notification_right_side_padding_top = 2131296400; + + // aapt resource value: 0x7f09009f + public const int notification_small_icon_background_padding = 2131296415; + + // aapt resource value: 0x7f0900a0 + public const int notification_small_icon_size_as_large = 2131296416; + + // aapt resource value: 0x7f0900a1 + public const int notification_subtext_size = 2131296417; + + // aapt resource value: 0x7f0900a2 + public const int notification_top_pad = 2131296418; + + // aapt resource value: 0x7f0900a3 + public const int notification_top_pad_large_text = 2131296419; + + // aapt resource value: 0x7f090062 + public const int tooltip_corner_radius = 2131296354; + + // aapt resource value: 0x7f090063 + public const int tooltip_horizontal_padding = 2131296355; + + // aapt resource value: 0x7f090064 + public const int tooltip_margin = 2131296356; + + // aapt resource value: 0x7f090065 + public const int tooltip_precise_anchor_extra_offset = 2131296357; + + // aapt resource value: 0x7f090066 + public const int tooltip_precise_anchor_threshold = 2131296358; + + // aapt resource value: 0x7f090067 + public const int tooltip_vertical_padding = 2131296359; + + // aapt resource value: 0x7f090068 + public const int tooltip_y_offset_non_touch = 2131296360; + + // aapt resource value: 0x7f090069 + public const int tooltip_y_offset_touch = 2131296361; + + static Dimension() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Dimension() + { + } + } + + public partial class Drawable + { + + // aapt resource value: 0x7f020000 + public const int abc_ab_share_pack_mtrl_alpha = 2130837504; + + // aapt resource value: 0x7f020001 + public const int abc_action_bar_item_background_material = 2130837505; + + // aapt resource value: 0x7f020002 + public const int abc_btn_borderless_material = 2130837506; + + // aapt resource value: 0x7f020003 + public const int abc_btn_check_material = 2130837507; + + // aapt resource value: 0x7f020004 + public const int abc_btn_check_to_on_mtrl_000 = 2130837508; + + // aapt resource value: 0x7f020005 + public const int abc_btn_check_to_on_mtrl_015 = 2130837509; + + // aapt resource value: 0x7f020006 + public const int abc_btn_colored_material = 2130837510; + + // aapt resource value: 0x7f020007 + public const int abc_btn_default_mtrl_shape = 2130837511; + + // aapt resource value: 0x7f020008 + public const int abc_btn_radio_material = 2130837512; + + // aapt resource value: 0x7f020009 + public const int abc_btn_radio_to_on_mtrl_000 = 2130837513; + + // aapt resource value: 0x7f02000a + public const int abc_btn_radio_to_on_mtrl_015 = 2130837514; + + // aapt resource value: 0x7f02000b + public const int abc_btn_switch_to_on_mtrl_00001 = 2130837515; + + // aapt resource value: 0x7f02000c + public const int abc_btn_switch_to_on_mtrl_00012 = 2130837516; + + // aapt resource value: 0x7f02000d + public const int abc_cab_background_internal_bg = 2130837517; + + // aapt resource value: 0x7f02000e + public const int abc_cab_background_top_material = 2130837518; + + // aapt resource value: 0x7f02000f + public const int abc_cab_background_top_mtrl_alpha = 2130837519; + + // aapt resource value: 0x7f020010 + public const int abc_control_background_material = 2130837520; + + // aapt resource value: 0x7f020011 + public const int abc_dialog_material_background = 2130837521; + + // aapt resource value: 0x7f020012 + public const int abc_edit_text_material = 2130837522; + + // aapt resource value: 0x7f020013 + public const int abc_ic_ab_back_material = 2130837523; + + // aapt resource value: 0x7f020014 + public const int abc_ic_arrow_drop_right_black_24dp = 2130837524; + + // aapt resource value: 0x7f020015 + public const int abc_ic_clear_material = 2130837525; + + // aapt resource value: 0x7f020016 + public const int abc_ic_commit_search_api_mtrl_alpha = 2130837526; + + // aapt resource value: 0x7f020017 + public const int abc_ic_go_search_api_material = 2130837527; + + // aapt resource value: 0x7f020018 + public const int abc_ic_menu_copy_mtrl_am_alpha = 2130837528; + + // aapt resource value: 0x7f020019 + public const int abc_ic_menu_cut_mtrl_alpha = 2130837529; + + // aapt resource value: 0x7f02001a + public const int abc_ic_menu_overflow_material = 2130837530; + + // aapt resource value: 0x7f02001b + public const int abc_ic_menu_paste_mtrl_am_alpha = 2130837531; + + // aapt resource value: 0x7f02001c + public const int abc_ic_menu_selectall_mtrl_alpha = 2130837532; + + // aapt resource value: 0x7f02001d + public const int abc_ic_menu_share_mtrl_alpha = 2130837533; + + // aapt resource value: 0x7f02001e + public const int abc_ic_search_api_material = 2130837534; + + // aapt resource value: 0x7f02001f + public const int abc_ic_star_black_16dp = 2130837535; + + // aapt resource value: 0x7f020020 + public const int abc_ic_star_black_36dp = 2130837536; + + // aapt resource value: 0x7f020021 + public const int abc_ic_star_black_48dp = 2130837537; + + // aapt resource value: 0x7f020022 + public const int abc_ic_star_half_black_16dp = 2130837538; + + // aapt resource value: 0x7f020023 + public const int abc_ic_star_half_black_36dp = 2130837539; + + // aapt resource value: 0x7f020024 + public const int abc_ic_star_half_black_48dp = 2130837540; + + // aapt resource value: 0x7f020025 + public const int abc_ic_voice_search_api_material = 2130837541; + + // aapt resource value: 0x7f020026 + public const int abc_item_background_holo_dark = 2130837542; + + // aapt resource value: 0x7f020027 + public const int abc_item_background_holo_light = 2130837543; + + // aapt resource value: 0x7f020028 + public const int abc_list_divider_mtrl_alpha = 2130837544; + + // aapt resource value: 0x7f020029 + public const int abc_list_focused_holo = 2130837545; + + // aapt resource value: 0x7f02002a + public const int abc_list_longpressed_holo = 2130837546; + + // aapt resource value: 0x7f02002b + public const int abc_list_pressed_holo_dark = 2130837547; + + // aapt resource value: 0x7f02002c + public const int abc_list_pressed_holo_light = 2130837548; + + // aapt resource value: 0x7f02002d + public const int abc_list_selector_background_transition_holo_dark = 2130837549; + + // aapt resource value: 0x7f02002e + public const int abc_list_selector_background_transition_holo_light = 2130837550; + + // aapt resource value: 0x7f02002f + public const int abc_list_selector_disabled_holo_dark = 2130837551; + + // aapt resource value: 0x7f020030 + public const int abc_list_selector_disabled_holo_light = 2130837552; + + // aapt resource value: 0x7f020031 + public const int abc_list_selector_holo_dark = 2130837553; + + // aapt resource value: 0x7f020032 + public const int abc_list_selector_holo_light = 2130837554; + + // aapt resource value: 0x7f020033 + public const int abc_menu_hardkey_panel_mtrl_mult = 2130837555; + + // aapt resource value: 0x7f020034 + public const int abc_popup_background_mtrl_mult = 2130837556; + + // aapt resource value: 0x7f020035 + public const int abc_ratingbar_indicator_material = 2130837557; + + // aapt resource value: 0x7f020036 + public const int abc_ratingbar_material = 2130837558; + + // aapt resource value: 0x7f020037 + public const int abc_ratingbar_small_material = 2130837559; + + // aapt resource value: 0x7f020038 + public const int abc_scrubber_control_off_mtrl_alpha = 2130837560; + + // aapt resource value: 0x7f020039 + public const int abc_scrubber_control_to_pressed_mtrl_000 = 2130837561; + + // aapt resource value: 0x7f02003a + public const int abc_scrubber_control_to_pressed_mtrl_005 = 2130837562; + + // aapt resource value: 0x7f02003b + public const int abc_scrubber_primary_mtrl_alpha = 2130837563; + + // aapt resource value: 0x7f02003c + public const int abc_scrubber_track_mtrl_alpha = 2130837564; + + // aapt resource value: 0x7f02003d + public const int abc_seekbar_thumb_material = 2130837565; + + // aapt resource value: 0x7f02003e + public const int abc_seekbar_tick_mark_material = 2130837566; + + // aapt resource value: 0x7f02003f + public const int abc_seekbar_track_material = 2130837567; + + // aapt resource value: 0x7f020040 + public const int abc_spinner_mtrl_am_alpha = 2130837568; + + // aapt resource value: 0x7f020041 + public const int abc_spinner_textfield_background_material = 2130837569; + + // aapt resource value: 0x7f020042 + public const int abc_switch_thumb_material = 2130837570; + + // aapt resource value: 0x7f020043 + public const int abc_switch_track_mtrl_alpha = 2130837571; + + // aapt resource value: 0x7f020044 + public const int abc_tab_indicator_material = 2130837572; + + // aapt resource value: 0x7f020045 + public const int abc_tab_indicator_mtrl_alpha = 2130837573; + + // aapt resource value: 0x7f020046 + public const int abc_text_cursor_material = 2130837574; + + // aapt resource value: 0x7f020047 + public const int abc_text_select_handle_left_mtrl_dark = 2130837575; + + // aapt resource value: 0x7f020048 + public const int abc_text_select_handle_left_mtrl_light = 2130837576; + + // aapt resource value: 0x7f020049 + public const int abc_text_select_handle_middle_mtrl_dark = 2130837577; + + // aapt resource value: 0x7f02004a + public const int abc_text_select_handle_middle_mtrl_light = 2130837578; + + // aapt resource value: 0x7f02004b + public const int abc_text_select_handle_right_mtrl_dark = 2130837579; + + // aapt resource value: 0x7f02004c + public const int abc_text_select_handle_right_mtrl_light = 2130837580; + + // aapt resource value: 0x7f02004d + public const int abc_textfield_activated_mtrl_alpha = 2130837581; + + // aapt resource value: 0x7f02004e + public const int abc_textfield_default_mtrl_alpha = 2130837582; + + // aapt resource value: 0x7f02004f + public const int abc_textfield_search_activated_mtrl_alpha = 2130837583; + + // aapt resource value: 0x7f020050 + public const int abc_textfield_search_default_mtrl_alpha = 2130837584; + + // aapt resource value: 0x7f020051 + public const int abc_textfield_search_material = 2130837585; + + // aapt resource value: 0x7f020052 + public const int abc_vector_test = 2130837586; + + // aapt resource value: 0x7f020053 + public const int avd_hide_password = 2130837587; + + // aapt resource value: 0x7f02012f + public const int avd_hide_password_1 = 2130837807; + + // aapt resource value: 0x7f020130 + public const int avd_hide_password_2 = 2130837808; + + // aapt resource value: 0x7f020131 + public const int avd_hide_password_3 = 2130837809; + + // aapt resource value: 0x7f020054 + public const int avd_show_password = 2130837588; + + // aapt resource value: 0x7f020132 + public const int avd_show_password_1 = 2130837810; + + // aapt resource value: 0x7f020133 + public const int avd_show_password_2 = 2130837811; + + // aapt resource value: 0x7f020134 + public const int avd_show_password_3 = 2130837812; + + // aapt resource value: 0x7f020055 + public const int design_bottom_navigation_item_background = 2130837589; + + // aapt resource value: 0x7f020056 + public const int design_fab_background = 2130837590; + + // aapt resource value: 0x7f020057 + public const int design_ic_visibility = 2130837591; + + // aapt resource value: 0x7f020058 + public const int design_ic_visibility_off = 2130837592; + + // aapt resource value: 0x7f020059 + public const int design_password_eye = 2130837593; + + // aapt resource value: 0x7f02005a + public const int design_snackbar_background = 2130837594; + + // aapt resource value: 0x7f02005b + public const int ic_audiotrack_dark = 2130837595; + + // aapt resource value: 0x7f02005c + public const int ic_audiotrack_light = 2130837596; + + // aapt resource value: 0x7f02005d + public const int ic_dialog_close_dark = 2130837597; + + // aapt resource value: 0x7f02005e + public const int ic_dialog_close_light = 2130837598; + + // aapt resource value: 0x7f02005f + public const int ic_group_collapse_00 = 2130837599; + + // aapt resource value: 0x7f020060 + public const int ic_group_collapse_01 = 2130837600; + + // aapt resource value: 0x7f020061 + public const int ic_group_collapse_02 = 2130837601; + + // aapt resource value: 0x7f020062 + public const int ic_group_collapse_03 = 2130837602; + + // aapt resource value: 0x7f020063 + public const int ic_group_collapse_04 = 2130837603; + + // aapt resource value: 0x7f020064 + public const int ic_group_collapse_05 = 2130837604; + + // aapt resource value: 0x7f020065 + public const int ic_group_collapse_06 = 2130837605; + + // aapt resource value: 0x7f020066 + public const int ic_group_collapse_07 = 2130837606; + + // aapt resource value: 0x7f020067 + public const int ic_group_collapse_08 = 2130837607; + + // aapt resource value: 0x7f020068 + public const int ic_group_collapse_09 = 2130837608; + + // aapt resource value: 0x7f020069 + public const int ic_group_collapse_10 = 2130837609; + + // aapt resource value: 0x7f02006a + public const int ic_group_collapse_11 = 2130837610; + + // aapt resource value: 0x7f02006b + public const int ic_group_collapse_12 = 2130837611; + + // aapt resource value: 0x7f02006c + public const int ic_group_collapse_13 = 2130837612; + + // aapt resource value: 0x7f02006d + public const int ic_group_collapse_14 = 2130837613; + + // aapt resource value: 0x7f02006e + public const int ic_group_collapse_15 = 2130837614; + + // aapt resource value: 0x7f02006f + public const int ic_group_expand_00 = 2130837615; + + // aapt resource value: 0x7f020070 + public const int ic_group_expand_01 = 2130837616; + + // aapt resource value: 0x7f020071 + public const int ic_group_expand_02 = 2130837617; + + // aapt resource value: 0x7f020072 + public const int ic_group_expand_03 = 2130837618; + + // aapt resource value: 0x7f020073 + public const int ic_group_expand_04 = 2130837619; + + // aapt resource value: 0x7f020074 + public const int ic_group_expand_05 = 2130837620; + + // aapt resource value: 0x7f020075 + public const int ic_group_expand_06 = 2130837621; + + // aapt resource value: 0x7f020076 + public const int ic_group_expand_07 = 2130837622; + + // aapt resource value: 0x7f020077 + public const int ic_group_expand_08 = 2130837623; + + // aapt resource value: 0x7f020078 + public const int ic_group_expand_09 = 2130837624; + + // aapt resource value: 0x7f020079 + public const int ic_group_expand_10 = 2130837625; + + // aapt resource value: 0x7f02007a + public const int ic_group_expand_11 = 2130837626; + + // aapt resource value: 0x7f02007b + public const int ic_group_expand_12 = 2130837627; + + // aapt resource value: 0x7f02007c + public const int ic_group_expand_13 = 2130837628; + + // aapt resource value: 0x7f02007d + public const int ic_group_expand_14 = 2130837629; + + // aapt resource value: 0x7f02007e + public const int ic_group_expand_15 = 2130837630; + + // aapt resource value: 0x7f02007f + public const int ic_media_pause_dark = 2130837631; + + // aapt resource value: 0x7f020080 + public const int ic_media_pause_light = 2130837632; + + // aapt resource value: 0x7f020081 + public const int ic_media_play_dark = 2130837633; + + // aapt resource value: 0x7f020082 + public const int ic_media_play_light = 2130837634; + + // aapt resource value: 0x7f020083 + public const int ic_media_stop_dark = 2130837635; + + // aapt resource value: 0x7f020084 + public const int ic_media_stop_light = 2130837636; + + // aapt resource value: 0x7f020085 + public const int ic_mr_button_connected_00_dark = 2130837637; + + // aapt resource value: 0x7f020086 + public const int ic_mr_button_connected_00_light = 2130837638; + + // aapt resource value: 0x7f020087 + public const int ic_mr_button_connected_01_dark = 2130837639; + + // aapt resource value: 0x7f020088 + public const int ic_mr_button_connected_01_light = 2130837640; + + // aapt resource value: 0x7f020089 + public const int ic_mr_button_connected_02_dark = 2130837641; + + // aapt resource value: 0x7f02008a + public const int ic_mr_button_connected_02_light = 2130837642; + + // aapt resource value: 0x7f02008b + public const int ic_mr_button_connected_03_dark = 2130837643; + + // aapt resource value: 0x7f02008c + public const int ic_mr_button_connected_03_light = 2130837644; + + // aapt resource value: 0x7f02008d + public const int ic_mr_button_connected_04_dark = 2130837645; + + // aapt resource value: 0x7f02008e + public const int ic_mr_button_connected_04_light = 2130837646; + + // aapt resource value: 0x7f02008f + public const int ic_mr_button_connected_05_dark = 2130837647; + + // aapt resource value: 0x7f020090 + public const int ic_mr_button_connected_05_light = 2130837648; + + // aapt resource value: 0x7f020091 + public const int ic_mr_button_connected_06_dark = 2130837649; + + // aapt resource value: 0x7f020092 + public const int ic_mr_button_connected_06_light = 2130837650; + + // aapt resource value: 0x7f020093 + public const int ic_mr_button_connected_07_dark = 2130837651; + + // aapt resource value: 0x7f020094 + public const int ic_mr_button_connected_07_light = 2130837652; + + // aapt resource value: 0x7f020095 + public const int ic_mr_button_connected_08_dark = 2130837653; + + // aapt resource value: 0x7f020096 + public const int ic_mr_button_connected_08_light = 2130837654; + + // aapt resource value: 0x7f020097 + public const int ic_mr_button_connected_09_dark = 2130837655; + + // aapt resource value: 0x7f020098 + public const int ic_mr_button_connected_09_light = 2130837656; + + // aapt resource value: 0x7f020099 + public const int ic_mr_button_connected_10_dark = 2130837657; + + // aapt resource value: 0x7f02009a + public const int ic_mr_button_connected_10_light = 2130837658; + + // aapt resource value: 0x7f02009b + public const int ic_mr_button_connected_11_dark = 2130837659; + + // aapt resource value: 0x7f02009c + public const int ic_mr_button_connected_11_light = 2130837660; + + // aapt resource value: 0x7f02009d + public const int ic_mr_button_connected_12_dark = 2130837661; + + // aapt resource value: 0x7f02009e + public const int ic_mr_button_connected_12_light = 2130837662; + + // aapt resource value: 0x7f02009f + public const int ic_mr_button_connected_13_dark = 2130837663; + + // aapt resource value: 0x7f0200a0 + public const int ic_mr_button_connected_13_light = 2130837664; + + // aapt resource value: 0x7f0200a1 + public const int ic_mr_button_connected_14_dark = 2130837665; + + // aapt resource value: 0x7f0200a2 + public const int ic_mr_button_connected_14_light = 2130837666; + + // aapt resource value: 0x7f0200a3 + public const int ic_mr_button_connected_15_dark = 2130837667; + + // aapt resource value: 0x7f0200a4 + public const int ic_mr_button_connected_15_light = 2130837668; + + // aapt resource value: 0x7f0200a5 + public const int ic_mr_button_connected_16_dark = 2130837669; + + // aapt resource value: 0x7f0200a6 + public const int ic_mr_button_connected_16_light = 2130837670; + + // aapt resource value: 0x7f0200a7 + public const int ic_mr_button_connected_17_dark = 2130837671; + + // aapt resource value: 0x7f0200a8 + public const int ic_mr_button_connected_17_light = 2130837672; + + // aapt resource value: 0x7f0200a9 + public const int ic_mr_button_connected_18_dark = 2130837673; + + // aapt resource value: 0x7f0200aa + public const int ic_mr_button_connected_18_light = 2130837674; + + // aapt resource value: 0x7f0200ab + public const int ic_mr_button_connected_19_dark = 2130837675; + + // aapt resource value: 0x7f0200ac + public const int ic_mr_button_connected_19_light = 2130837676; + + // aapt resource value: 0x7f0200ad + public const int ic_mr_button_connected_20_dark = 2130837677; + + // aapt resource value: 0x7f0200ae + public const int ic_mr_button_connected_20_light = 2130837678; + + // aapt resource value: 0x7f0200af + public const int ic_mr_button_connected_21_dark = 2130837679; + + // aapt resource value: 0x7f0200b0 + public const int ic_mr_button_connected_21_light = 2130837680; + + // aapt resource value: 0x7f0200b1 + public const int ic_mr_button_connected_22_dark = 2130837681; + + // aapt resource value: 0x7f0200b2 + public const int ic_mr_button_connected_22_light = 2130837682; + + // aapt resource value: 0x7f0200b3 + public const int ic_mr_button_connected_23_dark = 2130837683; + + // aapt resource value: 0x7f0200b4 + public const int ic_mr_button_connected_23_light = 2130837684; + + // aapt resource value: 0x7f0200b5 + public const int ic_mr_button_connected_24_dark = 2130837685; + + // aapt resource value: 0x7f0200b6 + public const int ic_mr_button_connected_24_light = 2130837686; + + // aapt resource value: 0x7f0200b7 + public const int ic_mr_button_connected_25_dark = 2130837687; + + // aapt resource value: 0x7f0200b8 + public const int ic_mr_button_connected_25_light = 2130837688; + + // aapt resource value: 0x7f0200b9 + public const int ic_mr_button_connected_26_dark = 2130837689; + + // aapt resource value: 0x7f0200ba + public const int ic_mr_button_connected_26_light = 2130837690; + + // aapt resource value: 0x7f0200bb + public const int ic_mr_button_connected_27_dark = 2130837691; + + // aapt resource value: 0x7f0200bc + public const int ic_mr_button_connected_27_light = 2130837692; + + // aapt resource value: 0x7f0200bd + public const int ic_mr_button_connected_28_dark = 2130837693; + + // aapt resource value: 0x7f0200be + public const int ic_mr_button_connected_28_light = 2130837694; + + // aapt resource value: 0x7f0200bf + public const int ic_mr_button_connected_29_dark = 2130837695; + + // aapt resource value: 0x7f0200c0 + public const int ic_mr_button_connected_29_light = 2130837696; + + // aapt resource value: 0x7f0200c1 + public const int ic_mr_button_connected_30_dark = 2130837697; + + // aapt resource value: 0x7f0200c2 + public const int ic_mr_button_connected_30_light = 2130837698; + + // aapt resource value: 0x7f0200c3 + public const int ic_mr_button_connecting_00_dark = 2130837699; + + // aapt resource value: 0x7f0200c4 + public const int ic_mr_button_connecting_00_light = 2130837700; + + // aapt resource value: 0x7f0200c5 + public const int ic_mr_button_connecting_01_dark = 2130837701; + + // aapt resource value: 0x7f0200c6 + public const int ic_mr_button_connecting_01_light = 2130837702; + + // aapt resource value: 0x7f0200c7 + public const int ic_mr_button_connecting_02_dark = 2130837703; + + // aapt resource value: 0x7f0200c8 + public const int ic_mr_button_connecting_02_light = 2130837704; + + // aapt resource value: 0x7f0200c9 + public const int ic_mr_button_connecting_03_dark = 2130837705; + + // aapt resource value: 0x7f0200ca + public const int ic_mr_button_connecting_03_light = 2130837706; + + // aapt resource value: 0x7f0200cb + public const int ic_mr_button_connecting_04_dark = 2130837707; + + // aapt resource value: 0x7f0200cc + public const int ic_mr_button_connecting_04_light = 2130837708; + + // aapt resource value: 0x7f0200cd + public const int ic_mr_button_connecting_05_dark = 2130837709; + + // aapt resource value: 0x7f0200ce + public const int ic_mr_button_connecting_05_light = 2130837710; + + // aapt resource value: 0x7f0200cf + public const int ic_mr_button_connecting_06_dark = 2130837711; + + // aapt resource value: 0x7f0200d0 + public const int ic_mr_button_connecting_06_light = 2130837712; + + // aapt resource value: 0x7f0200d1 + public const int ic_mr_button_connecting_07_dark = 2130837713; + + // aapt resource value: 0x7f0200d2 + public const int ic_mr_button_connecting_07_light = 2130837714; + + // aapt resource value: 0x7f0200d3 + public const int ic_mr_button_connecting_08_dark = 2130837715; + + // aapt resource value: 0x7f0200d4 + public const int ic_mr_button_connecting_08_light = 2130837716; + + // aapt resource value: 0x7f0200d5 + public const int ic_mr_button_connecting_09_dark = 2130837717; + + // aapt resource value: 0x7f0200d6 + public const int ic_mr_button_connecting_09_light = 2130837718; + + // aapt resource value: 0x7f0200d7 + public const int ic_mr_button_connecting_10_dark = 2130837719; + + // aapt resource value: 0x7f0200d8 + public const int ic_mr_button_connecting_10_light = 2130837720; + + // aapt resource value: 0x7f0200d9 + public const int ic_mr_button_connecting_11_dark = 2130837721; + + // aapt resource value: 0x7f0200da + public const int ic_mr_button_connecting_11_light = 2130837722; + + // aapt resource value: 0x7f0200db + public const int ic_mr_button_connecting_12_dark = 2130837723; + + // aapt resource value: 0x7f0200dc + public const int ic_mr_button_connecting_12_light = 2130837724; + + // aapt resource value: 0x7f0200dd + public const int ic_mr_button_connecting_13_dark = 2130837725; + + // aapt resource value: 0x7f0200de + public const int ic_mr_button_connecting_13_light = 2130837726; + + // aapt resource value: 0x7f0200df + public const int ic_mr_button_connecting_14_dark = 2130837727; + + // aapt resource value: 0x7f0200e0 + public const int ic_mr_button_connecting_14_light = 2130837728; + + // aapt resource value: 0x7f0200e1 + public const int ic_mr_button_connecting_15_dark = 2130837729; + + // aapt resource value: 0x7f0200e2 + public const int ic_mr_button_connecting_15_light = 2130837730; + + // aapt resource value: 0x7f0200e3 + public const int ic_mr_button_connecting_16_dark = 2130837731; + + // aapt resource value: 0x7f0200e4 + public const int ic_mr_button_connecting_16_light = 2130837732; + + // aapt resource value: 0x7f0200e5 + public const int ic_mr_button_connecting_17_dark = 2130837733; + + // aapt resource value: 0x7f0200e6 + public const int ic_mr_button_connecting_17_light = 2130837734; + + // aapt resource value: 0x7f0200e7 + public const int ic_mr_button_connecting_18_dark = 2130837735; + + // aapt resource value: 0x7f0200e8 + public const int ic_mr_button_connecting_18_light = 2130837736; + + // aapt resource value: 0x7f0200e9 + public const int ic_mr_button_connecting_19_dark = 2130837737; + + // aapt resource value: 0x7f0200ea + public const int ic_mr_button_connecting_19_light = 2130837738; + + // aapt resource value: 0x7f0200eb + public const int ic_mr_button_connecting_20_dark = 2130837739; + + // aapt resource value: 0x7f0200ec + public const int ic_mr_button_connecting_20_light = 2130837740; + + // aapt resource value: 0x7f0200ed + public const int ic_mr_button_connecting_21_dark = 2130837741; + + // aapt resource value: 0x7f0200ee + public const int ic_mr_button_connecting_21_light = 2130837742; + + // aapt resource value: 0x7f0200ef + public const int ic_mr_button_connecting_22_dark = 2130837743; + + // aapt resource value: 0x7f0200f0 + public const int ic_mr_button_connecting_22_light = 2130837744; + + // aapt resource value: 0x7f0200f1 + public const int ic_mr_button_connecting_23_dark = 2130837745; + + // aapt resource value: 0x7f0200f2 + public const int ic_mr_button_connecting_23_light = 2130837746; + + // aapt resource value: 0x7f0200f3 + public const int ic_mr_button_connecting_24_dark = 2130837747; + + // aapt resource value: 0x7f0200f4 + public const int ic_mr_button_connecting_24_light = 2130837748; + + // aapt resource value: 0x7f0200f5 + public const int ic_mr_button_connecting_25_dark = 2130837749; + + // aapt resource value: 0x7f0200f6 + public const int ic_mr_button_connecting_25_light = 2130837750; + + // aapt resource value: 0x7f0200f7 + public const int ic_mr_button_connecting_26_dark = 2130837751; + + // aapt resource value: 0x7f0200f8 + public const int ic_mr_button_connecting_26_light = 2130837752; + + // aapt resource value: 0x7f0200f9 + public const int ic_mr_button_connecting_27_dark = 2130837753; + + // aapt resource value: 0x7f0200fa + public const int ic_mr_button_connecting_27_light = 2130837754; + + // aapt resource value: 0x7f0200fb + public const int ic_mr_button_connecting_28_dark = 2130837755; + + // aapt resource value: 0x7f0200fc + public const int ic_mr_button_connecting_28_light = 2130837756; + + // aapt resource value: 0x7f0200fd + public const int ic_mr_button_connecting_29_dark = 2130837757; + + // aapt resource value: 0x7f0200fe + public const int ic_mr_button_connecting_29_light = 2130837758; + + // aapt resource value: 0x7f0200ff + public const int ic_mr_button_connecting_30_dark = 2130837759; + + // aapt resource value: 0x7f020100 + public const int ic_mr_button_connecting_30_light = 2130837760; + + // aapt resource value: 0x7f020101 + public const int ic_mr_button_disabled_dark = 2130837761; + + // aapt resource value: 0x7f020102 + public const int ic_mr_button_disabled_light = 2130837762; + + // aapt resource value: 0x7f020103 + public const int ic_mr_button_disconnected_dark = 2130837763; + + // aapt resource value: 0x7f020104 + public const int ic_mr_button_disconnected_light = 2130837764; + + // aapt resource value: 0x7f020105 + public const int ic_mr_button_grey = 2130837765; + + // aapt resource value: 0x7f020106 + public const int ic_vol_type_speaker_dark = 2130837766; + + // aapt resource value: 0x7f020107 + public const int ic_vol_type_speaker_group_dark = 2130837767; + + // aapt resource value: 0x7f020108 + public const int ic_vol_type_speaker_group_light = 2130837768; + + // aapt resource value: 0x7f020109 + public const int ic_vol_type_speaker_light = 2130837769; + + // aapt resource value: 0x7f02010a + public const int ic_vol_type_tv_dark = 2130837770; + + // aapt resource value: 0x7f02010b + public const int ic_vol_type_tv_light = 2130837771; + + // aapt resource value: 0x7f02010c + public const int mr_button_connected_dark = 2130837772; + + // aapt resource value: 0x7f02010d + public const int mr_button_connected_light = 2130837773; + + // aapt resource value: 0x7f02010e + public const int mr_button_connecting_dark = 2130837774; + + // aapt resource value: 0x7f02010f + public const int mr_button_connecting_light = 2130837775; + + // aapt resource value: 0x7f020110 + public const int mr_button_dark = 2130837776; + + // aapt resource value: 0x7f020111 + public const int mr_button_light = 2130837777; + + // aapt resource value: 0x7f020112 + public const int mr_dialog_close_dark = 2130837778; + + // aapt resource value: 0x7f020113 + public const int mr_dialog_close_light = 2130837779; + + // aapt resource value: 0x7f020114 + public const int mr_dialog_material_background_dark = 2130837780; + + // aapt resource value: 0x7f020115 + public const int mr_dialog_material_background_light = 2130837781; + + // aapt resource value: 0x7f020116 + public const int mr_group_collapse = 2130837782; + + // aapt resource value: 0x7f020117 + public const int mr_group_expand = 2130837783; + + // aapt resource value: 0x7f020118 + public const int mr_media_pause_dark = 2130837784; + + // aapt resource value: 0x7f020119 + public const int mr_media_pause_light = 2130837785; + + // aapt resource value: 0x7f02011a + public const int mr_media_play_dark = 2130837786; + + // aapt resource value: 0x7f02011b + public const int mr_media_play_light = 2130837787; + + // aapt resource value: 0x7f02011c + public const int mr_media_stop_dark = 2130837788; + + // aapt resource value: 0x7f02011d + public const int mr_media_stop_light = 2130837789; + + // aapt resource value: 0x7f02011e + public const int mr_vol_type_audiotrack_dark = 2130837790; + + // aapt resource value: 0x7f02011f + public const int mr_vol_type_audiotrack_light = 2130837791; + + // aapt resource value: 0x7f020120 + public const int navigation_empty_icon = 2130837792; + + // aapt resource value: 0x7f020121 + public const int notification_action_background = 2130837793; + + // aapt resource value: 0x7f020122 + public const int notification_bg = 2130837794; + + // aapt resource value: 0x7f020123 + public const int notification_bg_low = 2130837795; + + // aapt resource value: 0x7f020124 + public const int notification_bg_low_normal = 2130837796; + + // aapt resource value: 0x7f020125 + public const int notification_bg_low_pressed = 2130837797; + + // aapt resource value: 0x7f020126 + public const int notification_bg_normal = 2130837798; + + // aapt resource value: 0x7f020127 + public const int notification_bg_normal_pressed = 2130837799; + + // aapt resource value: 0x7f020128 + public const int notification_icon_background = 2130837800; + + // aapt resource value: 0x7f02012d + public const int notification_template_icon_bg = 2130837805; + + // aapt resource value: 0x7f02012e + public const int notification_template_icon_low_bg = 2130837806; + + // aapt resource value: 0x7f020129 + public const int notification_tile_bg = 2130837801; + + // aapt resource value: 0x7f02012a + public const int notify_panel_notification_icon_bg = 2130837802; + + // aapt resource value: 0x7f02012b + public const int tooltip_frame_dark = 2130837803; + + // aapt resource value: 0x7f02012c + public const int tooltip_frame_light = 2130837804; + + static Drawable() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Drawable() + { + } + } + + public partial class Id + { + + // aapt resource value: 0x7f0a0032 + public const int ALT = 2131361842; + + // aapt resource value: 0x7f0a0033 + public const int CTRL = 2131361843; + + // aapt resource value: 0x7f0a0034 + public const int FUNCTION = 2131361844; + + // aapt resource value: 0x7f0a0035 + public const int META = 2131361845; + + // aapt resource value: 0x7f0a0036 + public const int SHIFT = 2131361846; + + // aapt resource value: 0x7f0a0037 + public const int SYM = 2131361847; + + // aapt resource value: 0x7f0a00ba + public const int action0 = 2131361978; + + // aapt resource value: 0x7f0a007c + public const int action_bar = 2131361916; + + // aapt resource value: 0x7f0a0001 + public const int action_bar_activity_content = 2131361793; + + // aapt resource value: 0x7f0a007b + public const int action_bar_container = 2131361915; + + // aapt resource value: 0x7f0a0077 + public const int action_bar_root = 2131361911; + + // aapt resource value: 0x7f0a0002 + public const int action_bar_spinner = 2131361794; + + // aapt resource value: 0x7f0a005b + public const int action_bar_subtitle = 2131361883; + + // aapt resource value: 0x7f0a005a + public const int action_bar_title = 2131361882; + + // aapt resource value: 0x7f0a00b7 + public const int action_container = 2131361975; + + // aapt resource value: 0x7f0a007d + public const int action_context_bar = 2131361917; + + // aapt resource value: 0x7f0a00be + public const int action_divider = 2131361982; + + // aapt resource value: 0x7f0a00b8 + public const int action_image = 2131361976; + + // aapt resource value: 0x7f0a0003 + public const int action_menu_divider = 2131361795; + + // aapt resource value: 0x7f0a0004 + public const int action_menu_presenter = 2131361796; + + // aapt resource value: 0x7f0a0079 + public const int action_mode_bar = 2131361913; + + // aapt resource value: 0x7f0a0078 + public const int action_mode_bar_stub = 2131361912; + + // aapt resource value: 0x7f0a005c + public const int action_mode_close_button = 2131361884; + + // aapt resource value: 0x7f0a00b9 + public const int action_text = 2131361977; + + // aapt resource value: 0x7f0a00c7 + public const int actions = 2131361991; + + // aapt resource value: 0x7f0a005d + public const int activity_chooser_view_content = 2131361885; + + // aapt resource value: 0x7f0a0027 + public const int add = 2131361831; + + // aapt resource value: 0x7f0a0070 + public const int alertTitle = 2131361904; + + // aapt resource value: 0x7f0a0052 + public const int all = 2131361874; + + // aapt resource value: 0x7f0a0038 + public const int always = 2131361848; + + // aapt resource value: 0x7f0a0056 + public const int async = 2131361878; + + // aapt resource value: 0x7f0a0044 + public const int auto = 2131361860; + + // aapt resource value: 0x7f0a002f + public const int beginning = 2131361839; + + // aapt resource value: 0x7f0a0057 + public const int blocking = 2131361879; + + // aapt resource value: 0x7f0a003d + public const int bottom = 2131361853; + + // aapt resource value: 0x7f0a008b + public const int bottomtab_navarea = 2131361931; + + // aapt resource value: 0x7f0a008c + public const int bottomtab_tabbar = 2131361932; + + // aapt resource value: 0x7f0a0063 + public const int buttonPanel = 2131361891; + + // aapt resource value: 0x7f0a00bb + public const int cancel_action = 2131361979; + + // aapt resource value: 0x7f0a0045 + public const int center = 2131361861; + + // aapt resource value: 0x7f0a0046 + public const int center_horizontal = 2131361862; + + // aapt resource value: 0x7f0a0047 + public const int center_vertical = 2131361863; + + // aapt resource value: 0x7f0a0073 + public const int checkbox = 2131361907; + + // aapt resource value: 0x7f0a00c3 + public const int chronometer = 2131361987; + + // aapt resource value: 0x7f0a004e + public const int clip_horizontal = 2131361870; + + // aapt resource value: 0x7f0a004f + public const int clip_vertical = 2131361871; + + // aapt resource value: 0x7f0a0039 + public const int collapseActionView = 2131361849; + + // aapt resource value: 0x7f0a008f + public const int container = 2131361935; + + // aapt resource value: 0x7f0a0066 + public const int contentPanel = 2131361894; + + // aapt resource value: 0x7f0a0090 + public const int coordinator = 2131361936; + + // aapt resource value: 0x7f0a006d + public const int custom = 2131361901; + + // aapt resource value: 0x7f0a006c + public const int customPanel = 2131361900; + + // aapt resource value: 0x7f0a007a + public const int decor_content_parent = 2131361914; + + // aapt resource value: 0x7f0a0060 + public const int default_activity_button = 2131361888; + + // aapt resource value: 0x7f0a0092 + public const int design_bottom_sheet = 2131361938; + + // aapt resource value: 0x7f0a0099 + public const int design_menu_item_action_area = 2131361945; + + // aapt resource value: 0x7f0a0098 + public const int design_menu_item_action_area_stub = 2131361944; + + // aapt resource value: 0x7f0a0097 + public const int design_menu_item_text = 2131361943; + + // aapt resource value: 0x7f0a0096 + public const int design_navigation_view = 2131361942; + + // aapt resource value: 0x7f0a0020 + public const int disableHome = 2131361824; + + // aapt resource value: 0x7f0a007e + public const int edit_query = 2131361918; + + // aapt resource value: 0x7f0a0030 + public const int end = 2131361840; + + // aapt resource value: 0x7f0a00c9 + public const int end_padder = 2131361993; + + // aapt resource value: 0x7f0a003f + public const int enterAlways = 2131361855; + + // aapt resource value: 0x7f0a0040 + public const int enterAlwaysCollapsed = 2131361856; + + // aapt resource value: 0x7f0a0041 + public const int exitUntilCollapsed = 2131361857; + + // aapt resource value: 0x7f0a005e + public const int expand_activities_button = 2131361886; + + // aapt resource value: 0x7f0a0072 + public const int expanded_menu = 2131361906; + + // aapt resource value: 0x7f0a0050 + public const int fill = 2131361872; + + // aapt resource value: 0x7f0a0051 + public const int fill_horizontal = 2131361873; + + // aapt resource value: 0x7f0a0048 + public const int fill_vertical = 2131361864; + + // aapt resource value: 0x7f0a0054 + public const int @fixed = 2131361876; + + // aapt resource value: 0x7f0a009b + public const int flyoutcontent_appbar = 2131361947; + + // aapt resource value: 0x7f0a009c + public const int flyoutcontent_recycler = 2131361948; + + // aapt resource value: 0x7f0a0058 + public const int forever = 2131361880; + + // aapt resource value: 0x7f0a000a + public const int ghost_view = 2131361802; + + // aapt resource value: 0x7f0a0005 + public const int home = 2131361797; + + // aapt resource value: 0x7f0a0021 + public const int homeAsUp = 2131361825; + + // aapt resource value: 0x7f0a0062 + public const int icon = 2131361890; + + // aapt resource value: 0x7f0a00c8 + public const int icon_group = 2131361992; + + // aapt resource value: 0x7f0a003a + public const int ifRoom = 2131361850; + + // aapt resource value: 0x7f0a005f + public const int image = 2131361887; + + // aapt resource value: 0x7f0a00c4 + public const int info = 2131361988; + + // aapt resource value: 0x7f0a0059 + public const int italic = 2131361881; + + // aapt resource value: 0x7f0a0000 + public const int item_touch_helper_previous_elevation = 2131361792; + + // aapt resource value: 0x7f0a008e + public const int largeLabel = 2131361934; + + // aapt resource value: 0x7f0a0049 + public const int left = 2131361865; + + // aapt resource value: 0x7f0a0017 + public const int line1 = 2131361815; + + // aapt resource value: 0x7f0a0018 + public const int line3 = 2131361816; + + // aapt resource value: 0x7f0a001d + public const int listMode = 2131361821; + + // aapt resource value: 0x7f0a0061 + public const int list_item = 2131361889; + + // aapt resource value: 0x7f0a00ca + public const int main_appbar = 2131361994; + + // aapt resource value: 0x7f0a00cd + public const int main_scrollview = 2131361997; + + // aapt resource value: 0x7f0a00cc + public const int main_tablayout = 2131361996; + + // aapt resource value: 0x7f0a00cb + public const int main_toolbar = 2131361995; + + // aapt resource value: 0x7f0a00d5 + public const int masked = 2131362005; + + // aapt resource value: 0x7f0a00bd + public const int media_actions = 2131361981; + + // aapt resource value: 0x7f0a00d3 + public const int message = 2131362003; + + // aapt resource value: 0x7f0a0031 + public const int middle = 2131361841; + + // aapt resource value: 0x7f0a0053 + public const int mini = 2131361875; + + // aapt resource value: 0x7f0a00a9 + public const int mr_art = 2131361961; + + // aapt resource value: 0x7f0a009e + public const int mr_chooser_list = 2131361950; + + // aapt resource value: 0x7f0a00a1 + public const int mr_chooser_route_desc = 2131361953; + + // aapt resource value: 0x7f0a009f + public const int mr_chooser_route_icon = 2131361951; + + // aapt resource value: 0x7f0a00a0 + public const int mr_chooser_route_name = 2131361952; + + // aapt resource value: 0x7f0a009d + public const int mr_chooser_title = 2131361949; + + // aapt resource value: 0x7f0a00a6 + public const int mr_close = 2131361958; + + // aapt resource value: 0x7f0a00ac + public const int mr_control_divider = 2131361964; + + // aapt resource value: 0x7f0a00b2 + public const int mr_control_playback_ctrl = 2131361970; + + // aapt resource value: 0x7f0a00b5 + public const int mr_control_subtitle = 2131361973; + + // aapt resource value: 0x7f0a00b4 + public const int mr_control_title = 2131361972; + + // aapt resource value: 0x7f0a00b3 + public const int mr_control_title_container = 2131361971; + + // aapt resource value: 0x7f0a00a7 + public const int mr_custom_control = 2131361959; + + // aapt resource value: 0x7f0a00a8 + public const int mr_default_control = 2131361960; + + // aapt resource value: 0x7f0a00a3 + public const int mr_dialog_area = 2131361955; + + // aapt resource value: 0x7f0a00a2 + public const int mr_expandable_area = 2131361954; + + // aapt resource value: 0x7f0a00b6 + public const int mr_group_expand_collapse = 2131361974; + + // aapt resource value: 0x7f0a00aa + public const int mr_media_main_control = 2131361962; + + // aapt resource value: 0x7f0a00a5 + public const int mr_name = 2131361957; + + // aapt resource value: 0x7f0a00ab + public const int mr_playback_control = 2131361963; + + // aapt resource value: 0x7f0a00a4 + public const int mr_title_bar = 2131361956; + + // aapt resource value: 0x7f0a00ad + public const int mr_volume_control = 2131361965; + + // aapt resource value: 0x7f0a00ae + public const int mr_volume_group_list = 2131361966; + + // aapt resource value: 0x7f0a00b0 + public const int mr_volume_item_icon = 2131361968; + + // aapt resource value: 0x7f0a00b1 + public const int mr_volume_slider = 2131361969; + + // aapt resource value: 0x7f0a0028 + public const int multiply = 2131361832; + + // aapt resource value: 0x7f0a0095 + public const int navigation_header_container = 2131361941; + + // aapt resource value: 0x7f0a003b + public const int never = 2131361851; + + // aapt resource value: 0x7f0a0022 + public const int none = 2131361826; + + // aapt resource value: 0x7f0a001e + public const int normal = 2131361822; + + // aapt resource value: 0x7f0a00c6 + public const int notification_background = 2131361990; + + // aapt resource value: 0x7f0a00c0 + public const int notification_main_column = 2131361984; + + // aapt resource value: 0x7f0a00bf + public const int notification_main_column_container = 2131361983; + + // aapt resource value: 0x7f0a004c + public const int parallax = 2131361868; + + // aapt resource value: 0x7f0a0065 + public const int parentPanel = 2131361893; + + // aapt resource value: 0x7f0a000b + public const int parent_matrix = 2131361803; + + // aapt resource value: 0x7f0a004d + public const int pin = 2131361869; + + // aapt resource value: 0x7f0a0006 + public const int progress_circular = 2131361798; + + // aapt resource value: 0x7f0a0007 + public const int progress_horizontal = 2131361799; + + // aapt resource value: 0x7f0a0075 + public const int radio = 2131361909; + + // aapt resource value: 0x7f0a004a + public const int right = 2131361866; + + // aapt resource value: 0x7f0a00c5 + public const int right_icon = 2131361989; + + // aapt resource value: 0x7f0a00c1 + public const int right_side = 2131361985; + + // aapt resource value: 0x7f0a000c + public const int save_image_matrix = 2131361804; + + // aapt resource value: 0x7f0a000d + public const int save_non_transition_alpha = 2131361805; + + // aapt resource value: 0x7f0a000e + public const int save_scale_type = 2131361806; + + // aapt resource value: 0x7f0a0029 + public const int screen = 2131361833; + + // aapt resource value: 0x7f0a0042 + public const int scroll = 2131361858; + + // aapt resource value: 0x7f0a006b + public const int scrollIndicatorDown = 2131361899; + + // aapt resource value: 0x7f0a0067 + public const int scrollIndicatorUp = 2131361895; + + // aapt resource value: 0x7f0a0068 + public const int scrollView = 2131361896; + + // aapt resource value: 0x7f0a0055 + public const int scrollable = 2131361877; + + // aapt resource value: 0x7f0a0080 + public const int search_badge = 2131361920; + + // aapt resource value: 0x7f0a007f + public const int search_bar = 2131361919; + + // aapt resource value: 0x7f0a0081 + public const int search_button = 2131361921; + + // aapt resource value: 0x7f0a0086 + public const int search_close_btn = 2131361926; + + // aapt resource value: 0x7f0a0082 + public const int search_edit_frame = 2131361922; + + // aapt resource value: 0x7f0a0088 + public const int search_go_btn = 2131361928; + + // aapt resource value: 0x7f0a0083 + public const int search_mag_icon = 2131361923; + + // aapt resource value: 0x7f0a0084 + public const int search_plate = 2131361924; + + // aapt resource value: 0x7f0a0085 + public const int search_src_text = 2131361925; + + // aapt resource value: 0x7f0a0089 + public const int search_voice_btn = 2131361929; + + // aapt resource value: 0x7f0a008a + public const int select_dialog_listview = 2131361930; + + // aapt resource value: 0x7f0a00ce + public const int shellcontent_appbar = 2131361998; + + // aapt resource value: 0x7f0a00d0 + public const int shellcontent_scrollview = 2131362000; + + // aapt resource value: 0x7f0a00cf + public const int shellcontent_toolbar = 2131361999; + + // aapt resource value: 0x7f0a0074 + public const int shortcut = 2131361908; + + // aapt resource value: 0x7f0a0023 + public const int showCustom = 2131361827; + + // aapt resource value: 0x7f0a0024 + public const int showHome = 2131361828; + + // aapt resource value: 0x7f0a0025 + public const int showTitle = 2131361829; + + // aapt resource value: 0x7f0a00d1 + public const int sliding_tabs = 2131362001; + + // aapt resource value: 0x7f0a008d + public const int smallLabel = 2131361933; + + // aapt resource value: 0x7f0a0094 + public const int snackbar_action = 2131361940; + + // aapt resource value: 0x7f0a0093 + public const int snackbar_text = 2131361939; + + // aapt resource value: 0x7f0a0043 + public const int snap = 2131361859; + + // aapt resource value: 0x7f0a0064 + public const int spacer = 2131361892; + + // aapt resource value: 0x7f0a0008 + public const int split_action_bar = 2131361800; + + // aapt resource value: 0x7f0a002a + public const int src_atop = 2131361834; + + // aapt resource value: 0x7f0a002b + public const int src_in = 2131361835; + + // aapt resource value: 0x7f0a002c + public const int src_over = 2131361836; + + // aapt resource value: 0x7f0a004b + public const int start = 2131361867; + + // aapt resource value: 0x7f0a00bc + public const int status_bar_latest_event_content = 2131361980; + + // aapt resource value: 0x7f0a0076 + public const int submenuarrow = 2131361910; + + // aapt resource value: 0x7f0a0087 + public const int submit_area = 2131361927; + + // aapt resource value: 0x7f0a001f + public const int tabMode = 2131361823; + + // aapt resource value: 0x7f0a0019 + public const int tag_transition_group = 2131361817; + + // aapt resource value: 0x7f0a001a + public const int text = 2131361818; + + // aapt resource value: 0x7f0a001b + public const int text2 = 2131361819; + + // aapt resource value: 0x7f0a006a + public const int textSpacerNoButtons = 2131361898; + + // aapt resource value: 0x7f0a0069 + public const int textSpacerNoTitle = 2131361897; + + // aapt resource value: 0x7f0a009a + public const int text_input_password_toggle = 2131361946; + + // aapt resource value: 0x7f0a0014 + public const int textinput_counter = 2131361812; + + // aapt resource value: 0x7f0a0015 + public const int textinput_error = 2131361813; + + // aapt resource value: 0x7f0a00c2 + public const int time = 2131361986; + + // aapt resource value: 0x7f0a001c + public const int title = 2131361820; + + // aapt resource value: 0x7f0a0071 + public const int titleDividerNoCustom = 2131361905; + + // aapt resource value: 0x7f0a006f + public const int title_template = 2131361903; + + // aapt resource value: 0x7f0a00d2 + public const int toolbar = 2131362002; + + // aapt resource value: 0x7f0a003e + public const int top = 2131361854; + + // aapt resource value: 0x7f0a006e + public const int topPanel = 2131361902; + + // aapt resource value: 0x7f0a0091 + public const int touch_outside = 2131361937; + + // aapt resource value: 0x7f0a000f + public const int transition_current_scene = 2131361807; + + // aapt resource value: 0x7f0a0010 + public const int transition_layout_save = 2131361808; + + // aapt resource value: 0x7f0a0011 + public const int transition_position = 2131361809; + + // aapt resource value: 0x7f0a0012 + public const int transition_scene_layoutid_cache = 2131361810; + + // aapt resource value: 0x7f0a0013 + public const int transition_transform = 2131361811; + + // aapt resource value: 0x7f0a002d + public const int uniform = 2131361837; + + // aapt resource value: 0x7f0a0009 + public const int up = 2131361801; + + // aapt resource value: 0x7f0a0026 + public const int useLogo = 2131361830; + + // aapt resource value: 0x7f0a0016 + public const int view_offset_helper = 2131361814; + + // aapt resource value: 0x7f0a00d4 + public const int visible = 2131362004; + + // aapt resource value: 0x7f0a00af + public const int volume_item_container = 2131361967; + + // aapt resource value: 0x7f0a003c + public const int withText = 2131361852; + + // aapt resource value: 0x7f0a002e + public const int wrap_content = 2131361838; + + static Id() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Id() + { + } + } + + public partial class Integer + { + + // aapt resource value: 0x7f0c0003 + public const int abc_config_activityDefaultDur = 2131492867; + + // aapt resource value: 0x7f0c0004 + public const int abc_config_activityShortDur = 2131492868; + + // aapt resource value: 0x7f0c0008 + public const int app_bar_elevation_anim_duration = 2131492872; + + // aapt resource value: 0x7f0c0009 + public const int bottom_sheet_slide_duration = 2131492873; + + // aapt resource value: 0x7f0c0005 + public const int cancel_button_image_alpha = 2131492869; + + // aapt resource value: 0x7f0c0006 + public const int config_tooltipAnimTime = 2131492870; + + // aapt resource value: 0x7f0c0007 + public const int design_snackbar_text_max_lines = 2131492871; + + // aapt resource value: 0x7f0c000a + public const int hide_password_duration = 2131492874; + + // aapt resource value: 0x7f0c0000 + public const int mr_controller_volume_group_list_animation_duration_ms = 2131492864; + + // aapt resource value: 0x7f0c0001 + public const int mr_controller_volume_group_list_fade_in_duration_ms = 2131492865; + + // aapt resource value: 0x7f0c0002 + public const int mr_controller_volume_group_list_fade_out_duration_ms = 2131492866; + + // aapt resource value: 0x7f0c000b + public const int show_password_duration = 2131492875; + + // aapt resource value: 0x7f0c000c + public const int status_bar_notification_info_maxnum = 2131492876; + + static Integer() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Integer() + { + } + } + + public partial class Interpolator + { + + // aapt resource value: 0x7f070000 + public const int mr_fast_out_slow_in = 2131165184; + + // aapt resource value: 0x7f070001 + public const int mr_linear_out_slow_in = 2131165185; + + static Interpolator() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Interpolator() + { + } + } + + public partial class Layout + { + + // aapt resource value: 0x7f040000 + public const int abc_action_bar_title_item = 2130968576; + + // aapt resource value: 0x7f040001 + public const int abc_action_bar_up_container = 2130968577; + + // aapt resource value: 0x7f040002 + public const int abc_action_menu_item_layout = 2130968578; + + // aapt resource value: 0x7f040003 + public const int abc_action_menu_layout = 2130968579; + + // aapt resource value: 0x7f040004 + public const int abc_action_mode_bar = 2130968580; + + // aapt resource value: 0x7f040005 + public const int abc_action_mode_close_item_material = 2130968581; + + // aapt resource value: 0x7f040006 + public const int abc_activity_chooser_view = 2130968582; + + // aapt resource value: 0x7f040007 + public const int abc_activity_chooser_view_list_item = 2130968583; + + // aapt resource value: 0x7f040008 + public const int abc_alert_dialog_button_bar_material = 2130968584; + + // aapt resource value: 0x7f040009 + public const int abc_alert_dialog_material = 2130968585; + + // aapt resource value: 0x7f04000a + public const int abc_alert_dialog_title_material = 2130968586; + + // aapt resource value: 0x7f04000b + public const int abc_dialog_title_material = 2130968587; + + // aapt resource value: 0x7f04000c + public const int abc_expanded_menu_layout = 2130968588; + + // aapt resource value: 0x7f04000d + public const int abc_list_menu_item_checkbox = 2130968589; + + // aapt resource value: 0x7f04000e + public const int abc_list_menu_item_icon = 2130968590; + + // aapt resource value: 0x7f04000f + public const int abc_list_menu_item_layout = 2130968591; + + // aapt resource value: 0x7f040010 + public const int abc_list_menu_item_radio = 2130968592; + + // aapt resource value: 0x7f040011 + public const int abc_popup_menu_header_item_layout = 2130968593; + + // aapt resource value: 0x7f040012 + public const int abc_popup_menu_item_layout = 2130968594; + + // aapt resource value: 0x7f040013 + public const int abc_screen_content_include = 2130968595; + + // aapt resource value: 0x7f040014 + public const int abc_screen_simple = 2130968596; + + // aapt resource value: 0x7f040015 + public const int abc_screen_simple_overlay_action_mode = 2130968597; + + // aapt resource value: 0x7f040016 + public const int abc_screen_toolbar = 2130968598; + + // aapt resource value: 0x7f040017 + public const int abc_search_dropdown_item_icons_2line = 2130968599; + + // aapt resource value: 0x7f040018 + public const int abc_search_view = 2130968600; + + // aapt resource value: 0x7f040019 + public const int abc_select_dialog_material = 2130968601; + + // aapt resource value: 0x7f04001a + public const int BottomTabLayout = 2130968602; + + // aapt resource value: 0x7f04001b + public const int design_bottom_navigation_item = 2130968603; + + // aapt resource value: 0x7f04001c + public const int design_bottom_sheet_dialog = 2130968604; + + // aapt resource value: 0x7f04001d + public const int design_layout_snackbar = 2130968605; + + // aapt resource value: 0x7f04001e + public const int design_layout_snackbar_include = 2130968606; + + // aapt resource value: 0x7f04001f + public const int design_layout_tab_icon = 2130968607; + + // aapt resource value: 0x7f040020 + public const int design_layout_tab_text = 2130968608; + + // aapt resource value: 0x7f040021 + public const int design_menu_item_action_area = 2130968609; + + // aapt resource value: 0x7f040022 + public const int design_navigation_item = 2130968610; + + // aapt resource value: 0x7f040023 + public const int design_navigation_item_header = 2130968611; + + // aapt resource value: 0x7f040024 + public const int design_navigation_item_separator = 2130968612; + + // aapt resource value: 0x7f040025 + public const int design_navigation_item_subheader = 2130968613; + + // aapt resource value: 0x7f040026 + public const int design_navigation_menu = 2130968614; + + // aapt resource value: 0x7f040027 + public const int design_navigation_menu_item = 2130968615; + + // aapt resource value: 0x7f040028 + public const int design_text_input_password_icon = 2130968616; + + // aapt resource value: 0x7f040029 + public const int FlyoutContent = 2130968617; + + // aapt resource value: 0x7f04002a + public const int mr_chooser_dialog = 2130968618; + + // aapt resource value: 0x7f04002b + public const int mr_chooser_list_item = 2130968619; + + // aapt resource value: 0x7f04002c + public const int mr_controller_material_dialog_b = 2130968620; + + // aapt resource value: 0x7f04002d + public const int mr_controller_volume_item = 2130968621; + + // aapt resource value: 0x7f04002e + public const int mr_playback_control = 2130968622; + + // aapt resource value: 0x7f04002f + public const int mr_volume_control = 2130968623; + + // aapt resource value: 0x7f040030 + public const int notification_action = 2130968624; + + // aapt resource value: 0x7f040031 + public const int notification_action_tombstone = 2130968625; + + // aapt resource value: 0x7f040032 + public const int notification_media_action = 2130968626; + + // aapt resource value: 0x7f040033 + public const int notification_media_cancel_action = 2130968627; + + // aapt resource value: 0x7f040034 + public const int notification_template_big_media = 2130968628; + + // aapt resource value: 0x7f040035 + public const int notification_template_big_media_custom = 2130968629; + + // aapt resource value: 0x7f040036 + public const int notification_template_big_media_narrow = 2130968630; + + // aapt resource value: 0x7f040037 + public const int notification_template_big_media_narrow_custom = 2130968631; + + // aapt resource value: 0x7f040038 + public const int notification_template_custom_big = 2130968632; + + // aapt resource value: 0x7f040039 + public const int notification_template_icon_group = 2130968633; + + // aapt resource value: 0x7f04003a + public const int notification_template_lines_media = 2130968634; + + // aapt resource value: 0x7f04003b + public const int notification_template_media = 2130968635; + + // aapt resource value: 0x7f04003c + public const int notification_template_media_custom = 2130968636; + + // aapt resource value: 0x7f04003d + public const int notification_template_part_chronometer = 2130968637; + + // aapt resource value: 0x7f04003e + public const int notification_template_part_time = 2130968638; + + // aapt resource value: 0x7f04003f + public const int RootLayout = 2130968639; + + // aapt resource value: 0x7f040040 + public const int select_dialog_item_material = 2130968640; + + // aapt resource value: 0x7f040041 + public const int select_dialog_multichoice_material = 2130968641; + + // aapt resource value: 0x7f040042 + public const int select_dialog_singlechoice_material = 2130968642; + + // aapt resource value: 0x7f040043 + public const int ShellContent = 2130968643; + + // aapt resource value: 0x7f040044 + public const int support_simple_spinner_dropdown_item = 2130968644; + + // aapt resource value: 0x7f040045 + public const int Tabbar = 2130968645; + + // aapt resource value: 0x7f040046 + public const int Toolbar = 2130968646; + + // aapt resource value: 0x7f040047 + public const int tooltip = 2130968647; + + static Layout() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Layout() + { + } + } + + public partial class Mipmap + { + + // aapt resource value: 0x7f030000 + public const int icon = 2130903040; + + // aapt resource value: 0x7f030001 + public const int icon_round = 2130903041; + + // aapt resource value: 0x7f030002 + public const int launcher_foreground = 2130903042; + + static Mipmap() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Mipmap() + { + } + } + + public partial class String + { + + // aapt resource value: 0x7f0b0015 + public const int abc_action_bar_home_description = 2131427349; + + // aapt resource value: 0x7f0b0016 + public const int abc_action_bar_up_description = 2131427350; + + // aapt resource value: 0x7f0b0017 + public const int abc_action_menu_overflow_description = 2131427351; + + // aapt resource value: 0x7f0b0018 + public const int abc_action_mode_done = 2131427352; + + // aapt resource value: 0x7f0b0019 + public const int abc_activity_chooser_view_see_all = 2131427353; + + // aapt resource value: 0x7f0b001a + public const int abc_activitychooserview_choose_application = 2131427354; + + // aapt resource value: 0x7f0b001b + public const int abc_capital_off = 2131427355; + + // aapt resource value: 0x7f0b001c + public const int abc_capital_on = 2131427356; + + // aapt resource value: 0x7f0b0027 + public const int abc_font_family_body_1_material = 2131427367; + + // aapt resource value: 0x7f0b0028 + public const int abc_font_family_body_2_material = 2131427368; + + // aapt resource value: 0x7f0b0029 + public const int abc_font_family_button_material = 2131427369; + + // aapt resource value: 0x7f0b002a + public const int abc_font_family_caption_material = 2131427370; + + // aapt resource value: 0x7f0b002b + public const int abc_font_family_display_1_material = 2131427371; + + // aapt resource value: 0x7f0b002c + public const int abc_font_family_display_2_material = 2131427372; + + // aapt resource value: 0x7f0b002d + public const int abc_font_family_display_3_material = 2131427373; + + // aapt resource value: 0x7f0b002e + public const int abc_font_family_display_4_material = 2131427374; + + // aapt resource value: 0x7f0b002f + public const int abc_font_family_headline_material = 2131427375; + + // aapt resource value: 0x7f0b0030 + public const int abc_font_family_menu_material = 2131427376; + + // aapt resource value: 0x7f0b0031 + public const int abc_font_family_subhead_material = 2131427377; + + // aapt resource value: 0x7f0b0032 + public const int abc_font_family_title_material = 2131427378; + + // aapt resource value: 0x7f0b001d + public const int abc_search_hint = 2131427357; + + // aapt resource value: 0x7f0b001e + public const int abc_searchview_description_clear = 2131427358; + + // aapt resource value: 0x7f0b001f + public const int abc_searchview_description_query = 2131427359; + + // aapt resource value: 0x7f0b0020 + public const int abc_searchview_description_search = 2131427360; + + // aapt resource value: 0x7f0b0021 + public const int abc_searchview_description_submit = 2131427361; + + // aapt resource value: 0x7f0b0022 + public const int abc_searchview_description_voice = 2131427362; + + // aapt resource value: 0x7f0b0023 + public const int abc_shareactionprovider_share_with = 2131427363; + + // aapt resource value: 0x7f0b0024 + public const int abc_shareactionprovider_share_with_application = 2131427364; + + // aapt resource value: 0x7f0b0025 + public const int abc_toolbar_collapse_description = 2131427365; + + // aapt resource value: 0x7f0b0033 + public const int appbar_scrolling_view_behavior = 2131427379; + + // aapt resource value: 0x7f0b0034 + public const int bottom_sheet_behavior = 2131427380; + + // aapt resource value: 0x7f0b0035 + public const int character_counter_pattern = 2131427381; + + // aapt resource value: 0x7f0b0000 + public const int mr_button_content_description = 2131427328; + + // aapt resource value: 0x7f0b0001 + public const int mr_cast_button_connected = 2131427329; + + // aapt resource value: 0x7f0b0002 + public const int mr_cast_button_connecting = 2131427330; + + // aapt resource value: 0x7f0b0003 + public const int mr_cast_button_disconnected = 2131427331; + + // aapt resource value: 0x7f0b0004 + public const int mr_chooser_searching = 2131427332; + + // aapt resource value: 0x7f0b0005 + public const int mr_chooser_title = 2131427333; + + // aapt resource value: 0x7f0b0006 + public const int mr_controller_album_art = 2131427334; + + // aapt resource value: 0x7f0b0007 + public const int mr_controller_casting_screen = 2131427335; + + // aapt resource value: 0x7f0b0008 + public const int mr_controller_close_description = 2131427336; + + // aapt resource value: 0x7f0b0009 + public const int mr_controller_collapse_group = 2131427337; + + // aapt resource value: 0x7f0b000a + public const int mr_controller_disconnect = 2131427338; + + // aapt resource value: 0x7f0b000b + public const int mr_controller_expand_group = 2131427339; + + // aapt resource value: 0x7f0b000c + public const int mr_controller_no_info_available = 2131427340; + + // aapt resource value: 0x7f0b000d + public const int mr_controller_no_media_selected = 2131427341; + + // aapt resource value: 0x7f0b000e + public const int mr_controller_pause = 2131427342; + + // aapt resource value: 0x7f0b000f + public const int mr_controller_play = 2131427343; + + // aapt resource value: 0x7f0b0010 + public const int mr_controller_stop = 2131427344; + + // aapt resource value: 0x7f0b0011 + public const int mr_controller_stop_casting = 2131427345; + + // aapt resource value: 0x7f0b0012 + public const int mr_controller_volume_slider = 2131427346; + + // aapt resource value: 0x7f0b0013 + public const int mr_system_route_name = 2131427347; + + // aapt resource value: 0x7f0b0014 + public const int mr_user_route_category_name = 2131427348; + + // aapt resource value: 0x7f0b0036 + public const int password_toggle_content_description = 2131427382; + + // aapt resource value: 0x7f0b0037 + public const int path_password_eye = 2131427383; + + // aapt resource value: 0x7f0b0038 + public const int path_password_eye_mask_strike_through = 2131427384; + + // aapt resource value: 0x7f0b0039 + public const int path_password_eye_mask_visible = 2131427385; + + // aapt resource value: 0x7f0b003a + public const int path_password_strike_through = 2131427386; + + // aapt resource value: 0x7f0b0026 + public const int search_menu_title = 2131427366; + + // aapt resource value: 0x7f0b003b + public const int status_bar_notification_info_overflow = 2131427387; + + static String() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private String() + { + } + } + + public partial class Style + { + + // aapt resource value: 0x7f0d00a4 + public const int AlertDialog_AppCompat = 2131558564; + + // aapt resource value: 0x7f0d00a5 + public const int AlertDialog_AppCompat_Light = 2131558565; + + // aapt resource value: 0x7f0d00a6 + public const int Animation_AppCompat_Dialog = 2131558566; + + // aapt resource value: 0x7f0d00a7 + public const int Animation_AppCompat_DropDownUp = 2131558567; + + // aapt resource value: 0x7f0d00a8 + public const int Animation_AppCompat_Tooltip = 2131558568; + + // aapt resource value: 0x7f0d016e + public const int Animation_Design_BottomSheetDialog = 2131558766; + + // aapt resource value: 0x7f0d0191 + public const int AppCompatDialogStyle = 2131558801; + + // aapt resource value: 0x7f0d00a9 + public const int Base_AlertDialog_AppCompat = 2131558569; + + // aapt resource value: 0x7f0d00aa + public const int Base_AlertDialog_AppCompat_Light = 2131558570; + + // aapt resource value: 0x7f0d00ab + public const int Base_Animation_AppCompat_Dialog = 2131558571; + + // aapt resource value: 0x7f0d00ac + public const int Base_Animation_AppCompat_DropDownUp = 2131558572; + + // aapt resource value: 0x7f0d00ad + public const int Base_Animation_AppCompat_Tooltip = 2131558573; + + // aapt resource value: 0x7f0d000c + public const int Base_CardView = 2131558412; + + // aapt resource value: 0x7f0d00ae + public const int Base_DialogWindowTitle_AppCompat = 2131558574; + + // aapt resource value: 0x7f0d00af + public const int Base_DialogWindowTitleBackground_AppCompat = 2131558575; + + // aapt resource value: 0x7f0d0048 + public const int Base_TextAppearance_AppCompat = 2131558472; + + // aapt resource value: 0x7f0d0049 + public const int Base_TextAppearance_AppCompat_Body1 = 2131558473; + + // aapt resource value: 0x7f0d004a + public const int Base_TextAppearance_AppCompat_Body2 = 2131558474; + + // aapt resource value: 0x7f0d0036 + public const int Base_TextAppearance_AppCompat_Button = 2131558454; + + // aapt resource value: 0x7f0d004b + public const int Base_TextAppearance_AppCompat_Caption = 2131558475; + + // aapt resource value: 0x7f0d004c + public const int Base_TextAppearance_AppCompat_Display1 = 2131558476; + + // aapt resource value: 0x7f0d004d + public const int Base_TextAppearance_AppCompat_Display2 = 2131558477; + + // aapt resource value: 0x7f0d004e + public const int Base_TextAppearance_AppCompat_Display3 = 2131558478; + + // aapt resource value: 0x7f0d004f + public const int Base_TextAppearance_AppCompat_Display4 = 2131558479; + + // aapt resource value: 0x7f0d0050 + public const int Base_TextAppearance_AppCompat_Headline = 2131558480; + + // aapt resource value: 0x7f0d001a + public const int Base_TextAppearance_AppCompat_Inverse = 2131558426; + + // aapt resource value: 0x7f0d0051 + public const int Base_TextAppearance_AppCompat_Large = 2131558481; + + // aapt resource value: 0x7f0d001b + public const int Base_TextAppearance_AppCompat_Large_Inverse = 2131558427; + + // aapt resource value: 0x7f0d0052 + public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131558482; + + // aapt resource value: 0x7f0d0053 + public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131558483; + + // aapt resource value: 0x7f0d0054 + public const int Base_TextAppearance_AppCompat_Medium = 2131558484; + + // aapt resource value: 0x7f0d001c + public const int Base_TextAppearance_AppCompat_Medium_Inverse = 2131558428; + + // aapt resource value: 0x7f0d0055 + public const int Base_TextAppearance_AppCompat_Menu = 2131558485; + + // aapt resource value: 0x7f0d00b0 + public const int Base_TextAppearance_AppCompat_SearchResult = 2131558576; + + // aapt resource value: 0x7f0d0056 + public const int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131558486; + + // aapt resource value: 0x7f0d0057 + public const int Base_TextAppearance_AppCompat_SearchResult_Title = 2131558487; + + // aapt resource value: 0x7f0d0058 + public const int Base_TextAppearance_AppCompat_Small = 2131558488; + + // aapt resource value: 0x7f0d001d + public const int Base_TextAppearance_AppCompat_Small_Inverse = 2131558429; + + // aapt resource value: 0x7f0d0059 + public const int Base_TextAppearance_AppCompat_Subhead = 2131558489; + + // aapt resource value: 0x7f0d001e + public const int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131558430; + + // aapt resource value: 0x7f0d005a + public const int Base_TextAppearance_AppCompat_Title = 2131558490; + + // aapt resource value: 0x7f0d001f + public const int Base_TextAppearance_AppCompat_Title_Inverse = 2131558431; + + // aapt resource value: 0x7f0d00b1 + public const int Base_TextAppearance_AppCompat_Tooltip = 2131558577; + + // aapt resource value: 0x7f0d0095 + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131558549; + + // aapt resource value: 0x7f0d005b + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131558491; + + // aapt resource value: 0x7f0d005c + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131558492; + + // aapt resource value: 0x7f0d005d + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131558493; + + // aapt resource value: 0x7f0d005e + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131558494; + + // aapt resource value: 0x7f0d005f + public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131558495; + + // aapt resource value: 0x7f0d0060 + public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131558496; + + // aapt resource value: 0x7f0d0061 + public const int Base_TextAppearance_AppCompat_Widget_Button = 2131558497; + + // aapt resource value: 0x7f0d009c + public const int Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131558556; + + // aapt resource value: 0x7f0d009d + public const int Base_TextAppearance_AppCompat_Widget_Button_Colored = 2131558557; + + // aapt resource value: 0x7f0d0096 + public const int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131558550; + + // aapt resource value: 0x7f0d00b2 + public const int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131558578; + + // aapt resource value: 0x7f0d0062 + public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131558498; + + // aapt resource value: 0x7f0d0063 + public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131558499; + + // aapt resource value: 0x7f0d0064 + public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131558500; + + // aapt resource value: 0x7f0d0065 + public const int Base_TextAppearance_AppCompat_Widget_Switch = 2131558501; + + // aapt resource value: 0x7f0d0066 + public const int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131558502; + + // aapt resource value: 0x7f0d00b3 + public const int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131558579; + + // aapt resource value: 0x7f0d0067 + public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131558503; + + // aapt resource value: 0x7f0d0068 + public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131558504; + + // aapt resource value: 0x7f0d0069 + public const int Base_Theme_AppCompat = 2131558505; + + // aapt resource value: 0x7f0d00b4 + public const int Base_Theme_AppCompat_CompactMenu = 2131558580; + + // aapt resource value: 0x7f0d0020 + public const int Base_Theme_AppCompat_Dialog = 2131558432; + + // aapt resource value: 0x7f0d0021 + public const int Base_Theme_AppCompat_Dialog_Alert = 2131558433; + + // aapt resource value: 0x7f0d00b5 + public const int Base_Theme_AppCompat_Dialog_FixedSize = 2131558581; + + // aapt resource value: 0x7f0d0022 + public const int Base_Theme_AppCompat_Dialog_MinWidth = 2131558434; + + // aapt resource value: 0x7f0d0010 + public const int Base_Theme_AppCompat_DialogWhenLarge = 2131558416; + + // aapt resource value: 0x7f0d006a + public const int Base_Theme_AppCompat_Light = 2131558506; + + // aapt resource value: 0x7f0d00b6 + public const int Base_Theme_AppCompat_Light_DarkActionBar = 2131558582; + + // aapt resource value: 0x7f0d0023 + public const int Base_Theme_AppCompat_Light_Dialog = 2131558435; + + // aapt resource value: 0x7f0d0024 + public const int Base_Theme_AppCompat_Light_Dialog_Alert = 2131558436; + + // aapt resource value: 0x7f0d00b7 + public const int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131558583; + + // aapt resource value: 0x7f0d0025 + public const int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131558437; + + // aapt resource value: 0x7f0d0011 + public const int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131558417; + + // aapt resource value: 0x7f0d00b8 + public const int Base_ThemeOverlay_AppCompat = 2131558584; + + // aapt resource value: 0x7f0d00b9 + public const int Base_ThemeOverlay_AppCompat_ActionBar = 2131558585; + + // aapt resource value: 0x7f0d00ba + public const int Base_ThemeOverlay_AppCompat_Dark = 2131558586; + + // aapt resource value: 0x7f0d00bb + public const int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131558587; + + // aapt resource value: 0x7f0d0026 + public const int Base_ThemeOverlay_AppCompat_Dialog = 2131558438; + + // aapt resource value: 0x7f0d0027 + public const int Base_ThemeOverlay_AppCompat_Dialog_Alert = 2131558439; + + // aapt resource value: 0x7f0d00bc + public const int Base_ThemeOverlay_AppCompat_Light = 2131558588; + + // aapt resource value: 0x7f0d0028 + public const int Base_V11_Theme_AppCompat_Dialog = 2131558440; + + // aapt resource value: 0x7f0d0029 + public const int Base_V11_Theme_AppCompat_Light_Dialog = 2131558441; + + // aapt resource value: 0x7f0d002a + public const int Base_V11_ThemeOverlay_AppCompat_Dialog = 2131558442; + + // aapt resource value: 0x7f0d0032 + public const int Base_V12_Widget_AppCompat_AutoCompleteTextView = 2131558450; + + // aapt resource value: 0x7f0d0033 + public const int Base_V12_Widget_AppCompat_EditText = 2131558451; + + // aapt resource value: 0x7f0d016f + public const int Base_V14_Widget_Design_AppBarLayout = 2131558767; + + // aapt resource value: 0x7f0d006b + public const int Base_V21_Theme_AppCompat = 2131558507; + + // aapt resource value: 0x7f0d006c + public const int Base_V21_Theme_AppCompat_Dialog = 2131558508; + + // aapt resource value: 0x7f0d006d + public const int Base_V21_Theme_AppCompat_Light = 2131558509; + + // aapt resource value: 0x7f0d006e + public const int Base_V21_Theme_AppCompat_Light_Dialog = 2131558510; + + // aapt resource value: 0x7f0d006f + public const int Base_V21_ThemeOverlay_AppCompat_Dialog = 2131558511; + + // aapt resource value: 0x7f0d016b + public const int Base_V21_Widget_Design_AppBarLayout = 2131558763; + + // aapt resource value: 0x7f0d0093 + public const int Base_V22_Theme_AppCompat = 2131558547; + + // aapt resource value: 0x7f0d0094 + public const int Base_V22_Theme_AppCompat_Light = 2131558548; + + // aapt resource value: 0x7f0d0097 + public const int Base_V23_Theme_AppCompat = 2131558551; + + // aapt resource value: 0x7f0d0098 + public const int Base_V23_Theme_AppCompat_Light = 2131558552; + + // aapt resource value: 0x7f0d00a0 + public const int Base_V26_Theme_AppCompat = 2131558560; + + // aapt resource value: 0x7f0d00a1 + public const int Base_V26_Theme_AppCompat_Light = 2131558561; + + // aapt resource value: 0x7f0d00a2 + public const int Base_V26_Widget_AppCompat_Toolbar = 2131558562; + + // aapt resource value: 0x7f0d016d + public const int Base_V26_Widget_Design_AppBarLayout = 2131558765; + + // aapt resource value: 0x7f0d00bd + public const int Base_V7_Theme_AppCompat = 2131558589; + + // aapt resource value: 0x7f0d00be + public const int Base_V7_Theme_AppCompat_Dialog = 2131558590; + + // aapt resource value: 0x7f0d00bf + public const int Base_V7_Theme_AppCompat_Light = 2131558591; + + // aapt resource value: 0x7f0d00c0 + public const int Base_V7_Theme_AppCompat_Light_Dialog = 2131558592; + + // aapt resource value: 0x7f0d00c1 + public const int Base_V7_ThemeOverlay_AppCompat_Dialog = 2131558593; + + // aapt resource value: 0x7f0d00c2 + public const int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131558594; + + // aapt resource value: 0x7f0d00c3 + public const int Base_V7_Widget_AppCompat_EditText = 2131558595; + + // aapt resource value: 0x7f0d00c4 + public const int Base_V7_Widget_AppCompat_Toolbar = 2131558596; + + // aapt resource value: 0x7f0d00c5 + public const int Base_Widget_AppCompat_ActionBar = 2131558597; + + // aapt resource value: 0x7f0d00c6 + public const int Base_Widget_AppCompat_ActionBar_Solid = 2131558598; + + // aapt resource value: 0x7f0d00c7 + public const int Base_Widget_AppCompat_ActionBar_TabBar = 2131558599; + + // aapt resource value: 0x7f0d0070 + public const int Base_Widget_AppCompat_ActionBar_TabText = 2131558512; + + // aapt resource value: 0x7f0d0071 + public const int Base_Widget_AppCompat_ActionBar_TabView = 2131558513; + + // aapt resource value: 0x7f0d0072 + public const int Base_Widget_AppCompat_ActionButton = 2131558514; + + // aapt resource value: 0x7f0d0073 + public const int Base_Widget_AppCompat_ActionButton_CloseMode = 2131558515; + + // aapt resource value: 0x7f0d0074 + public const int Base_Widget_AppCompat_ActionButton_Overflow = 2131558516; + + // aapt resource value: 0x7f0d00c8 + public const int Base_Widget_AppCompat_ActionMode = 2131558600; + + // aapt resource value: 0x7f0d00c9 + public const int Base_Widget_AppCompat_ActivityChooserView = 2131558601; + + // aapt resource value: 0x7f0d0034 + public const int Base_Widget_AppCompat_AutoCompleteTextView = 2131558452; + + // aapt resource value: 0x7f0d0075 + public const int Base_Widget_AppCompat_Button = 2131558517; + + // aapt resource value: 0x7f0d0076 + public const int Base_Widget_AppCompat_Button_Borderless = 2131558518; + + // aapt resource value: 0x7f0d0077 + public const int Base_Widget_AppCompat_Button_Borderless_Colored = 2131558519; + + // aapt resource value: 0x7f0d00ca + public const int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131558602; + + // aapt resource value: 0x7f0d0099 + public const int Base_Widget_AppCompat_Button_Colored = 2131558553; + + // aapt resource value: 0x7f0d0078 + public const int Base_Widget_AppCompat_Button_Small = 2131558520; + + // aapt resource value: 0x7f0d0079 + public const int Base_Widget_AppCompat_ButtonBar = 2131558521; + + // aapt resource value: 0x7f0d00cb + public const int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131558603; + + // aapt resource value: 0x7f0d007a + public const int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131558522; + + // aapt resource value: 0x7f0d007b + public const int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131558523; + + // aapt resource value: 0x7f0d00cc + public const int Base_Widget_AppCompat_CompoundButton_Switch = 2131558604; + + // aapt resource value: 0x7f0d000f + public const int Base_Widget_AppCompat_DrawerArrowToggle = 2131558415; + + // aapt resource value: 0x7f0d00cd + public const int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131558605; + + // aapt resource value: 0x7f0d007c + public const int Base_Widget_AppCompat_DropDownItem_Spinner = 2131558524; + + // aapt resource value: 0x7f0d0035 + public const int Base_Widget_AppCompat_EditText = 2131558453; + + // aapt resource value: 0x7f0d007d + public const int Base_Widget_AppCompat_ImageButton = 2131558525; + + // aapt resource value: 0x7f0d00ce + public const int Base_Widget_AppCompat_Light_ActionBar = 2131558606; + + // aapt resource value: 0x7f0d00cf + public const int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131558607; + + // aapt resource value: 0x7f0d00d0 + public const int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131558608; + + // aapt resource value: 0x7f0d007e + public const int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131558526; + + // aapt resource value: 0x7f0d007f + public const int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131558527; + + // aapt resource value: 0x7f0d0080 + public const int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131558528; + + // aapt resource value: 0x7f0d0081 + public const int Base_Widget_AppCompat_Light_PopupMenu = 2131558529; + + // aapt resource value: 0x7f0d0082 + public const int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131558530; + + // aapt resource value: 0x7f0d00d1 + public const int Base_Widget_AppCompat_ListMenuView = 2131558609; + + // aapt resource value: 0x7f0d0083 + public const int Base_Widget_AppCompat_ListPopupWindow = 2131558531; + + // aapt resource value: 0x7f0d0084 + public const int Base_Widget_AppCompat_ListView = 2131558532; + + // aapt resource value: 0x7f0d0085 + public const int Base_Widget_AppCompat_ListView_DropDown = 2131558533; + + // aapt resource value: 0x7f0d0086 + public const int Base_Widget_AppCompat_ListView_Menu = 2131558534; + + // aapt resource value: 0x7f0d0087 + public const int Base_Widget_AppCompat_PopupMenu = 2131558535; + + // aapt resource value: 0x7f0d0088 + public const int Base_Widget_AppCompat_PopupMenu_Overflow = 2131558536; + + // aapt resource value: 0x7f0d00d2 + public const int Base_Widget_AppCompat_PopupWindow = 2131558610; + + // aapt resource value: 0x7f0d002b + public const int Base_Widget_AppCompat_ProgressBar = 2131558443; + + // aapt resource value: 0x7f0d002c + public const int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131558444; + + // aapt resource value: 0x7f0d0089 + public const int Base_Widget_AppCompat_RatingBar = 2131558537; + + // aapt resource value: 0x7f0d009a + public const int Base_Widget_AppCompat_RatingBar_Indicator = 2131558554; + + // aapt resource value: 0x7f0d009b + public const int Base_Widget_AppCompat_RatingBar_Small = 2131558555; + + // aapt resource value: 0x7f0d00d3 + public const int Base_Widget_AppCompat_SearchView = 2131558611; + + // aapt resource value: 0x7f0d00d4 + public const int Base_Widget_AppCompat_SearchView_ActionBar = 2131558612; + + // aapt resource value: 0x7f0d008a + public const int Base_Widget_AppCompat_SeekBar = 2131558538; + + // aapt resource value: 0x7f0d00d5 + public const int Base_Widget_AppCompat_SeekBar_Discrete = 2131558613; + + // aapt resource value: 0x7f0d008b + public const int Base_Widget_AppCompat_Spinner = 2131558539; + + // aapt resource value: 0x7f0d0012 + public const int Base_Widget_AppCompat_Spinner_Underlined = 2131558418; + + // aapt resource value: 0x7f0d008c + public const int Base_Widget_AppCompat_TextView_SpinnerItem = 2131558540; + + // aapt resource value: 0x7f0d00a3 + public const int Base_Widget_AppCompat_Toolbar = 2131558563; + + // aapt resource value: 0x7f0d008d + public const int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131558541; + + // aapt resource value: 0x7f0d016c + public const int Base_Widget_Design_AppBarLayout = 2131558764; + + // aapt resource value: 0x7f0d0170 + public const int Base_Widget_Design_TabLayout = 2131558768; + + // aapt resource value: 0x7f0d000b + public const int CardView = 2131558411; + + // aapt resource value: 0x7f0d000d + public const int CardView_Dark = 2131558413; + + // aapt resource value: 0x7f0d000e + public const int CardView_Light = 2131558414; + + // aapt resource value: 0x7f0d018f + public const int MainTheme = 2131558799; + + // aapt resource value: 0x7f0d0190 + public const int MainTheme_Base = 2131558800; + + // aapt resource value: 0x7f0d002d + public const int Platform_AppCompat = 2131558445; + + // aapt resource value: 0x7f0d002e + public const int Platform_AppCompat_Light = 2131558446; + + // aapt resource value: 0x7f0d008e + public const int Platform_ThemeOverlay_AppCompat = 2131558542; + + // aapt resource value: 0x7f0d008f + public const int Platform_ThemeOverlay_AppCompat_Dark = 2131558543; + + // aapt resource value: 0x7f0d0090 + public const int Platform_ThemeOverlay_AppCompat_Light = 2131558544; + + // aapt resource value: 0x7f0d002f + public const int Platform_V11_AppCompat = 2131558447; + + // aapt resource value: 0x7f0d0030 + public const int Platform_V11_AppCompat_Light = 2131558448; + + // aapt resource value: 0x7f0d0037 + public const int Platform_V14_AppCompat = 2131558455; + + // aapt resource value: 0x7f0d0038 + public const int Platform_V14_AppCompat_Light = 2131558456; + + // aapt resource value: 0x7f0d0091 + public const int Platform_V21_AppCompat = 2131558545; + + // aapt resource value: 0x7f0d0092 + public const int Platform_V21_AppCompat_Light = 2131558546; + + // aapt resource value: 0x7f0d009e + public const int Platform_V25_AppCompat = 2131558558; + + // aapt resource value: 0x7f0d009f + public const int Platform_V25_AppCompat_Light = 2131558559; + + // aapt resource value: 0x7f0d0031 + public const int Platform_Widget_AppCompat_Spinner = 2131558449; + + // aapt resource value: 0x7f0d003a + public const int RtlOverlay_DialogWindowTitle_AppCompat = 2131558458; + + // aapt resource value: 0x7f0d003b + public const int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131558459; + + // aapt resource value: 0x7f0d003c + public const int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131558460; + + // aapt resource value: 0x7f0d003d + public const int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131558461; + + // aapt resource value: 0x7f0d003e + public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131558462; + + // aapt resource value: 0x7f0d003f + public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131558463; + + // aapt resource value: 0x7f0d0040 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131558464; + + // aapt resource value: 0x7f0d0041 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131558465; + + // aapt resource value: 0x7f0d0042 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131558466; + + // aapt resource value: 0x7f0d0043 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131558467; + + // aapt resource value: 0x7f0d0044 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131558468; + + // aapt resource value: 0x7f0d0045 + public const int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131558469; + + // aapt resource value: 0x7f0d0046 + public const int RtlUnderlay_Widget_AppCompat_ActionButton = 2131558470; + + // aapt resource value: 0x7f0d0047 + public const int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131558471; + + // aapt resource value: 0x7f0d00d6 + public const int TextAppearance_AppCompat = 2131558614; + + // aapt resource value: 0x7f0d00d7 + public const int TextAppearance_AppCompat_Body1 = 2131558615; + + // aapt resource value: 0x7f0d00d8 + public const int TextAppearance_AppCompat_Body2 = 2131558616; + + // aapt resource value: 0x7f0d00d9 + public const int TextAppearance_AppCompat_Button = 2131558617; + + // aapt resource value: 0x7f0d00da + public const int TextAppearance_AppCompat_Caption = 2131558618; + + // aapt resource value: 0x7f0d00db + public const int TextAppearance_AppCompat_Display1 = 2131558619; + + // aapt resource value: 0x7f0d00dc + public const int TextAppearance_AppCompat_Display2 = 2131558620; + + // aapt resource value: 0x7f0d00dd + public const int TextAppearance_AppCompat_Display3 = 2131558621; + + // aapt resource value: 0x7f0d00de + public const int TextAppearance_AppCompat_Display4 = 2131558622; + + // aapt resource value: 0x7f0d00df + public const int TextAppearance_AppCompat_Headline = 2131558623; + + // aapt resource value: 0x7f0d00e0 + public const int TextAppearance_AppCompat_Inverse = 2131558624; + + // aapt resource value: 0x7f0d00e1 + public const int TextAppearance_AppCompat_Large = 2131558625; + + // aapt resource value: 0x7f0d00e2 + public const int TextAppearance_AppCompat_Large_Inverse = 2131558626; + + // aapt resource value: 0x7f0d00e3 + public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131558627; + + // aapt resource value: 0x7f0d00e4 + public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131558628; + + // aapt resource value: 0x7f0d00e5 + public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131558629; + + // aapt resource value: 0x7f0d00e6 + public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131558630; + + // aapt resource value: 0x7f0d00e7 + public const int TextAppearance_AppCompat_Medium = 2131558631; + + // aapt resource value: 0x7f0d00e8 + public const int TextAppearance_AppCompat_Medium_Inverse = 2131558632; + + // aapt resource value: 0x7f0d00e9 + public const int TextAppearance_AppCompat_Menu = 2131558633; + + // aapt resource value: 0x7f0d00ea + public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131558634; + + // aapt resource value: 0x7f0d00eb + public const int TextAppearance_AppCompat_SearchResult_Title = 2131558635; + + // aapt resource value: 0x7f0d00ec + public const int TextAppearance_AppCompat_Small = 2131558636; + + // aapt resource value: 0x7f0d00ed + public const int TextAppearance_AppCompat_Small_Inverse = 2131558637; + + // aapt resource value: 0x7f0d00ee + public const int TextAppearance_AppCompat_Subhead = 2131558638; + + // aapt resource value: 0x7f0d00ef + public const int TextAppearance_AppCompat_Subhead_Inverse = 2131558639; + + // aapt resource value: 0x7f0d00f0 + public const int TextAppearance_AppCompat_Title = 2131558640; + + // aapt resource value: 0x7f0d00f1 + public const int TextAppearance_AppCompat_Title_Inverse = 2131558641; + + // aapt resource value: 0x7f0d0039 + public const int TextAppearance_AppCompat_Tooltip = 2131558457; + + // aapt resource value: 0x7f0d00f2 + public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131558642; + + // aapt resource value: 0x7f0d00f3 + public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131558643; + + // aapt resource value: 0x7f0d00f4 + public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131558644; + + // aapt resource value: 0x7f0d00f5 + public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131558645; + + // aapt resource value: 0x7f0d00f6 + public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131558646; + + // aapt resource value: 0x7f0d00f7 + public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131558647; + + // aapt resource value: 0x7f0d00f8 + public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131558648; + + // aapt resource value: 0x7f0d00f9 + public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131558649; + + // aapt resource value: 0x7f0d00fa + public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131558650; + + // aapt resource value: 0x7f0d00fb + public const int TextAppearance_AppCompat_Widget_Button = 2131558651; + + // aapt resource value: 0x7f0d00fc + public const int TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131558652; + + // aapt resource value: 0x7f0d00fd + public const int TextAppearance_AppCompat_Widget_Button_Colored = 2131558653; + + // aapt resource value: 0x7f0d00fe + public const int TextAppearance_AppCompat_Widget_Button_Inverse = 2131558654; + + // aapt resource value: 0x7f0d00ff + public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131558655; + + // aapt resource value: 0x7f0d0100 + public const int TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131558656; + + // aapt resource value: 0x7f0d0101 + public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131558657; + + // aapt resource value: 0x7f0d0102 + public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131558658; + + // aapt resource value: 0x7f0d0103 + public const int TextAppearance_AppCompat_Widget_Switch = 2131558659; + + // aapt resource value: 0x7f0d0104 + public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131558660; + + // aapt resource value: 0x7f0d0188 + public const int TextAppearance_Compat_Notification = 2131558792; + + // aapt resource value: 0x7f0d0189 + public const int TextAppearance_Compat_Notification_Info = 2131558793; + + // aapt resource value: 0x7f0d0165 + public const int TextAppearance_Compat_Notification_Info_Media = 2131558757; + + // aapt resource value: 0x7f0d018e + public const int TextAppearance_Compat_Notification_Line2 = 2131558798; + + // aapt resource value: 0x7f0d0169 + public const int TextAppearance_Compat_Notification_Line2_Media = 2131558761; + + // aapt resource value: 0x7f0d0166 + public const int TextAppearance_Compat_Notification_Media = 2131558758; + + // aapt resource value: 0x7f0d018a + public const int TextAppearance_Compat_Notification_Time = 2131558794; + + // aapt resource value: 0x7f0d0167 + public const int TextAppearance_Compat_Notification_Time_Media = 2131558759; + + // aapt resource value: 0x7f0d018b + public const int TextAppearance_Compat_Notification_Title = 2131558795; + + // aapt resource value: 0x7f0d0168 + public const int TextAppearance_Compat_Notification_Title_Media = 2131558760; + + // aapt resource value: 0x7f0d0171 + public const int TextAppearance_Design_CollapsingToolbar_Expanded = 2131558769; + + // aapt resource value: 0x7f0d0172 + public const int TextAppearance_Design_Counter = 2131558770; + + // aapt resource value: 0x7f0d0173 + public const int TextAppearance_Design_Counter_Overflow = 2131558771; + + // aapt resource value: 0x7f0d0174 + public const int TextAppearance_Design_Error = 2131558772; + + // aapt resource value: 0x7f0d0175 + public const int TextAppearance_Design_Hint = 2131558773; + + // aapt resource value: 0x7f0d0176 + public const int TextAppearance_Design_Snackbar_Message = 2131558774; + + // aapt resource value: 0x7f0d0177 + public const int TextAppearance_Design_Tab = 2131558775; + + // aapt resource value: 0x7f0d0000 + public const int TextAppearance_MediaRouter_PrimaryText = 2131558400; + + // aapt resource value: 0x7f0d0001 + public const int TextAppearance_MediaRouter_SecondaryText = 2131558401; + + // aapt resource value: 0x7f0d0002 + public const int TextAppearance_MediaRouter_Title = 2131558402; + + // aapt resource value: 0x7f0d0105 + public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131558661; + + // aapt resource value: 0x7f0d0106 + public const int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131558662; + + // aapt resource value: 0x7f0d0107 + public const int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131558663; + + // aapt resource value: 0x7f0d0108 + public const int Theme_AppCompat = 2131558664; + + // aapt resource value: 0x7f0d0109 + public const int Theme_AppCompat_CompactMenu = 2131558665; + + // aapt resource value: 0x7f0d0013 + public const int Theme_AppCompat_DayNight = 2131558419; + + // aapt resource value: 0x7f0d0014 + public const int Theme_AppCompat_DayNight_DarkActionBar = 2131558420; + + // aapt resource value: 0x7f0d0015 + public const int Theme_AppCompat_DayNight_Dialog = 2131558421; + + // aapt resource value: 0x7f0d0016 + public const int Theme_AppCompat_DayNight_Dialog_Alert = 2131558422; + + // aapt resource value: 0x7f0d0017 + public const int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131558423; + + // aapt resource value: 0x7f0d0018 + public const int Theme_AppCompat_DayNight_DialogWhenLarge = 2131558424; + + // aapt resource value: 0x7f0d0019 + public const int Theme_AppCompat_DayNight_NoActionBar = 2131558425; + + // aapt resource value: 0x7f0d010a + public const int Theme_AppCompat_Dialog = 2131558666; + + // aapt resource value: 0x7f0d010b + public const int Theme_AppCompat_Dialog_Alert = 2131558667; + + // aapt resource value: 0x7f0d010c + public const int Theme_AppCompat_Dialog_MinWidth = 2131558668; + + // aapt resource value: 0x7f0d010d + public const int Theme_AppCompat_DialogWhenLarge = 2131558669; + + // aapt resource value: 0x7f0d010e + public const int Theme_AppCompat_Light = 2131558670; + + // aapt resource value: 0x7f0d010f + public const int Theme_AppCompat_Light_DarkActionBar = 2131558671; + + // aapt resource value: 0x7f0d0110 + public const int Theme_AppCompat_Light_Dialog = 2131558672; + + // aapt resource value: 0x7f0d0111 + public const int Theme_AppCompat_Light_Dialog_Alert = 2131558673; + + // aapt resource value: 0x7f0d0112 + public const int Theme_AppCompat_Light_Dialog_MinWidth = 2131558674; + + // aapt resource value: 0x7f0d0113 + public const int Theme_AppCompat_Light_DialogWhenLarge = 2131558675; + + // aapt resource value: 0x7f0d0114 + public const int Theme_AppCompat_Light_NoActionBar = 2131558676; + + // aapt resource value: 0x7f0d0115 + public const int Theme_AppCompat_NoActionBar = 2131558677; + + // aapt resource value: 0x7f0d0178 + public const int Theme_Design = 2131558776; + + // aapt resource value: 0x7f0d0179 + public const int Theme_Design_BottomSheetDialog = 2131558777; + + // aapt resource value: 0x7f0d017a + public const int Theme_Design_Light = 2131558778; + + // aapt resource value: 0x7f0d017b + public const int Theme_Design_Light_BottomSheetDialog = 2131558779; + + // aapt resource value: 0x7f0d017c + public const int Theme_Design_Light_NoActionBar = 2131558780; + + // aapt resource value: 0x7f0d017d + public const int Theme_Design_NoActionBar = 2131558781; + + // aapt resource value: 0x7f0d0003 + public const int Theme_MediaRouter = 2131558403; + + // aapt resource value: 0x7f0d0004 + public const int Theme_MediaRouter_Light = 2131558404; + + // aapt resource value: 0x7f0d0005 + public const int Theme_MediaRouter_Light_DarkControlPanel = 2131558405; + + // aapt resource value: 0x7f0d0006 + public const int Theme_MediaRouter_LightControlPanel = 2131558406; + + // aapt resource value: 0x7f0d0116 + public const int ThemeOverlay_AppCompat = 2131558678; + + // aapt resource value: 0x7f0d0117 + public const int ThemeOverlay_AppCompat_ActionBar = 2131558679; + + // aapt resource value: 0x7f0d0118 + public const int ThemeOverlay_AppCompat_Dark = 2131558680; + + // aapt resource value: 0x7f0d0119 + public const int ThemeOverlay_AppCompat_Dark_ActionBar = 2131558681; + + // aapt resource value: 0x7f0d011a + public const int ThemeOverlay_AppCompat_Dialog = 2131558682; + + // aapt resource value: 0x7f0d011b + public const int ThemeOverlay_AppCompat_Dialog_Alert = 2131558683; + + // aapt resource value: 0x7f0d011c + public const int ThemeOverlay_AppCompat_Light = 2131558684; + + // aapt resource value: 0x7f0d0007 + public const int ThemeOverlay_MediaRouter_Dark = 2131558407; + + // aapt resource value: 0x7f0d0008 + public const int ThemeOverlay_MediaRouter_Light = 2131558408; + + // aapt resource value: 0x7f0d011d + public const int Widget_AppCompat_ActionBar = 2131558685; + + // aapt resource value: 0x7f0d011e + public const int Widget_AppCompat_ActionBar_Solid = 2131558686; + + // aapt resource value: 0x7f0d011f + public const int Widget_AppCompat_ActionBar_TabBar = 2131558687; + + // aapt resource value: 0x7f0d0120 + public const int Widget_AppCompat_ActionBar_TabText = 2131558688; + + // aapt resource value: 0x7f0d0121 + public const int Widget_AppCompat_ActionBar_TabView = 2131558689; + + // aapt resource value: 0x7f0d0122 + public const int Widget_AppCompat_ActionButton = 2131558690; + + // aapt resource value: 0x7f0d0123 + public const int Widget_AppCompat_ActionButton_CloseMode = 2131558691; + + // aapt resource value: 0x7f0d0124 + public const int Widget_AppCompat_ActionButton_Overflow = 2131558692; + + // aapt resource value: 0x7f0d0125 + public const int Widget_AppCompat_ActionMode = 2131558693; + + // aapt resource value: 0x7f0d0126 + public const int Widget_AppCompat_ActivityChooserView = 2131558694; + + // aapt resource value: 0x7f0d0127 + public const int Widget_AppCompat_AutoCompleteTextView = 2131558695; + + // aapt resource value: 0x7f0d0128 + public const int Widget_AppCompat_Button = 2131558696; + + // aapt resource value: 0x7f0d0129 + public const int Widget_AppCompat_Button_Borderless = 2131558697; + + // aapt resource value: 0x7f0d012a + public const int Widget_AppCompat_Button_Borderless_Colored = 2131558698; + + // aapt resource value: 0x7f0d012b + public const int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131558699; + + // aapt resource value: 0x7f0d012c + public const int Widget_AppCompat_Button_Colored = 2131558700; + + // aapt resource value: 0x7f0d012d + public const int Widget_AppCompat_Button_Small = 2131558701; + + // aapt resource value: 0x7f0d012e + public const int Widget_AppCompat_ButtonBar = 2131558702; + + // aapt resource value: 0x7f0d012f + public const int Widget_AppCompat_ButtonBar_AlertDialog = 2131558703; + + // aapt resource value: 0x7f0d0130 + public const int Widget_AppCompat_CompoundButton_CheckBox = 2131558704; + + // aapt resource value: 0x7f0d0131 + public const int Widget_AppCompat_CompoundButton_RadioButton = 2131558705; + + // aapt resource value: 0x7f0d0132 + public const int Widget_AppCompat_CompoundButton_Switch = 2131558706; + + // aapt resource value: 0x7f0d0133 + public const int Widget_AppCompat_DrawerArrowToggle = 2131558707; + + // aapt resource value: 0x7f0d0134 + public const int Widget_AppCompat_DropDownItem_Spinner = 2131558708; + + // aapt resource value: 0x7f0d0135 + public const int Widget_AppCompat_EditText = 2131558709; + + // aapt resource value: 0x7f0d0136 + public const int Widget_AppCompat_ImageButton = 2131558710; + + // aapt resource value: 0x7f0d0137 + public const int Widget_AppCompat_Light_ActionBar = 2131558711; + + // aapt resource value: 0x7f0d0138 + public const int Widget_AppCompat_Light_ActionBar_Solid = 2131558712; + + // aapt resource value: 0x7f0d0139 + public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131558713; + + // aapt resource value: 0x7f0d013a + public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131558714; + + // aapt resource value: 0x7f0d013b + public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131558715; + + // aapt resource value: 0x7f0d013c + public const int Widget_AppCompat_Light_ActionBar_TabText = 2131558716; + + // aapt resource value: 0x7f0d013d + public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131558717; + + // aapt resource value: 0x7f0d013e + public const int Widget_AppCompat_Light_ActionBar_TabView = 2131558718; + + // aapt resource value: 0x7f0d013f + public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131558719; + + // aapt resource value: 0x7f0d0140 + public const int Widget_AppCompat_Light_ActionButton = 2131558720; + + // aapt resource value: 0x7f0d0141 + public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131558721; + + // aapt resource value: 0x7f0d0142 + public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131558722; + + // aapt resource value: 0x7f0d0143 + public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131558723; + + // aapt resource value: 0x7f0d0144 + public const int Widget_AppCompat_Light_ActivityChooserView = 2131558724; + + // aapt resource value: 0x7f0d0145 + public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131558725; + + // aapt resource value: 0x7f0d0146 + public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131558726; + + // aapt resource value: 0x7f0d0147 + public const int Widget_AppCompat_Light_ListPopupWindow = 2131558727; + + // aapt resource value: 0x7f0d0148 + public const int Widget_AppCompat_Light_ListView_DropDown = 2131558728; + + // aapt resource value: 0x7f0d0149 + public const int Widget_AppCompat_Light_PopupMenu = 2131558729; + + // aapt resource value: 0x7f0d014a + public const int Widget_AppCompat_Light_PopupMenu_Overflow = 2131558730; + + // aapt resource value: 0x7f0d014b + public const int Widget_AppCompat_Light_SearchView = 2131558731; + + // aapt resource value: 0x7f0d014c + public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131558732; + + // aapt resource value: 0x7f0d014d + public const int Widget_AppCompat_ListMenuView = 2131558733; + + // aapt resource value: 0x7f0d014e + public const int Widget_AppCompat_ListPopupWindow = 2131558734; + + // aapt resource value: 0x7f0d014f + public const int Widget_AppCompat_ListView = 2131558735; + + // aapt resource value: 0x7f0d0150 + public const int Widget_AppCompat_ListView_DropDown = 2131558736; + + // aapt resource value: 0x7f0d0151 + public const int Widget_AppCompat_ListView_Menu = 2131558737; + + // aapt resource value: 0x7f0d0152 + public const int Widget_AppCompat_PopupMenu = 2131558738; + + // aapt resource value: 0x7f0d0153 + public const int Widget_AppCompat_PopupMenu_Overflow = 2131558739; + + // aapt resource value: 0x7f0d0154 + public const int Widget_AppCompat_PopupWindow = 2131558740; + + // aapt resource value: 0x7f0d0155 + public const int Widget_AppCompat_ProgressBar = 2131558741; + + // aapt resource value: 0x7f0d0156 + public const int Widget_AppCompat_ProgressBar_Horizontal = 2131558742; + + // aapt resource value: 0x7f0d0157 + public const int Widget_AppCompat_RatingBar = 2131558743; + + // aapt resource value: 0x7f0d0158 + public const int Widget_AppCompat_RatingBar_Indicator = 2131558744; + + // aapt resource value: 0x7f0d0159 + public const int Widget_AppCompat_RatingBar_Small = 2131558745; + + // aapt resource value: 0x7f0d015a + public const int Widget_AppCompat_SearchView = 2131558746; + + // aapt resource value: 0x7f0d015b + public const int Widget_AppCompat_SearchView_ActionBar = 2131558747; + + // aapt resource value: 0x7f0d015c + public const int Widget_AppCompat_SeekBar = 2131558748; + + // aapt resource value: 0x7f0d015d + public const int Widget_AppCompat_SeekBar_Discrete = 2131558749; + + // aapt resource value: 0x7f0d015e + public const int Widget_AppCompat_Spinner = 2131558750; + + // aapt resource value: 0x7f0d015f + public const int Widget_AppCompat_Spinner_DropDown = 2131558751; + + // aapt resource value: 0x7f0d0160 + public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131558752; + + // aapt resource value: 0x7f0d0161 + public const int Widget_AppCompat_Spinner_Underlined = 2131558753; + + // aapt resource value: 0x7f0d0162 + public const int Widget_AppCompat_TextView_SpinnerItem = 2131558754; + + // aapt resource value: 0x7f0d0163 + public const int Widget_AppCompat_Toolbar = 2131558755; + + // aapt resource value: 0x7f0d0164 + public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131558756; + + // aapt resource value: 0x7f0d018c + public const int Widget_Compat_NotificationActionContainer = 2131558796; + + // aapt resource value: 0x7f0d018d + public const int Widget_Compat_NotificationActionText = 2131558797; + + // aapt resource value: 0x7f0d017e + public const int Widget_Design_AppBarLayout = 2131558782; + + // aapt resource value: 0x7f0d017f + public const int Widget_Design_BottomNavigationView = 2131558783; + + // aapt resource value: 0x7f0d0180 + public const int Widget_Design_BottomSheet_Modal = 2131558784; + + // aapt resource value: 0x7f0d0181 + public const int Widget_Design_CollapsingToolbar = 2131558785; + + // aapt resource value: 0x7f0d0182 + public const int Widget_Design_CoordinatorLayout = 2131558786; + + // aapt resource value: 0x7f0d0183 + public const int Widget_Design_FloatingActionButton = 2131558787; + + // aapt resource value: 0x7f0d0184 + public const int Widget_Design_NavigationView = 2131558788; + + // aapt resource value: 0x7f0d0185 + public const int Widget_Design_ScrimInsetsFrameLayout = 2131558789; + + // aapt resource value: 0x7f0d0186 + public const int Widget_Design_Snackbar = 2131558790; + + // aapt resource value: 0x7f0d016a + public const int Widget_Design_TabLayout = 2131558762; + + // aapt resource value: 0x7f0d0187 + public const int Widget_Design_TextInputLayout = 2131558791; + + // aapt resource value: 0x7f0d0009 + public const int Widget_MediaRouter_Light_MediaRouteButton = 2131558409; + + // aapt resource value: 0x7f0d000a + public const int Widget_MediaRouter_MediaRouteButton = 2131558410; + + static Style() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Style() + { + } + } + + public partial class Xml + { + + // aapt resource value: 0x7f080000 + public const int xamarin_essentials_fileprovider_file_paths = 2131230720; + + static Xml() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Xml() + { + } + } + + public partial class Styleable + { + + public static int[] ActionBar = new int[] { + 2130772003, + 2130772005, + 2130772006, + 2130772007, + 2130772008, + 2130772009, + 2130772010, + 2130772011, + 2130772012, + 2130772013, + 2130772014, + 2130772015, + 2130772016, + 2130772017, + 2130772018, + 2130772019, + 2130772020, + 2130772021, + 2130772022, + 2130772023, + 2130772024, + 2130772025, + 2130772026, + 2130772027, + 2130772028, + 2130772029, + 2130772030, + 2130772031, + 2130772101}; + + // aapt resource value: 10 + public const int ActionBar_background = 10; + + // aapt resource value: 12 + public const int ActionBar_backgroundSplit = 12; + + // aapt resource value: 11 + public const int ActionBar_backgroundStacked = 11; + + // aapt resource value: 21 + public const int ActionBar_contentInsetEnd = 21; + + // aapt resource value: 25 + public const int ActionBar_contentInsetEndWithActions = 25; + + // aapt resource value: 22 + public const int ActionBar_contentInsetLeft = 22; + + // aapt resource value: 23 + public const int ActionBar_contentInsetRight = 23; + + // aapt resource value: 20 + public const int ActionBar_contentInsetStart = 20; + + // aapt resource value: 24 + public const int ActionBar_contentInsetStartWithNavigation = 24; + + // aapt resource value: 13 + public const int ActionBar_customNavigationLayout = 13; + + // aapt resource value: 3 + public const int ActionBar_displayOptions = 3; + + // aapt resource value: 9 + public const int ActionBar_divider = 9; + + // aapt resource value: 26 + public const int ActionBar_elevation = 26; + + // aapt resource value: 0 + public const int ActionBar_height = 0; + + // aapt resource value: 19 + public const int ActionBar_hideOnContentScroll = 19; + + // aapt resource value: 28 + public const int ActionBar_homeAsUpIndicator = 28; + + // aapt resource value: 14 + public const int ActionBar_homeLayout = 14; + + // aapt resource value: 7 + public const int ActionBar_icon = 7; + + // aapt resource value: 16 + public const int ActionBar_indeterminateProgressStyle = 16; + + // aapt resource value: 18 + public const int ActionBar_itemPadding = 18; + + // aapt resource value: 8 + public const int ActionBar_logo = 8; + + // aapt resource value: 2 + public const int ActionBar_navigationMode = 2; + + // aapt resource value: 27 + public const int ActionBar_popupTheme = 27; + + // aapt resource value: 17 + public const int ActionBar_progressBarPadding = 17; + + // aapt resource value: 15 + public const int ActionBar_progressBarStyle = 15; + + // aapt resource value: 4 + public const int ActionBar_subtitle = 4; + + // aapt resource value: 6 + public const int ActionBar_subtitleTextStyle = 6; + + // aapt resource value: 1 + public const int ActionBar_title = 1; + + // aapt resource value: 5 + public const int ActionBar_titleTextStyle = 5; + + public static int[] ActionBarLayout = new int[] { + 16842931}; + + // aapt resource value: 0 + public const int ActionBarLayout_android_layout_gravity = 0; + + public static int[] ActionMenuItemView = new int[] { + 16843071}; + + // aapt resource value: 0 + public const int ActionMenuItemView_android_minWidth = 0; + + public static int[] ActionMenuView; + + public static int[] ActionMode = new int[] { + 2130772003, + 2130772009, + 2130772010, + 2130772014, + 2130772016, + 2130772032}; + + // aapt resource value: 3 + public const int ActionMode_background = 3; + + // aapt resource value: 4 + public const int ActionMode_backgroundSplit = 4; + + // aapt resource value: 5 + public const int ActionMode_closeItemLayout = 5; + + // aapt resource value: 0 + public const int ActionMode_height = 0; + + // aapt resource value: 2 + public const int ActionMode_subtitleTextStyle = 2; + + // aapt resource value: 1 + public const int ActionMode_titleTextStyle = 1; + + public static int[] ActivityChooserView = new int[] { + 2130772033, + 2130772034}; + + // aapt resource value: 1 + public const int ActivityChooserView_expandActivityOverflowButtonDrawable = 1; + + // aapt resource value: 0 + public const int ActivityChooserView_initialActivityCount = 0; + + public static int[] AlertDialog = new int[] { + 16842994, + 2130772035, + 2130772036, + 2130772037, + 2130772038, + 2130772039, + 2130772040}; + + // aapt resource value: 0 + public const int AlertDialog_android_layout = 0; + + // aapt resource value: 1 + public const int AlertDialog_buttonPanelSideLayout = 1; + + // aapt resource value: 5 + public const int AlertDialog_listItemLayout = 5; + + // aapt resource value: 2 + public const int AlertDialog_listLayout = 2; + + // aapt resource value: 3 + public const int AlertDialog_multiChoiceItemLayout = 3; + + // aapt resource value: 6 + public const int AlertDialog_showTitle = 6; + + // aapt resource value: 4 + public const int AlertDialog_singleChoiceItemLayout = 4; + + public static int[] AppBarLayout = new int[] { + 16842964, + 16843919, + 16844096, + 2130772030, + 2130772248}; + + // aapt resource value: 0 + public const int AppBarLayout_android_background = 0; + + // aapt resource value: 2 + public const int AppBarLayout_android_keyboardNavigationCluster = 2; + + // aapt resource value: 1 + public const int AppBarLayout_android_touchscreenBlocksFocus = 1; + + // aapt resource value: 3 + public const int AppBarLayout_elevation = 3; + + // aapt resource value: 4 + public const int AppBarLayout_expanded = 4; + + public static int[] AppBarLayoutStates = new int[] { + 2130772249, + 2130772250}; + + // aapt resource value: 0 + public const int AppBarLayoutStates_state_collapsed = 0; + + // aapt resource value: 1 + public const int AppBarLayoutStates_state_collapsible = 1; + + public static int[] AppBarLayout_Layout = new int[] { + 2130772251, + 2130772252}; + + // aapt resource value: 0 + public const int AppBarLayout_Layout_layout_scrollFlags = 0; + + // aapt resource value: 1 + public const int AppBarLayout_Layout_layout_scrollInterpolator = 1; + + public static int[] AppCompatImageView = new int[] { + 16843033, + 2130772041, + 2130772042, + 2130772043}; + + // aapt resource value: 0 + public const int AppCompatImageView_android_src = 0; + + // aapt resource value: 1 + public const int AppCompatImageView_srcCompat = 1; + + // aapt resource value: 2 + public const int AppCompatImageView_tint = 2; + + // aapt resource value: 3 + public const int AppCompatImageView_tintMode = 3; + + public static int[] AppCompatSeekBar = new int[] { + 16843074, + 2130772044, + 2130772045, + 2130772046}; + + // aapt resource value: 0 + public const int AppCompatSeekBar_android_thumb = 0; + + // aapt resource value: 1 + public const int AppCompatSeekBar_tickMark = 1; + + // aapt resource value: 2 + public const int AppCompatSeekBar_tickMarkTint = 2; + + // aapt resource value: 3 + public const int AppCompatSeekBar_tickMarkTintMode = 3; + + public static int[] AppCompatTextHelper = new int[] { + 16842804, + 16843117, + 16843118, + 16843119, + 16843120, + 16843666, + 16843667}; + + // aapt resource value: 2 + public const int AppCompatTextHelper_android_drawableBottom = 2; + + // aapt resource value: 6 + public const int AppCompatTextHelper_android_drawableEnd = 6; + + // aapt resource value: 3 + public const int AppCompatTextHelper_android_drawableLeft = 3; + + // aapt resource value: 4 + public const int AppCompatTextHelper_android_drawableRight = 4; + + // aapt resource value: 5 + public const int AppCompatTextHelper_android_drawableStart = 5; + + // aapt resource value: 1 + public const int AppCompatTextHelper_android_drawableTop = 1; + + // aapt resource value: 0 + public const int AppCompatTextHelper_android_textAppearance = 0; + + public static int[] AppCompatTextView = new int[] { + 16842804, + 2130772047, + 2130772048, + 2130772049, + 2130772050, + 2130772051, + 2130772052, + 2130772053}; + + // aapt resource value: 0 + public const int AppCompatTextView_android_textAppearance = 0; + + // aapt resource value: 6 + public const int AppCompatTextView_autoSizeMaxTextSize = 6; + + // aapt resource value: 5 + public const int AppCompatTextView_autoSizeMinTextSize = 5; + + // aapt resource value: 4 + public const int AppCompatTextView_autoSizePresetSizes = 4; + + // aapt resource value: 3 + public const int AppCompatTextView_autoSizeStepGranularity = 3; + + // aapt resource value: 2 + public const int AppCompatTextView_autoSizeTextType = 2; + + // aapt resource value: 7 + public const int AppCompatTextView_fontFamily = 7; + + // aapt resource value: 1 + public const int AppCompatTextView_textAllCaps = 1; + + public static int[] AppCompatTheme = new int[] { + 16842839, + 16842926, + 2130772054, + 2130772055, + 2130772056, + 2130772057, + 2130772058, + 2130772059, + 2130772060, + 2130772061, + 2130772062, + 2130772063, + 2130772064, + 2130772065, + 2130772066, + 2130772067, + 2130772068, + 2130772069, + 2130772070, + 2130772071, + 2130772072, + 2130772073, + 2130772074, + 2130772075, + 2130772076, + 2130772077, + 2130772078, + 2130772079, + 2130772080, + 2130772081, + 2130772082, + 2130772083, + 2130772084, + 2130772085, + 2130772086, + 2130772087, + 2130772088, + 2130772089, + 2130772090, + 2130772091, + 2130772092, + 2130772093, + 2130772094, + 2130772095, + 2130772096, + 2130772097, + 2130772098, + 2130772099, + 2130772100, + 2130772101, + 2130772102, + 2130772103, + 2130772104, + 2130772105, + 2130772106, + 2130772107, + 2130772108, + 2130772109, + 2130772110, + 2130772111, + 2130772112, + 2130772113, + 2130772114, + 2130772115, + 2130772116, + 2130772117, + 2130772118, + 2130772119, + 2130772120, + 2130772121, + 2130772122, + 2130772123, + 2130772124, + 2130772125, + 2130772126, + 2130772127, + 2130772128, + 2130772129, + 2130772130, + 2130772131, + 2130772132, + 2130772133, + 2130772134, + 2130772135, + 2130772136, + 2130772137, + 2130772138, + 2130772139, + 2130772140, + 2130772141, + 2130772142, + 2130772143, + 2130772144, + 2130772145, + 2130772146, + 2130772147, + 2130772148, + 2130772149, + 2130772150, + 2130772151, + 2130772152, + 2130772153, + 2130772154, + 2130772155, + 2130772156, + 2130772157, + 2130772158, + 2130772159, + 2130772160, + 2130772161, + 2130772162, + 2130772163, + 2130772164, + 2130772165, + 2130772166, + 2130772167, + 2130772168, + 2130772169, + 2130772170}; + + // aapt resource value: 23 + public const int AppCompatTheme_actionBarDivider = 23; + + // aapt resource value: 24 + public const int AppCompatTheme_actionBarItemBackground = 24; + + // aapt resource value: 17 + public const int AppCompatTheme_actionBarPopupTheme = 17; + + // aapt resource value: 22 + public const int AppCompatTheme_actionBarSize = 22; + + // aapt resource value: 19 + public const int AppCompatTheme_actionBarSplitStyle = 19; + + // aapt resource value: 18 + public const int AppCompatTheme_actionBarStyle = 18; + + // aapt resource value: 13 + public const int AppCompatTheme_actionBarTabBarStyle = 13; + + // aapt resource value: 12 + public const int AppCompatTheme_actionBarTabStyle = 12; + + // aapt resource value: 14 + public const int AppCompatTheme_actionBarTabTextStyle = 14; + + // aapt resource value: 20 + public const int AppCompatTheme_actionBarTheme = 20; + + // aapt resource value: 21 + public const int AppCompatTheme_actionBarWidgetTheme = 21; + + // aapt resource value: 50 + public const int AppCompatTheme_actionButtonStyle = 50; + + // aapt resource value: 46 + public const int AppCompatTheme_actionDropDownStyle = 46; + + // aapt resource value: 25 + public const int AppCompatTheme_actionMenuTextAppearance = 25; + + // aapt resource value: 26 + public const int AppCompatTheme_actionMenuTextColor = 26; + + // aapt resource value: 29 + public const int AppCompatTheme_actionModeBackground = 29; + + // aapt resource value: 28 + public const int AppCompatTheme_actionModeCloseButtonStyle = 28; + + // aapt resource value: 31 + public const int AppCompatTheme_actionModeCloseDrawable = 31; + + // aapt resource value: 33 + public const int AppCompatTheme_actionModeCopyDrawable = 33; + + // aapt resource value: 32 + public const int AppCompatTheme_actionModeCutDrawable = 32; + + // aapt resource value: 37 + public const int AppCompatTheme_actionModeFindDrawable = 37; + + // aapt resource value: 34 + public const int AppCompatTheme_actionModePasteDrawable = 34; + + // aapt resource value: 39 + public const int AppCompatTheme_actionModePopupWindowStyle = 39; + + // aapt resource value: 35 + public const int AppCompatTheme_actionModeSelectAllDrawable = 35; + + // aapt resource value: 36 + public const int AppCompatTheme_actionModeShareDrawable = 36; + + // aapt resource value: 30 + public const int AppCompatTheme_actionModeSplitBackground = 30; + + // aapt resource value: 27 + public const int AppCompatTheme_actionModeStyle = 27; + + // aapt resource value: 38 + public const int AppCompatTheme_actionModeWebSearchDrawable = 38; + + // aapt resource value: 15 + public const int AppCompatTheme_actionOverflowButtonStyle = 15; + + // aapt resource value: 16 + public const int AppCompatTheme_actionOverflowMenuStyle = 16; + + // aapt resource value: 58 + public const int AppCompatTheme_activityChooserViewStyle = 58; + + // aapt resource value: 95 + public const int AppCompatTheme_alertDialogButtonGroupStyle = 95; + + // aapt resource value: 96 + public const int AppCompatTheme_alertDialogCenterButtons = 96; + + // aapt resource value: 94 + public const int AppCompatTheme_alertDialogStyle = 94; + + // aapt resource value: 97 + public const int AppCompatTheme_alertDialogTheme = 97; + + // aapt resource value: 1 + public const int AppCompatTheme_android_windowAnimationStyle = 1; + + // aapt resource value: 0 + public const int AppCompatTheme_android_windowIsFloating = 0; + + // aapt resource value: 102 + public const int AppCompatTheme_autoCompleteTextViewStyle = 102; + + // aapt resource value: 55 + public const int AppCompatTheme_borderlessButtonStyle = 55; + + // aapt resource value: 52 + public const int AppCompatTheme_buttonBarButtonStyle = 52; + + // aapt resource value: 100 + public const int AppCompatTheme_buttonBarNegativeButtonStyle = 100; + + // aapt resource value: 101 + public const int AppCompatTheme_buttonBarNeutralButtonStyle = 101; + + // aapt resource value: 99 + public const int AppCompatTheme_buttonBarPositiveButtonStyle = 99; + + // aapt resource value: 51 + public const int AppCompatTheme_buttonBarStyle = 51; + + // aapt resource value: 103 + public const int AppCompatTheme_buttonStyle = 103; + + // aapt resource value: 104 + public const int AppCompatTheme_buttonStyleSmall = 104; + + // aapt resource value: 105 + public const int AppCompatTheme_checkboxStyle = 105; + + // aapt resource value: 106 + public const int AppCompatTheme_checkedTextViewStyle = 106; + + // aapt resource value: 86 + public const int AppCompatTheme_colorAccent = 86; + + // aapt resource value: 93 + public const int AppCompatTheme_colorBackgroundFloating = 93; + + // aapt resource value: 90 + public const int AppCompatTheme_colorButtonNormal = 90; + + // aapt resource value: 88 + public const int AppCompatTheme_colorControlActivated = 88; + + // aapt resource value: 89 + public const int AppCompatTheme_colorControlHighlight = 89; + + // aapt resource value: 87 + public const int AppCompatTheme_colorControlNormal = 87; + + // aapt resource value: 118 + public const int AppCompatTheme_colorError = 118; + + // aapt resource value: 84 + public const int AppCompatTheme_colorPrimary = 84; + + // aapt resource value: 85 + public const int AppCompatTheme_colorPrimaryDark = 85; + + // aapt resource value: 91 + public const int AppCompatTheme_colorSwitchThumbNormal = 91; + + // aapt resource value: 92 + public const int AppCompatTheme_controlBackground = 92; + + // aapt resource value: 44 + public const int AppCompatTheme_dialogPreferredPadding = 44; + + // aapt resource value: 43 + public const int AppCompatTheme_dialogTheme = 43; + + // aapt resource value: 57 + public const int AppCompatTheme_dividerHorizontal = 57; + + // aapt resource value: 56 + public const int AppCompatTheme_dividerVertical = 56; + + // aapt resource value: 75 + public const int AppCompatTheme_dropDownListViewStyle = 75; + + // aapt resource value: 47 + public const int AppCompatTheme_dropdownListPreferredItemHeight = 47; + + // aapt resource value: 64 + public const int AppCompatTheme_editTextBackground = 64; + + // aapt resource value: 63 + public const int AppCompatTheme_editTextColor = 63; + + // aapt resource value: 107 + public const int AppCompatTheme_editTextStyle = 107; + + // aapt resource value: 49 + public const int AppCompatTheme_homeAsUpIndicator = 49; + + // aapt resource value: 65 + public const int AppCompatTheme_imageButtonStyle = 65; + + // aapt resource value: 83 + public const int AppCompatTheme_listChoiceBackgroundIndicator = 83; + + // aapt resource value: 45 + public const int AppCompatTheme_listDividerAlertDialog = 45; + + // aapt resource value: 115 + public const int AppCompatTheme_listMenuViewStyle = 115; + + // aapt resource value: 76 + public const int AppCompatTheme_listPopupWindowStyle = 76; + + // aapt resource value: 70 + public const int AppCompatTheme_listPreferredItemHeight = 70; + + // aapt resource value: 72 + public const int AppCompatTheme_listPreferredItemHeightLarge = 72; + + // aapt resource value: 71 + public const int AppCompatTheme_listPreferredItemHeightSmall = 71; + + // aapt resource value: 73 + public const int AppCompatTheme_listPreferredItemPaddingLeft = 73; + + // aapt resource value: 74 + public const int AppCompatTheme_listPreferredItemPaddingRight = 74; + + // aapt resource value: 80 + public const int AppCompatTheme_panelBackground = 80; + + // aapt resource value: 82 + public const int AppCompatTheme_panelMenuListTheme = 82; + + // aapt resource value: 81 + public const int AppCompatTheme_panelMenuListWidth = 81; + + // aapt resource value: 61 + public const int AppCompatTheme_popupMenuStyle = 61; + + // aapt resource value: 62 + public const int AppCompatTheme_popupWindowStyle = 62; + + // aapt resource value: 108 + public const int AppCompatTheme_radioButtonStyle = 108; + + // aapt resource value: 109 + public const int AppCompatTheme_ratingBarStyle = 109; + + // aapt resource value: 110 + public const int AppCompatTheme_ratingBarStyleIndicator = 110; + + // aapt resource value: 111 + public const int AppCompatTheme_ratingBarStyleSmall = 111; + + // aapt resource value: 69 + public const int AppCompatTheme_searchViewStyle = 69; + + // aapt resource value: 112 + public const int AppCompatTheme_seekBarStyle = 112; + + // aapt resource value: 53 + public const int AppCompatTheme_selectableItemBackground = 53; + + // aapt resource value: 54 + public const int AppCompatTheme_selectableItemBackgroundBorderless = 54; + + // aapt resource value: 48 + public const int AppCompatTheme_spinnerDropDownItemStyle = 48; + + // aapt resource value: 113 + public const int AppCompatTheme_spinnerStyle = 113; + + // aapt resource value: 114 + public const int AppCompatTheme_switchStyle = 114; + + // aapt resource value: 40 + public const int AppCompatTheme_textAppearanceLargePopupMenu = 40; + + // aapt resource value: 77 + public const int AppCompatTheme_textAppearanceListItem = 77; + + // aapt resource value: 78 + public const int AppCompatTheme_textAppearanceListItemSecondary = 78; + + // aapt resource value: 79 + public const int AppCompatTheme_textAppearanceListItemSmall = 79; + + // aapt resource value: 42 + public const int AppCompatTheme_textAppearancePopupMenuHeader = 42; + + // aapt resource value: 67 + public const int AppCompatTheme_textAppearanceSearchResultSubtitle = 67; + + // aapt resource value: 66 + public const int AppCompatTheme_textAppearanceSearchResultTitle = 66; + + // aapt resource value: 41 + public const int AppCompatTheme_textAppearanceSmallPopupMenu = 41; + + // aapt resource value: 98 + public const int AppCompatTheme_textColorAlertDialogListItem = 98; + + // aapt resource value: 68 + public const int AppCompatTheme_textColorSearchUrl = 68; + + // aapt resource value: 60 + public const int AppCompatTheme_toolbarNavigationButtonStyle = 60; + + // aapt resource value: 59 + public const int AppCompatTheme_toolbarStyle = 59; + + // aapt resource value: 117 + public const int AppCompatTheme_tooltipForegroundColor = 117; + + // aapt resource value: 116 + public const int AppCompatTheme_tooltipFrameBackground = 116; + + // aapt resource value: 2 + public const int AppCompatTheme_windowActionBar = 2; + + // aapt resource value: 4 + public const int AppCompatTheme_windowActionBarOverlay = 4; + + // aapt resource value: 5 + public const int AppCompatTheme_windowActionModeOverlay = 5; + + // aapt resource value: 9 + public const int AppCompatTheme_windowFixedHeightMajor = 9; + + // aapt resource value: 7 + public const int AppCompatTheme_windowFixedHeightMinor = 7; + + // aapt resource value: 6 + public const int AppCompatTheme_windowFixedWidthMajor = 6; + + // aapt resource value: 8 + public const int AppCompatTheme_windowFixedWidthMinor = 8; + + // aapt resource value: 10 + public const int AppCompatTheme_windowMinWidthMajor = 10; + + // aapt resource value: 11 + public const int AppCompatTheme_windowMinWidthMinor = 11; + + // aapt resource value: 3 + public const int AppCompatTheme_windowNoTitle = 3; + + public static int[] BottomNavigationView = new int[] { + 2130772030, + 2130772291, + 2130772292, + 2130772293, + 2130772294}; + + // aapt resource value: 0 + public const int BottomNavigationView_elevation = 0; + + // aapt resource value: 4 + public const int BottomNavigationView_itemBackground = 4; + + // aapt resource value: 2 + public const int BottomNavigationView_itemIconTint = 2; + + // aapt resource value: 3 + public const int BottomNavigationView_itemTextColor = 3; + + // aapt resource value: 1 + public const int BottomNavigationView_menu = 1; + + public static int[] BottomSheetBehavior_Layout = new int[] { + 2130772253, + 2130772254, + 2130772255}; + + // aapt resource value: 1 + public const int BottomSheetBehavior_Layout_behavior_hideable = 1; + + // aapt resource value: 0 + public const int BottomSheetBehavior_Layout_behavior_peekHeight = 0; + + // aapt resource value: 2 + public const int BottomSheetBehavior_Layout_behavior_skipCollapsed = 2; + + public static int[] ButtonBarLayout = new int[] { + 2130772171}; + + // aapt resource value: 0 + public const int ButtonBarLayout_allowStacking = 0; + + public static int[] CardView = new int[] { + 16843071, + 16843072, + 2130771991, + 2130771992, + 2130771993, + 2130771994, + 2130771995, + 2130771996, + 2130771997, + 2130771998, + 2130771999, + 2130772000, + 2130772001}; + + // aapt resource value: 1 + public const int CardView_android_minHeight = 1; + + // aapt resource value: 0 + public const int CardView_android_minWidth = 0; + + // aapt resource value: 2 + public const int CardView_cardBackgroundColor = 2; + + // aapt resource value: 3 + public const int CardView_cardCornerRadius = 3; + + // aapt resource value: 4 + public const int CardView_cardElevation = 4; + + // aapt resource value: 5 + public const int CardView_cardMaxElevation = 5; + + // aapt resource value: 7 + public const int CardView_cardPreventCornerOverlap = 7; + + // aapt resource value: 6 + public const int CardView_cardUseCompatPadding = 6; + + // aapt resource value: 8 + public const int CardView_contentPadding = 8; + + // aapt resource value: 12 + public const int CardView_contentPaddingBottom = 12; + + // aapt resource value: 9 + public const int CardView_contentPaddingLeft = 9; + + // aapt resource value: 10 + public const int CardView_contentPaddingRight = 10; + + // aapt resource value: 11 + public const int CardView_contentPaddingTop = 11; + + public static int[] CollapsingToolbarLayout = new int[] { + 2130772005, + 2130772256, + 2130772257, + 2130772258, + 2130772259, + 2130772260, + 2130772261, + 2130772262, + 2130772263, + 2130772264, + 2130772265, + 2130772266, + 2130772267, + 2130772268, + 2130772269, + 2130772270}; + + // aapt resource value: 13 + public const int CollapsingToolbarLayout_collapsedTitleGravity = 13; + + // aapt resource value: 7 + public const int CollapsingToolbarLayout_collapsedTitleTextAppearance = 7; + + // aapt resource value: 8 + public const int CollapsingToolbarLayout_contentScrim = 8; + + // aapt resource value: 14 + public const int CollapsingToolbarLayout_expandedTitleGravity = 14; + + // aapt resource value: 1 + public const int CollapsingToolbarLayout_expandedTitleMargin = 1; + + // aapt resource value: 5 + public const int CollapsingToolbarLayout_expandedTitleMarginBottom = 5; + + // aapt resource value: 4 + public const int CollapsingToolbarLayout_expandedTitleMarginEnd = 4; + + // aapt resource value: 2 + public const int CollapsingToolbarLayout_expandedTitleMarginStart = 2; + + // aapt resource value: 3 + public const int CollapsingToolbarLayout_expandedTitleMarginTop = 3; + + // aapt resource value: 6 + public const int CollapsingToolbarLayout_expandedTitleTextAppearance = 6; + + // aapt resource value: 12 + public const int CollapsingToolbarLayout_scrimAnimationDuration = 12; + + // aapt resource value: 11 + public const int CollapsingToolbarLayout_scrimVisibleHeightTrigger = 11; + + // aapt resource value: 9 + public const int CollapsingToolbarLayout_statusBarScrim = 9; + + // aapt resource value: 0 + public const int CollapsingToolbarLayout_title = 0; + + // aapt resource value: 15 + public const int CollapsingToolbarLayout_titleEnabled = 15; + + // aapt resource value: 10 + public const int CollapsingToolbarLayout_toolbarId = 10; + + public static int[] CollapsingToolbarLayout_Layout = new int[] { + 2130772271, + 2130772272}; + + // aapt resource value: 0 + public const int CollapsingToolbarLayout_Layout_layout_collapseMode = 0; + + // aapt resource value: 1 + public const int CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier = 1; + + public static int[] ColorStateListItem = new int[] { + 16843173, + 16843551, + 2130772172}; + + // aapt resource value: 2 + public const int ColorStateListItem_alpha = 2; + + // aapt resource value: 1 + public const int ColorStateListItem_android_alpha = 1; + + // aapt resource value: 0 + public const int ColorStateListItem_android_color = 0; + + public static int[] CompoundButton = new int[] { + 16843015, + 2130772173, + 2130772174}; + + // aapt resource value: 0 + public const int CompoundButton_android_button = 0; + + // aapt resource value: 1 + public const int CompoundButton_buttonTint = 1; + + // aapt resource value: 2 + public const int CompoundButton_buttonTintMode = 2; + + public static int[] CoordinatorLayout = new int[] { + 2130772273, + 2130772274}; + + // aapt resource value: 0 + public const int CoordinatorLayout_keylines = 0; + + // aapt resource value: 1 + public const int CoordinatorLayout_statusBarBackground = 1; + + public static int[] CoordinatorLayout_Layout = new int[] { + 16842931, + 2130772275, + 2130772276, + 2130772277, + 2130772278, + 2130772279, + 2130772280}; + + // aapt resource value: 0 + public const int CoordinatorLayout_Layout_android_layout_gravity = 0; + + // aapt resource value: 2 + public const int CoordinatorLayout_Layout_layout_anchor = 2; + + // aapt resource value: 4 + public const int CoordinatorLayout_Layout_layout_anchorGravity = 4; + + // aapt resource value: 1 + public const int CoordinatorLayout_Layout_layout_behavior = 1; + + // aapt resource value: 6 + public const int CoordinatorLayout_Layout_layout_dodgeInsetEdges = 6; + + // aapt resource value: 5 + public const int CoordinatorLayout_Layout_layout_insetEdge = 5; + + // aapt resource value: 3 + public const int CoordinatorLayout_Layout_layout_keyline = 3; + + public static int[] DesignTheme = new int[] { + 2130772281, + 2130772282, + 2130772283}; + + // aapt resource value: 0 + public const int DesignTheme_bottomSheetDialogTheme = 0; + + // aapt resource value: 1 + public const int DesignTheme_bottomSheetStyle = 1; + + // aapt resource value: 2 + public const int DesignTheme_textColorError = 2; + + public static int[] DrawerArrowToggle = new int[] { + 2130772175, + 2130772176, + 2130772177, + 2130772178, + 2130772179, + 2130772180, + 2130772181, + 2130772182}; + + // aapt resource value: 4 + public const int DrawerArrowToggle_arrowHeadLength = 4; + + // aapt resource value: 5 + public const int DrawerArrowToggle_arrowShaftLength = 5; + + // aapt resource value: 6 + public const int DrawerArrowToggle_barLength = 6; + + // aapt resource value: 0 + public const int DrawerArrowToggle_color = 0; + + // aapt resource value: 2 + public const int DrawerArrowToggle_drawableSize = 2; + + // aapt resource value: 3 + public const int DrawerArrowToggle_gapBetweenBars = 3; + + // aapt resource value: 1 + public const int DrawerArrowToggle_spinBars = 1; + + // aapt resource value: 7 + public const int DrawerArrowToggle_thickness = 7; + + public static int[] FloatingActionButton = new int[] { + 2130772030, + 2130772246, + 2130772247, + 2130772284, + 2130772285, + 2130772286, + 2130772287, + 2130772288}; + + // aapt resource value: 1 + public const int FloatingActionButton_backgroundTint = 1; + + // aapt resource value: 2 + public const int FloatingActionButton_backgroundTintMode = 2; + + // aapt resource value: 6 + public const int FloatingActionButton_borderWidth = 6; + + // aapt resource value: 0 + public const int FloatingActionButton_elevation = 0; + + // aapt resource value: 4 + public const int FloatingActionButton_fabSize = 4; + + // aapt resource value: 5 + public const int FloatingActionButton_pressedTranslationZ = 5; + + // aapt resource value: 3 + public const int FloatingActionButton_rippleColor = 3; + + // aapt resource value: 7 + public const int FloatingActionButton_useCompatPadding = 7; + + public static int[] FloatingActionButton_Behavior_Layout = new int[] { + 2130772289}; + + // aapt resource value: 0 + public const int FloatingActionButton_Behavior_Layout_behavior_autoHide = 0; + + public static int[] FontFamily = new int[] { + 2130772330, + 2130772331, + 2130772332, + 2130772333, + 2130772334, + 2130772335}; + + // aapt resource value: 0 + public const int FontFamily_fontProviderAuthority = 0; + + // aapt resource value: 3 + public const int FontFamily_fontProviderCerts = 3; + + // aapt resource value: 4 + public const int FontFamily_fontProviderFetchStrategy = 4; + + // aapt resource value: 5 + public const int FontFamily_fontProviderFetchTimeout = 5; + + // aapt resource value: 1 + public const int FontFamily_fontProviderPackage = 1; + + // aapt resource value: 2 + public const int FontFamily_fontProviderQuery = 2; + + public static int[] FontFamilyFont = new int[] { + 16844082, + 16844083, + 16844095, + 2130772336, + 2130772337, + 2130772338}; + + // aapt resource value: 0 + public const int FontFamilyFont_android_font = 0; + + // aapt resource value: 2 + public const int FontFamilyFont_android_fontStyle = 2; + + // aapt resource value: 1 + public const int FontFamilyFont_android_fontWeight = 1; + + // aapt resource value: 4 + public const int FontFamilyFont_font = 4; + + // aapt resource value: 3 + public const int FontFamilyFont_fontStyle = 3; + + // aapt resource value: 5 + public const int FontFamilyFont_fontWeight = 5; + + public static int[] ForegroundLinearLayout = new int[] { + 16843017, + 16843264, + 2130772290}; + + // aapt resource value: 0 + public const int ForegroundLinearLayout_android_foreground = 0; + + // aapt resource value: 1 + public const int ForegroundLinearLayout_android_foregroundGravity = 1; + + // aapt resource value: 2 + public const int ForegroundLinearLayout_foregroundInsidePadding = 2; + + public static int[] LinearLayoutCompat = new int[] { + 16842927, + 16842948, + 16843046, + 16843047, + 16843048, + 2130772013, + 2130772183, + 2130772184, + 2130772185}; + + // aapt resource value: 2 + public const int LinearLayoutCompat_android_baselineAligned = 2; + + // aapt resource value: 3 + public const int LinearLayoutCompat_android_baselineAlignedChildIndex = 3; + + // aapt resource value: 0 + public const int LinearLayoutCompat_android_gravity = 0; + + // aapt resource value: 1 + public const int LinearLayoutCompat_android_orientation = 1; + + // aapt resource value: 4 + public const int LinearLayoutCompat_android_weightSum = 4; + + // aapt resource value: 5 + public const int LinearLayoutCompat_divider = 5; + + // aapt resource value: 8 + public const int LinearLayoutCompat_dividerPadding = 8; + + // aapt resource value: 6 + public const int LinearLayoutCompat_measureWithLargestChild = 6; + + // aapt resource value: 7 + public const int LinearLayoutCompat_showDividers = 7; + + public static int[] LinearLayoutCompat_Layout = new int[] { + 16842931, + 16842996, + 16842997, + 16843137}; + + // aapt resource value: 0 + public const int LinearLayoutCompat_Layout_android_layout_gravity = 0; + + // aapt resource value: 2 + public const int LinearLayoutCompat_Layout_android_layout_height = 2; + + // aapt resource value: 3 + public const int LinearLayoutCompat_Layout_android_layout_weight = 3; + + // aapt resource value: 1 + public const int LinearLayoutCompat_Layout_android_layout_width = 1; + + public static int[] ListPopupWindow = new int[] { + 16843436, + 16843437}; + + // aapt resource value: 0 + public const int ListPopupWindow_android_dropDownHorizontalOffset = 0; + + // aapt resource value: 1 + public const int ListPopupWindow_android_dropDownVerticalOffset = 1; + + public static int[] MediaRouteButton = new int[] { + 16843071, + 16843072, + 2130771989, + 2130771990}; + + // aapt resource value: 1 + public const int MediaRouteButton_android_minHeight = 1; + + // aapt resource value: 0 + public const int MediaRouteButton_android_minWidth = 0; + + // aapt resource value: 2 + public const int MediaRouteButton_externalRouteEnabledDrawable = 2; + + // aapt resource value: 3 + public const int MediaRouteButton_mediaRouteButtonTint = 3; + + public static int[] MenuGroup = new int[] { + 16842766, + 16842960, + 16843156, + 16843230, + 16843231, + 16843232}; + + // aapt resource value: 5 + public const int MenuGroup_android_checkableBehavior = 5; + + // aapt resource value: 0 + public const int MenuGroup_android_enabled = 0; + + // aapt resource value: 1 + public const int MenuGroup_android_id = 1; + + // aapt resource value: 3 + public const int MenuGroup_android_menuCategory = 3; + + // aapt resource value: 4 + public const int MenuGroup_android_orderInCategory = 4; + + // aapt resource value: 2 + public const int MenuGroup_android_visible = 2; + + public static int[] MenuItem = new int[] { + 16842754, + 16842766, + 16842960, + 16843014, + 16843156, + 16843230, + 16843231, + 16843233, + 16843234, + 16843235, + 16843236, + 16843237, + 16843375, + 2130772186, + 2130772187, + 2130772188, + 2130772189, + 2130772190, + 2130772191, + 2130772192, + 2130772193, + 2130772194, + 2130772195}; + + // aapt resource value: 16 + public const int MenuItem_actionLayout = 16; + + // aapt resource value: 18 + public const int MenuItem_actionProviderClass = 18; + + // aapt resource value: 17 + public const int MenuItem_actionViewClass = 17; + + // aapt resource value: 13 + public const int MenuItem_alphabeticModifiers = 13; + + // aapt resource value: 9 + public const int MenuItem_android_alphabeticShortcut = 9; + + // aapt resource value: 11 + public const int MenuItem_android_checkable = 11; + + // aapt resource value: 3 + public const int MenuItem_android_checked = 3; + + // aapt resource value: 1 + public const int MenuItem_android_enabled = 1; + + // aapt resource value: 0 + public const int MenuItem_android_icon = 0; + + // aapt resource value: 2 + public const int MenuItem_android_id = 2; + + // aapt resource value: 5 + public const int MenuItem_android_menuCategory = 5; + + // aapt resource value: 10 + public const int MenuItem_android_numericShortcut = 10; + + // aapt resource value: 12 + public const int MenuItem_android_onClick = 12; + + // aapt resource value: 6 + public const int MenuItem_android_orderInCategory = 6; + + // aapt resource value: 7 + public const int MenuItem_android_title = 7; + + // aapt resource value: 8 + public const int MenuItem_android_titleCondensed = 8; + + // aapt resource value: 4 + public const int MenuItem_android_visible = 4; + + // aapt resource value: 19 + public const int MenuItem_contentDescription = 19; + + // aapt resource value: 21 + public const int MenuItem_iconTint = 21; + + // aapt resource value: 22 + public const int MenuItem_iconTintMode = 22; + + // aapt resource value: 14 + public const int MenuItem_numericModifiers = 14; + + // aapt resource value: 15 + public const int MenuItem_showAsAction = 15; + + // aapt resource value: 20 + public const int MenuItem_tooltipText = 20; + + public static int[] MenuView = new int[] { + 16842926, + 16843052, + 16843053, + 16843054, + 16843055, + 16843056, + 16843057, + 2130772196, + 2130772197}; + + // aapt resource value: 4 + public const int MenuView_android_headerBackground = 4; + + // aapt resource value: 2 + public const int MenuView_android_horizontalDivider = 2; + + // aapt resource value: 5 + public const int MenuView_android_itemBackground = 5; + + // aapt resource value: 6 + public const int MenuView_android_itemIconDisabledAlpha = 6; + + // aapt resource value: 1 + public const int MenuView_android_itemTextAppearance = 1; + + // aapt resource value: 3 + public const int MenuView_android_verticalDivider = 3; + + // aapt resource value: 0 + public const int MenuView_android_windowAnimationStyle = 0; + + // aapt resource value: 7 + public const int MenuView_preserveIconSpacing = 7; + + // aapt resource value: 8 + public const int MenuView_subMenuArrow = 8; + + public static int[] NavigationView = new int[] { + 16842964, + 16842973, + 16843039, + 2130772030, + 2130772291, + 2130772292, + 2130772293, + 2130772294, + 2130772295, + 2130772296}; + + // aapt resource value: 0 + public const int NavigationView_android_background = 0; + + // aapt resource value: 1 + public const int NavigationView_android_fitsSystemWindows = 1; + + // aapt resource value: 2 + public const int NavigationView_android_maxWidth = 2; + + // aapt resource value: 3 + public const int NavigationView_elevation = 3; + + // aapt resource value: 9 + public const int NavigationView_headerLayout = 9; + + // aapt resource value: 7 + public const int NavigationView_itemBackground = 7; + + // aapt resource value: 5 + public const int NavigationView_itemIconTint = 5; + + // aapt resource value: 8 + public const int NavigationView_itemTextAppearance = 8; + + // aapt resource value: 6 + public const int NavigationView_itemTextColor = 6; + + // aapt resource value: 4 + public const int NavigationView_menu = 4; + + public static int[] PopupWindow = new int[] { + 16843126, + 16843465, + 2130772198}; + + // aapt resource value: 1 + public const int PopupWindow_android_popupAnimationStyle = 1; + + // aapt resource value: 0 + public const int PopupWindow_android_popupBackground = 0; + + // aapt resource value: 2 + public const int PopupWindow_overlapAnchor = 2; + + public static int[] PopupWindowBackgroundState = new int[] { + 2130772199}; + + // aapt resource value: 0 + public const int PopupWindowBackgroundState_state_above_anchor = 0; + + public static int[] RecycleListView = new int[] { + 2130772200, + 2130772201}; + + // aapt resource value: 0 + public const int RecycleListView_paddingBottomNoButtons = 0; + + // aapt resource value: 1 + public const int RecycleListView_paddingTopNoTitle = 1; + + public static int[] RecyclerView = new int[] { + 16842948, + 16842993, + 2130771968, + 2130771969, + 2130771970, + 2130771971, + 2130771972, + 2130771973, + 2130771974, + 2130771975, + 2130771976}; + + // aapt resource value: 1 + public const int RecyclerView_android_descendantFocusability = 1; + + // aapt resource value: 0 + public const int RecyclerView_android_orientation = 0; + + // aapt resource value: 6 + public const int RecyclerView_fastScrollEnabled = 6; + + // aapt resource value: 9 + public const int RecyclerView_fastScrollHorizontalThumbDrawable = 9; + + // aapt resource value: 10 + public const int RecyclerView_fastScrollHorizontalTrackDrawable = 10; + + // aapt resource value: 7 + public const int RecyclerView_fastScrollVerticalThumbDrawable = 7; + + // aapt resource value: 8 + public const int RecyclerView_fastScrollVerticalTrackDrawable = 8; + + // aapt resource value: 2 + public const int RecyclerView_layoutManager = 2; + + // aapt resource value: 4 + public const int RecyclerView_reverseLayout = 4; + + // aapt resource value: 3 + public const int RecyclerView_spanCount = 3; + + // aapt resource value: 5 + public const int RecyclerView_stackFromEnd = 5; + + public static int[] ScrimInsetsFrameLayout = new int[] { + 2130772297}; + + // aapt resource value: 0 + public const int ScrimInsetsFrameLayout_insetForeground = 0; + + public static int[] ScrollingViewBehavior_Layout = new int[] { + 2130772298}; + + // aapt resource value: 0 + public const int ScrollingViewBehavior_Layout_behavior_overlapTop = 0; + + public static int[] SearchView = new int[] { + 16842970, + 16843039, + 16843296, + 16843364, + 2130772202, + 2130772203, + 2130772204, + 2130772205, + 2130772206, + 2130772207, + 2130772208, + 2130772209, + 2130772210, + 2130772211, + 2130772212, + 2130772213, + 2130772214}; + + // aapt resource value: 0 + public const int SearchView_android_focusable = 0; + + // aapt resource value: 3 + public const int SearchView_android_imeOptions = 3; + + // aapt resource value: 2 + public const int SearchView_android_inputType = 2; + + // aapt resource value: 1 + public const int SearchView_android_maxWidth = 1; + + // aapt resource value: 8 + public const int SearchView_closeIcon = 8; + + // aapt resource value: 13 + public const int SearchView_commitIcon = 13; + + // aapt resource value: 7 + public const int SearchView_defaultQueryHint = 7; + + // aapt resource value: 9 + public const int SearchView_goIcon = 9; + + // aapt resource value: 5 + public const int SearchView_iconifiedByDefault = 5; + + // aapt resource value: 4 + public const int SearchView_layout = 4; + + // aapt resource value: 15 + public const int SearchView_queryBackground = 15; + + // aapt resource value: 6 + public const int SearchView_queryHint = 6; + + // aapt resource value: 11 + public const int SearchView_searchHintIcon = 11; + + // aapt resource value: 10 + public const int SearchView_searchIcon = 10; + + // aapt resource value: 16 + public const int SearchView_submitBackground = 16; + + // aapt resource value: 14 + public const int SearchView_suggestionRowLayout = 14; + + // aapt resource value: 12 + public const int SearchView_voiceIcon = 12; + + public static int[] SnackbarLayout = new int[] { + 16843039, + 2130772030, + 2130772299}; + + // aapt resource value: 0 + public const int SnackbarLayout_android_maxWidth = 0; + + // aapt resource value: 1 + public const int SnackbarLayout_elevation = 1; + + // aapt resource value: 2 + public const int SnackbarLayout_maxActionInlineWidth = 2; + + public static int[] Spinner = new int[] { + 16842930, + 16843126, + 16843131, + 16843362, + 2130772031}; + + // aapt resource value: 3 + public const int Spinner_android_dropDownWidth = 3; + + // aapt resource value: 0 + public const int Spinner_android_entries = 0; + + // aapt resource value: 1 + public const int Spinner_android_popupBackground = 1; + + // aapt resource value: 2 + public const int Spinner_android_prompt = 2; + + // aapt resource value: 4 + public const int Spinner_popupTheme = 4; + + public static int[] SwitchCompat = new int[] { + 16843044, + 16843045, + 16843074, + 2130772215, + 2130772216, + 2130772217, + 2130772218, + 2130772219, + 2130772220, + 2130772221, + 2130772222, + 2130772223, + 2130772224, + 2130772225}; + + // aapt resource value: 1 + public const int SwitchCompat_android_textOff = 1; + + // aapt resource value: 0 + public const int SwitchCompat_android_textOn = 0; + + // aapt resource value: 2 + public const int SwitchCompat_android_thumb = 2; + + // aapt resource value: 13 + public const int SwitchCompat_showText = 13; + + // aapt resource value: 12 + public const int SwitchCompat_splitTrack = 12; + + // aapt resource value: 10 + public const int SwitchCompat_switchMinWidth = 10; + + // aapt resource value: 11 + public const int SwitchCompat_switchPadding = 11; + + // aapt resource value: 9 + public const int SwitchCompat_switchTextAppearance = 9; + + // aapt resource value: 8 + public const int SwitchCompat_thumbTextPadding = 8; + + // aapt resource value: 3 + public const int SwitchCompat_thumbTint = 3; + + // aapt resource value: 4 + public const int SwitchCompat_thumbTintMode = 4; + + // aapt resource value: 5 + public const int SwitchCompat_track = 5; + + // aapt resource value: 6 + public const int SwitchCompat_trackTint = 6; + + // aapt resource value: 7 + public const int SwitchCompat_trackTintMode = 7; + + public static int[] TabItem = new int[] { + 16842754, + 16842994, + 16843087}; + + // aapt resource value: 0 + public const int TabItem_android_icon = 0; + + // aapt resource value: 1 + public const int TabItem_android_layout = 1; + + // aapt resource value: 2 + public const int TabItem_android_text = 2; + + public static int[] TabLayout = new int[] { + 2130772300, + 2130772301, + 2130772302, + 2130772303, + 2130772304, + 2130772305, + 2130772306, + 2130772307, + 2130772308, + 2130772309, + 2130772310, + 2130772311, + 2130772312, + 2130772313, + 2130772314, + 2130772315}; + + // aapt resource value: 3 + public const int TabLayout_tabBackground = 3; + + // aapt resource value: 2 + public const int TabLayout_tabContentStart = 2; + + // aapt resource value: 5 + public const int TabLayout_tabGravity = 5; + + // aapt resource value: 0 + public const int TabLayout_tabIndicatorColor = 0; + + // aapt resource value: 1 + public const int TabLayout_tabIndicatorHeight = 1; + + // aapt resource value: 7 + public const int TabLayout_tabMaxWidth = 7; + + // aapt resource value: 6 + public const int TabLayout_tabMinWidth = 6; + + // aapt resource value: 4 + public const int TabLayout_tabMode = 4; + + // aapt resource value: 15 + public const int TabLayout_tabPadding = 15; + + // aapt resource value: 14 + public const int TabLayout_tabPaddingBottom = 14; + + // aapt resource value: 13 + public const int TabLayout_tabPaddingEnd = 13; + + // aapt resource value: 11 + public const int TabLayout_tabPaddingStart = 11; + + // aapt resource value: 12 + public const int TabLayout_tabPaddingTop = 12; + + // aapt resource value: 10 + public const int TabLayout_tabSelectedTextColor = 10; + + // aapt resource value: 8 + public const int TabLayout_tabTextAppearance = 8; + + // aapt resource value: 9 + public const int TabLayout_tabTextColor = 9; + + public static int[] TextAppearance = new int[] { + 16842901, + 16842902, + 16842903, + 16842904, + 16842906, + 16842907, + 16843105, + 16843106, + 16843107, + 16843108, + 16843692, + 2130772047, + 2130772053}; + + // aapt resource value: 10 + public const int TextAppearance_android_fontFamily = 10; + + // aapt resource value: 6 + public const int TextAppearance_android_shadowColor = 6; + + // aapt resource value: 7 + public const int TextAppearance_android_shadowDx = 7; + + // aapt resource value: 8 + public const int TextAppearance_android_shadowDy = 8; + + // aapt resource value: 9 + public const int TextAppearance_android_shadowRadius = 9; + + // aapt resource value: 3 + public const int TextAppearance_android_textColor = 3; + + // aapt resource value: 4 + public const int TextAppearance_android_textColorHint = 4; + + // aapt resource value: 5 + public const int TextAppearance_android_textColorLink = 5; + + // aapt resource value: 0 + public const int TextAppearance_android_textSize = 0; + + // aapt resource value: 2 + public const int TextAppearance_android_textStyle = 2; + + // aapt resource value: 1 + public const int TextAppearance_android_typeface = 1; + + // aapt resource value: 12 + public const int TextAppearance_fontFamily = 12; + + // aapt resource value: 11 + public const int TextAppearance_textAllCaps = 11; + + public static int[] TextInputLayout = new int[] { + 16842906, + 16843088, + 2130772316, + 2130772317, + 2130772318, + 2130772319, + 2130772320, + 2130772321, + 2130772322, + 2130772323, + 2130772324, + 2130772325, + 2130772326, + 2130772327, + 2130772328, + 2130772329}; + + // aapt resource value: 1 + public const int TextInputLayout_android_hint = 1; + + // aapt resource value: 0 + public const int TextInputLayout_android_textColorHint = 0; + + // aapt resource value: 6 + public const int TextInputLayout_counterEnabled = 6; + + // aapt resource value: 7 + public const int TextInputLayout_counterMaxLength = 7; + + // aapt resource value: 9 + public const int TextInputLayout_counterOverflowTextAppearance = 9; + + // aapt resource value: 8 + public const int TextInputLayout_counterTextAppearance = 8; + + // aapt resource value: 4 + public const int TextInputLayout_errorEnabled = 4; + + // aapt resource value: 5 + public const int TextInputLayout_errorTextAppearance = 5; + + // aapt resource value: 10 + public const int TextInputLayout_hintAnimationEnabled = 10; + + // aapt resource value: 3 + public const int TextInputLayout_hintEnabled = 3; + + // aapt resource value: 2 + public const int TextInputLayout_hintTextAppearance = 2; + + // aapt resource value: 13 + public const int TextInputLayout_passwordToggleContentDescription = 13; + + // aapt resource value: 12 + public const int TextInputLayout_passwordToggleDrawable = 12; + + // aapt resource value: 11 + public const int TextInputLayout_passwordToggleEnabled = 11; + + // aapt resource value: 14 + public const int TextInputLayout_passwordToggleTint = 14; + + // aapt resource value: 15 + public const int TextInputLayout_passwordToggleTintMode = 15; + + public static int[] Toolbar = new int[] { + 16842927, + 16843072, + 2130772005, + 2130772008, + 2130772012, + 2130772024, + 2130772025, + 2130772026, + 2130772027, + 2130772028, + 2130772029, + 2130772031, + 2130772226, + 2130772227, + 2130772228, + 2130772229, + 2130772230, + 2130772231, + 2130772232, + 2130772233, + 2130772234, + 2130772235, + 2130772236, + 2130772237, + 2130772238, + 2130772239, + 2130772240, + 2130772241, + 2130772242}; + + // aapt resource value: 0 + public const int Toolbar_android_gravity = 0; + + // aapt resource value: 1 + public const int Toolbar_android_minHeight = 1; + + // aapt resource value: 21 + public const int Toolbar_buttonGravity = 21; + + // aapt resource value: 23 + public const int Toolbar_collapseContentDescription = 23; + + // aapt resource value: 22 + public const int Toolbar_collapseIcon = 22; + + // aapt resource value: 6 + public const int Toolbar_contentInsetEnd = 6; + + // aapt resource value: 10 + public const int Toolbar_contentInsetEndWithActions = 10; + + // aapt resource value: 7 + public const int Toolbar_contentInsetLeft = 7; + + // aapt resource value: 8 + public const int Toolbar_contentInsetRight = 8; + + // aapt resource value: 5 + public const int Toolbar_contentInsetStart = 5; + + // aapt resource value: 9 + public const int Toolbar_contentInsetStartWithNavigation = 9; + + // aapt resource value: 4 + public const int Toolbar_logo = 4; + + // aapt resource value: 26 + public const int Toolbar_logoDescription = 26; + + // aapt resource value: 20 + public const int Toolbar_maxButtonHeight = 20; + + // aapt resource value: 25 + public const int Toolbar_navigationContentDescription = 25; + + // aapt resource value: 24 + public const int Toolbar_navigationIcon = 24; + + // aapt resource value: 11 + public const int Toolbar_popupTheme = 11; + + // aapt resource value: 3 + public const int Toolbar_subtitle = 3; + + // aapt resource value: 13 + public const int Toolbar_subtitleTextAppearance = 13; + + // aapt resource value: 28 + public const int Toolbar_subtitleTextColor = 28; + + // aapt resource value: 2 + public const int Toolbar_title = 2; + + // aapt resource value: 14 + public const int Toolbar_titleMargin = 14; + + // aapt resource value: 18 + public const int Toolbar_titleMarginBottom = 18; + + // aapt resource value: 16 + public const int Toolbar_titleMarginEnd = 16; + + // aapt resource value: 15 + public const int Toolbar_titleMarginStart = 15; + + // aapt resource value: 17 + public const int Toolbar_titleMarginTop = 17; + + // aapt resource value: 19 + public const int Toolbar_titleMargins = 19; + + // aapt resource value: 12 + public const int Toolbar_titleTextAppearance = 12; + + // aapt resource value: 27 + public const int Toolbar_titleTextColor = 27; + + public static int[] View = new int[] { + 16842752, + 16842970, + 2130772243, + 2130772244, + 2130772245}; + + // aapt resource value: 1 + public const int View_android_focusable = 1; + + // aapt resource value: 0 + public const int View_android_theme = 0; + + // aapt resource value: 3 + public const int View_paddingEnd = 3; + + // aapt resource value: 2 + public const int View_paddingStart = 2; + + // aapt resource value: 4 + public const int View_theme = 4; + + public static int[] ViewBackgroundHelper = new int[] { + 16842964, + 2130772246, + 2130772247}; + + // aapt resource value: 0 + public const int ViewBackgroundHelper_android_background = 0; + + // aapt resource value: 1 + public const int ViewBackgroundHelper_backgroundTint = 1; + + // aapt resource value: 2 + public const int ViewBackgroundHelper_backgroundTintMode = 2; + + public static int[] ViewStubCompat = new int[] { + 16842960, + 16842994, + 16842995}; + + // aapt resource value: 0 + public const int ViewStubCompat_android_id = 0; + + // aapt resource value: 2 + public const int ViewStubCompat_android_inflatedId = 2; + + // aapt resource value: 1 + public const int ViewStubCompat_android_layout = 1; + + static Styleable() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Styleable() + { + } + } + } +} +#pragma warning restore 1591 diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/layout/Tabbar.axml b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/layout/Tabbar.axml new file mode 100644 index 0000000..ad1f87d --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/layout/Tabbar.axml @@ -0,0 +1,11 @@ + + diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/layout/Toolbar.axml b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/layout/Toolbar.axml new file mode 100644 index 0000000..aabd0a3 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/layout/Toolbar.axml @@ -0,0 +1,9 @@ + + diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-anydpi-v26/icon.xml b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-anydpi-v26/icon.xml new file mode 100644 index 0000000..88d1d0a --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-anydpi-v26/icon.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-anydpi-v26/icon_round.xml b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-anydpi-v26/icon_round.xml new file mode 100644 index 0000000..88d1d0a --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-anydpi-v26/icon_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-hdpi/icon.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-hdpi/icon.png new file mode 100644 index 0000000..4623ca2 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-hdpi/icon.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-hdpi/launcher_foreground.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-hdpi/launcher_foreground.png new file mode 100644 index 0000000..a89e5bb Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-hdpi/launcher_foreground.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-mdpi/icon.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-mdpi/icon.png new file mode 100644 index 0000000..9b1d25e Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-mdpi/icon.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-mdpi/launcher_foreground.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-mdpi/launcher_foreground.png new file mode 100644 index 0000000..431a8a0 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-mdpi/launcher_foreground.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xhdpi/icon.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xhdpi/icon.png new file mode 100644 index 0000000..844dfe5 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xhdpi/icon.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xhdpi/launcher_foreground.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xhdpi/launcher_foreground.png new file mode 100644 index 0000000..9e9e4f8 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xhdpi/launcher_foreground.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxhdpi/icon.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxhdpi/icon.png new file mode 100644 index 0000000..e20ec9a Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxhdpi/icon.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxhdpi/launcher_foreground.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxhdpi/launcher_foreground.png new file mode 100644 index 0000000..5f1e135 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxhdpi/launcher_foreground.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxxhdpi/icon.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxxhdpi/icon.png new file mode 100644 index 0000000..8a08bf7 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxxhdpi/icon.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png new file mode 100644 index 0000000..aca9f8d Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/values/colors.xml b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/values/colors.xml new file mode 100644 index 0000000..d9f6e0b --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/values/colors.xml @@ -0,0 +1,7 @@ + + + #FFFFFF + #3F51B5 + #303F9F + #FF4081 + diff --git a/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/values/styles.xml b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/values/styles.xml new file mode 100644 index 0000000..43b0a58 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.Android/Resources/values/styles.xml @@ -0,0 +1,30 @@ + + + + + + + + + diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/App.xaml b/BusinessMgrMobile/BusinessMgrMobile.UWP/App.xaml new file mode 100644 index 0000000..eafc9df --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.UWP/App.xaml @@ -0,0 +1,8 @@ + + + diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/App.xaml.cs b/BusinessMgrMobile/BusinessMgrMobile.UWP/App.xaml.cs new file mode 100644 index 0000000..dead033 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.UWP/App.xaml.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.Foundation; +using Windows.Foundation.Collections; +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; + +namespace BusinessMgrMobile.UWP +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + sealed partial class App : Application + { + /// + /// 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 += OnSuspending; + } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// + /// Details about the launch request and process. + protected override void OnLaunched(LaunchActivatedEventArgs e) + { + + + 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(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + Xamarin.Forms.Forms.Init(e); + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + //TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Navigate(typeof(MainPage), e.Arguments); + } + // Ensure the current window is active + Window.Current.Activate(); + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// + /// 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 void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + //TODO: Save application state and stop any background activity + deferral.Complete(); + } + } +} diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/LargeTile.scale-100.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/LargeTile.scale-100.png new file mode 100644 index 0000000..c3e93b0 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/LargeTile.scale-100.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/LargeTile.scale-200.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/LargeTile.scale-200.png new file mode 100644 index 0000000..2709372 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/LargeTile.scale-200.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/LargeTile.scale-400.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/LargeTile.scale-400.png new file mode 100644 index 0000000..ff03199 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/LargeTile.scale-400.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SmallTile.scale-100.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SmallTile.scale-100.png new file mode 100644 index 0000000..4110853 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SmallTile.scale-100.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SmallTile.scale-200.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SmallTile.scale-200.png new file mode 100644 index 0000000..c635095 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SmallTile.scale-200.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SmallTile.scale-400.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SmallTile.scale-400.png new file mode 100644 index 0000000..e28c052 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SmallTile.scale-400.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SplashScreen.scale-100.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SplashScreen.scale-100.png new file mode 100644 index 0000000..eacdf20 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SplashScreen.scale-100.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SplashScreen.scale-200.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000..caa5fc9 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SplashScreen.scale-200.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SplashScreen.scale-400.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SplashScreen.scale-400.png new file mode 100644 index 0000000..16d9784 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/SplashScreen.scale-400.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square150x150Logo.scale-100.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square150x150Logo.scale-100.png new file mode 100644 index 0000000..c1709f2 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square150x150Logo.scale-100.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square150x150Logo.scale-200.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000..48732ff Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square150x150Logo.scale-200.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square150x150Logo.scale-400.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square150x150Logo.scale-400.png new file mode 100644 index 0000000..95456be Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square150x150Logo.scale-400.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png new file mode 100644 index 0000000..0c6fd15 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png new file mode 100644 index 0000000..6635c80 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png new file mode 100644 index 0000000..ee58ea6 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.scale-100.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.scale-100.png new file mode 100644 index 0000000..06fc87c Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.scale-100.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.scale-200.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000..eaf2757 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.scale-200.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.scale-400.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.scale-400.png new file mode 100644 index 0000000..8a4ee54 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.scale-400.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.targetsize-16.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.targetsize-16.png new file mode 100644 index 0000000..0c6fd15 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.targetsize-16.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.targetsize-256.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.targetsize-256.png new file mode 100644 index 0000000..6635c80 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.targetsize-256.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.targetsize-48.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.targetsize-48.png new file mode 100644 index 0000000..ee58ea6 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Square44x44Logo.targetsize-48.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.backup.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.backup.png new file mode 100644 index 0000000..a197aaf Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.backup.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.scale-100.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.scale-100.png new file mode 100644 index 0000000..4fbbc70 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.scale-100.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.scale-200.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.scale-200.png new file mode 100644 index 0000000..29db501 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.scale-200.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.scale-400.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.scale-400.png new file mode 100644 index 0000000..383ad6e Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/StoreLogo.scale-400.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Wide310x150Logo.scale-100.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Wide310x150Logo.scale-100.png new file mode 100644 index 0000000..476954a Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Wide310x150Logo.scale-100.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Wide310x150Logo.scale-200.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000..eacdf20 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Wide310x150Logo.scale-200.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Wide310x150Logo.scale-400.png b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Wide310x150Logo.scale-400.png new file mode 100644 index 0000000..caa5fc9 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.UWP/Assets/Wide310x150Logo.scale-400.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/BusinessMgrMobile.UWP.csproj b/BusinessMgrMobile/BusinessMgrMobile.UWP/BusinessMgrMobile.UWP.csproj new file mode 100644 index 0000000..d158f04 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.UWP/BusinessMgrMobile.UWP.csproj @@ -0,0 +1,172 @@ + + + + + Debug + x86 + {11104E8D-C345-4E49-B07B-94321E2FA80C} + AppContainerExe + Properties + BusinessMgrMobile.UWP + BusinessMgrMobile.UWP + en-US + UAP + 10.0.17134.0 + 10.0.16299.0 + 14 + true + 512 + {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + BusinessMgrMobile.UWP_TemporaryKey.pfx + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM + false + prompt + true + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x64 + false + prompt + true + + + bin\x64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x64 + false + prompt + true + true + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x86 + false + prompt + true + true + + + + App.xaml + + + MainPage.xaml + + + + + + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + + + + + + {f9a541c6-bbea-4594-9b2e-effa982d9e2e} + SaBusMgrCore + + + {9fb2542a-6bf7-47b9-8f45-d551f6a318c8} + SacsCoreBase + + + {00cd1237-514f-4b70-bb14-65fc05e38222} + SacsCoreMob + + + {0de3a997-9167-48e7-bc74-66576324b7c5} + SaBusMgrMobCore + + + + + 14.0 + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/MainPage.xaml b/BusinessMgrMobile/BusinessMgrMobile.UWP/MainPage.xaml new file mode 100644 index 0000000..f7ae2a4 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.UWP/MainPage.xaml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/MainPage.xaml.cs b/BusinessMgrMobile/BusinessMgrMobile.UWP/MainPage.xaml.cs new file mode 100644 index 0000000..70a007f --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.UWP/MainPage.xaml.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Foundation; +using Windows.Foundation.Collections; +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; + +namespace BusinessMgrMobile.UWP +{ + public sealed partial class MainPage + { + public MainPage() + { + this.InitializeComponent(); + + LoadApplication(new BusinessMgrMobile.App()); + } + } +} diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Package.appxmanifest b/BusinessMgrMobile/BusinessMgrMobile.UWP/Package.appxmanifest new file mode 100644 index 0000000..f84e696 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.UWP/Package.appxmanifest @@ -0,0 +1,55 @@ + + + + + + + + + + BusinessMgrMobile.UWP + 38ebead7-97f8-46e8-a7f0-39613de21df4 + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.UWP/Properties/AssemblyInfo.cs b/BusinessMgrMobile/BusinessMgrMobile.UWP/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9ee39e4 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.UWP/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("BusinessMgrMobile.UWP")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("BusinessMgrMobile.UWP")] +[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/BusinessMgrMobile/BusinessMgrMobile.UWP/Properties/Default.rd.xml b/BusinessMgrMobile/BusinessMgrMobile.UWP/Properties/Default.rd.xml new file mode 100644 index 0000000..80a960c --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.UWP/Properties/Default.rd.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/AppDelegate.cs b/BusinessMgrMobile/BusinessMgrMobile.iOS/AppDelegate.cs new file mode 100644 index 0000000..df728e1 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.iOS/AppDelegate.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Foundation; +using UIKit; + +namespace BusinessMgrMobile.iOS +{ + // The UIApplicationDelegate for the application. This class is responsible for launching the + // User Interface of the application, as well as listening (and optionally responding) to + // application events from iOS. + [Register("AppDelegate")] + public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate + { + // + // This method is invoked when the application has loaded and is ready to run. In this + // method you should instantiate the window, load the UI into it and then make the window + // visible. + // + // You have 17 seconds to return from this method, or iOS will terminate your application. + // + public override bool FinishedLaunching(UIApplication app, NSDictionary options) + { + global::Xamarin.Forms.Forms.Init(); + LoadApplication(new App()); + + return base.FinishedLaunching(app, options); + } + } +} diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..98f4d03 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,117 @@ +{ + "images": [ + { + "scale": "2x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon40.png" + }, + { + "scale": "3x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon60.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon58.png" + }, + { + "scale": "3x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon87.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon80.png" + }, + { + "scale": "3x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "2x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "3x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon180.png" + }, + { + "scale": "1x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon20.png" + }, + { + "scale": "2x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "1x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon29.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon58.png" + }, + { + "scale": "1x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon80.png" + }, + { + "scale": "1x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon76.png" + }, + { + "scale": "2x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon152.png" + }, + { + "scale": "2x", + "size": "83.5x83.5", + "idiom": "ipad", + "filename": "Icon167.png" + }, + { + "scale": "1x", + "size": "1024x1024", + "idiom": "ios-marketing", + "filename": "Icon1024.png" + } + ], + "properties": {}, + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png new file mode 100644 index 0000000..9174c98 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png new file mode 100644 index 0000000..9c60a17 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png new file mode 100644 index 0000000..448d6ef Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png new file mode 100644 index 0000000..8524768 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png new file mode 100644 index 0000000..60a6470 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png new file mode 100644 index 0000000..45268a6 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png new file mode 100644 index 0000000..6a6c77a Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png new file mode 100644 index 0000000..cc7edcf Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png new file mode 100644 index 0000000..1ad04f0 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png new file mode 100644 index 0000000..2dd5262 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png new file mode 100644 index 0000000..b058cae Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png new file mode 100644 index 0000000..02e47a2 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png new file mode 100644 index 0000000..4954a4b Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/BusinessMgrMobile.iOS.csproj b/BusinessMgrMobile/BusinessMgrMobile.iOS/BusinessMgrMobile.iOS.csproj new file mode 100644 index 0000000..571455f --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.iOS/BusinessMgrMobile.iOS.csproj @@ -0,0 +1,174 @@ + + + + Debug + iPhoneSimulator + 8.0.30703 + 2.0 + {2B40FACD-C521-4AF6-9E5D-0FAFAA04B096} + {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {6143fdea-f3c2-4a09-aafa-6e230626515e} + Exe + BusinessMgrMobile.iOS + Resources + BusinessMgrMobile.iOS + NSUrlSessionHandler + + + + + true + full + false + bin\iPhoneSimulator\Debug + DEBUG + prompt + 4 + false + x86_64 + None + true + + + none + true + bin\iPhoneSimulator\Release + prompt + 4 + None + x86_64 + false + + + true + full + false + bin\iPhone\Debug + DEBUG + prompt + 4 + false + ARM64 + iPhone Developer + true + Entitlements.plist + + + none + true + bin\iPhone\Release + prompt + 4 + ARM64 + false + iPhone Developer + Entitlements.plist + + + none + True + bin\iPhone\Ad-Hoc + prompt + 4 + False + ARM64 + True + Automatic:AdHoc + iPhone Distribution + Entitlements.plist + + + none + True + bin\iPhone\AppStore + prompt + 4 + False + ARM64 + Automatic:AppStore + iPhone Distribution + Entitlements.plist + + + + + + + + + + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + + + + + + + + + + + + + {f9a541c6-bbea-4594-9b2e-effa982d9e2e} + SaBusMgrCore + + + {9fb2542a-6bf7-47b9-8f45-d551f6a318c8} + SacsCoreBase + + + {00CD1237-514F-4B70-BB14-65FC05E38222} + SacsCoreMob + + + {0de3a997-9167-48e7-bc74-66576324b7c5} + SaBusMgrMobCore + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Entitlements.plist b/BusinessMgrMobile/BusinessMgrMobile.iOS/Entitlements.plist new file mode 100644 index 0000000..e9a3005 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.iOS/Entitlements.plist @@ -0,0 +1,7 @@ + + + + + + + diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Info.plist b/BusinessMgrMobile/BusinessMgrMobile.iOS/Info.plist new file mode 100644 index 0000000..9fcb00f --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.iOS/Info.plist @@ -0,0 +1,38 @@ + + + + + UIDeviceFamily + + 1 + 2 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + MinimumOSVersion + 8.0 + CFBundleDisplayName + BusinessMgrMobile + CFBundleIdentifier + com.companyname.BusinessMgrMobile + CFBundleVersion + 1.0 + UILaunchStoryboardName + LaunchScreen + CFBundleName + BusinessMgrMobile + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Main.cs b/BusinessMgrMobile/BusinessMgrMobile.iOS/Main.cs new file mode 100644 index 0000000..c3ce51a --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.iOS/Main.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Foundation; +using UIKit; + +namespace BusinessMgrMobile.iOS +{ + public class Application + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, "AppDelegate"); + } + } +} diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Properties/AssemblyInfo.cs b/BusinessMgrMobile/BusinessMgrMobile.iOS/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..811b102 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.iOS/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +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("BusinessMgrMobile.iOS")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("BusinessMgrMobile.iOS")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")] + +// 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")] diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default-568h@2x.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default-568h@2x.png new file mode 100644 index 0000000..26c6461 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default-568h@2x.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default-Portrait.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default-Portrait.png new file mode 100644 index 0000000..5d0d1ab Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default-Portrait.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default-Portrait@2x.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default-Portrait@2x.png new file mode 100644 index 0000000..0ee2688 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default-Portrait@2x.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default.png new file mode 100644 index 0000000..b74643c Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default@2x.png b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default@2x.png new file mode 100644 index 0000000..dbd6bd3 Binary files /dev/null and b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/Default@2x.png differ diff --git a/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/LaunchScreen.storyboard b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/LaunchScreen.storyboard new file mode 100644 index 0000000..a639c2f --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile.iOS/Resources/LaunchScreen.storyboard @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BusinessMgrMobile/BusinessMgrMobile/BusinessMgrMobile.projitems b/BusinessMgrMobile/BusinessMgrMobile/BusinessMgrMobile.projitems new file mode 100644 index 0000000..8e1cfb2 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/BusinessMgrMobile.projitems @@ -0,0 +1,47 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + true + {27BF376E-0A5E-4C9A-A8E3-23944AB08F1D} + + + Sarand.BusinessMgr + + + + + + + App.xaml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile/BusinessMgrMobile.shproj b/BusinessMgrMobile/BusinessMgrMobile/BusinessMgrMobile.shproj new file mode 100644 index 0000000..7592804 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/BusinessMgrMobile.shproj @@ -0,0 +1,11 @@ + + + + {27BF376E-0A5E-4C9A-A8E3-23944AB08F1D} + + + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/App.xaml b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/App.xaml new file mode 100644 index 0000000..31e1821 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/App.xaml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/App.xaml.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/App.xaml.cs new file mode 100644 index 0000000..b19c1cc --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/App.xaml.cs @@ -0,0 +1,199 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.CodeTypes; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Xamarin.Forms; +using Xamarin.Forms.Xaml; +using static Sarand.BusinessMgr.Mobile.Core.App.SbmSessionProfile_Mobile; + +[assembly: XamlCompilation(XamlCompilationOptions.Compile)] +namespace Sarand.BusinessMgr.Mobile.App +{ + //======================================================================= + public partial class App : SbmMobileApplication + { + //------------------------------------------------------------------- + // Data members. + private static App app; + private SbmSessionProfile_Mobile_App sessionProfile; + private SbmCodeTypeConsole_Mobile codeTypeConsole; + private readonly PropertySet properties; + + //------------------------------------------------------------------- + // Construction. + public App (SbmMobile.Platform mobilePlatform) + { + // Platform. + MobilePlatform = mobilePlatform; + + InitializeComponent(); + + // Globals. + app = this; + SbmGlobals_Mobile.Application = this; + SbmGlobals.Application = new SbmApplication_Mobile(properties, SessionContext); + List startupErrors = new List(); + try + { + // Session profile. + sessionProfile = new SbmSessionProfile_Mobile_App(null); + sessionProfile.PropertyModified += SessionProfile_PropertyModified; + SbmGlobals_Mobile.SessionProfile = sessionProfile; + RestorePersistentSessionProperties(); + // Code Type Console. + codeTypeConsole = new SbmCodeTypeConsole_Mobile(); + codeTypeConsole.RefreshCodeTypes(); + } + catch (Exception exc) + { + String msg = exc.GetType().Name + ": " + exc.Message; + Logger.Error(msg + ExceptionUtil.GetStackEntries(exc, 8).Concat("", "\n\t")); + startupErrors.Add(msg); + } + + try + { + // Configure main page. + SbmMainPage = new SbmMainPage(); + MainPage = new NavigationPage(SbmMainPage); + if (startupErrors.Count > 0) + MainPage.DisplayAlert("Sarand BusinessMgr Mobile", "Startup errors:\n" + startupErrors.Concat("", "\n"), "OK"); + } + catch (Exception exc) + { + String msg = exc.GetType().Name + ": " + exc.Message; + Logger.Error(msg + ExceptionUtil.GetStackEntries(exc, 8).Concat("", "\n\t")); + } + } + + //------------------------------------------------------------------- + // Properties. + public static App GetInstance () { return app; } + public SbmMainPage SbmMainPage { get; private set; } + public SbmSessionContext_Mobile SessionContext { get; private set; } + + //------------------------------------------------------------------- + // W e b S e r v i c e + //------------------------------------------------------------------- + public override async Task IsWebServiceAlive (SbmInstanceDefinition instanceDefinition) + { + SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + return await webServiceClient.RequestIsAlive(instanceDefinition); + } + + //------------------------------------------------------------------- + // I n s t a n c e D e f i n i t i o n s + //------------------------------------------------------------------- + public class SbmInstanceDefinition_App : SbmInstanceDefinition + { + public SbmInstanceDefinition_App (String caption, String url) : base(caption, url) { } + } + public override void SetInstance (SbmInstanceDefinition instanceDefinition) + { + sessionProfile.SetInstanceDefinition(instanceDefinition); + + // Store Instance Definition properties. + Properties[PropertyName_Context_Instance_Url] = sessionProfile.InstanceDefinition.URL; + SavePropertiesAsync(); + + // Refresh instance dependent data. + if (codeTypeConsole != null) codeTypeConsole.RefreshCodeTypes(); + } + + //------------------------------------------------------------------- + // S e s s i o n P r o f i l e E v e n t s + //------------------------------------------------------------------- + private void SessionProfile_PropertyModified (object sender, PropertyModifiedEventArgs e) + { + // Save significant session properties to persistant storage. + SbmSessionProfile_Mobile sessionProfile = SbmGlobals_Mobile.SessionProfile; + if (sessionProfile == null) return; + switch (e.Property) + { + case ModifiedProperty.EmailAddress: + Properties[PropertyName_Context_DisplayName] = sessionProfile.DisplayName; + SavePropertiesAsync(); + break; + } + } + + //------------------------------------------------------------------- + // C o n s o l e s + //------------------------------------------------------------------- + public override SbmCodeTypeConsole_Mobile CodeTypeConsole { get { return codeTypeConsole; } } + + //------------------------------------------------------------------- + // P a g e N a v i g a t i o n + //------------------------------------------------------------------- + private bool currentPageModal = false; + public bool IsModalPage () + { + return currentPageModal; + } + public void SetCurrentPageModal (bool currentPageModal) + { + this.currentPageModal = currentPageModal; + } + + //------------------------------------------------------------------- + // A p p l i c a t i o n E v e n t s + //------------------------------------------------------------------- + protected override void OnStart () + { + // Handle when your app starts + } + + protected override void OnSleep () + { + // Handle when your app sleeps + } + + protected override void OnResume () + { + // Handle when your app resumes + } + + //------------------------------------------------------------------- + // U n h a n d l e d E x c e p t i o n s + //------------------------------------------------------------------- + public void OnUnhandledException (object sender, object exceptionObject, bool isTerminating) + { + String exceptionMessage = "[No message]"; + Exception exc = exceptionObject as Exception; + while (exc != null && exc.InnerException != null) + exc = exc.InnerException; + if (exc != null) + exceptionMessage = exc.Message; + if (isTerminating) + exceptionMessage += ". Terminating."; + Logger.Error("UnhandledException " + exc.GetType().Name + ": " + exceptionMessage + ExceptionUtil.GetStackEntries(exc, 8).Concat("", "\n\t")); + } + public void UnobservedTaskException (object sender, UnobservedTaskExceptionEventArgs e) + { + Exception exc = e.Exception; + while (exc.InnerException != null) + exc = exc.InnerException; + String exceptionMessage = exc.Message; + if (e.Observed) + exceptionMessage += ". Observed."; + Logger.Error("UnobservedTaskException " + exc.GetType().Name + ": " + exceptionMessage + ExceptionUtil.GetStackEntries(exc, 8).Concat("", "\n\t")); + } + public void UnhandledExceptionRaiser (object sender, Exception exc, bool handled) + { + while (exc.InnerException != null) + exc = exc.InnerException; + String exceptionMessage = exc.Message; + if (handled) + exceptionMessage += ". Handled."; + Logger.Error("UnhandledException " + exc.GetType().Name + ": " + exceptionMessage + ExceptionUtil.GetStackEntries(exc, 8).Concat("", "\n\t")); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Accounts_Customer.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Accounts_Customer.cs new file mode 100644 index 0000000..277d404 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Accounts_Customer.cs @@ -0,0 +1,38 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Forms.Pages.Templates; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.App.Commands +{ + //======================================================================= + public class SbmCommand_Accounts_Customer : SbmCommand_Mobile + { + //------------------------------------------------------------------- + // Construction. + public SbmCommand_Accounts_Customer () : base(null) + { + } + + //------------------------------------------------------------------- + public override bool CanExecute (object commandParam) + { + //if (!SecurityProfile.Accounts.CanView) return false; + if (!SbmAppConsole.IsViewApplicable(UserContext, Sbm.View.Contacts_Associations_Customer)) return false; + return true; + } + + //------------------------------------------------------------------- + /// Execute command. + public override void Execute (object commandParam) + { + if (!CanExecute(commandParam)) return; + App.GetInstance().SbmMainPage.SwitchView(SbmMobile.MainView.Customer, Page_Template_Main.PageBodyMode.SelfScrolling); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Accounts_Supplier.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Accounts_Supplier.cs new file mode 100644 index 0000000..cb3ceb7 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Accounts_Supplier.cs @@ -0,0 +1,38 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Forms.Pages.Templates; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.App.Commands +{ + //======================================================================= + public class SbmCommand_Accounts_Supplier : SbmCommand_Mobile + { + //------------------------------------------------------------------- + // Construction. + public SbmCommand_Accounts_Supplier () : base(null) + { + } + + //------------------------------------------------------------------- + public override bool CanExecute (object commandParam) + { + //if (!SecurityProfile.Accounts.CanView) return false; + if (!SbmAppConsole.IsViewApplicable(UserContext, Sbm.View.Contacts_Associations_Supplier)) return false; + return true; + } + + //------------------------------------------------------------------- + /// Execute command. + public override void Execute (object commandParam) + { + if (!CanExecute(commandParam)) return; + App.GetInstance().SbmMainPage.SwitchView(SbmMobile.MainView.Supplier, Page_Template_Main.PageBodyMode.SelfScrolling); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Home.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Home.cs new file mode 100644 index 0000000..5562e65 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Home.cs @@ -0,0 +1,36 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Forms.Pages.Templates; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.App.Commands +{ + //======================================================================= + public class SbmCommand_Home : SbmCommand_Mobile + { + //------------------------------------------------------------------- + // Construction. + public SbmCommand_Home () : base(null) + { + } + + //------------------------------------------------------------------- + public override bool CanExecute (object commandParam) + { + if (!UserContext.ValidUser) return false; + return true; + } + + //------------------------------------------------------------------- + /// Execute command. + public override void Execute (object commandParam) + { + if (!CanExecute(commandParam)) return; + App.GetInstance().SbmMainPage.SwitchView(SbmMobile.MainView.Home, Page_Template_Main.PageBodyMode.Scrollable); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Logout.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Logout.cs new file mode 100644 index 0000000..2cfd707 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/Commands/SbmCommand_Logout.cs @@ -0,0 +1,37 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Forms.Pages.Templates; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.App.Commands +{ + //======================================================================= + public class SbmCommand_Logout : SbmCommand_Mobile + { + //------------------------------------------------------------------- + // Construction. + public SbmCommand_Logout () : base(null) + { + } + + //------------------------------------------------------------------- + public override bool CanExecute (object commandParam) + { + if (!UserContext.ValidUser) return false; + return true; + } + + //------------------------------------------------------------------- + /// Execute command. + public override void Execute (object commandParam) + { + if (!CanExecute(commandParam)) return; + SbmGlobals_Mobile.SessionProfile.LogoutUser(); + App.GetInstance().SbmMainPage.SwitchView(SbmMobile.MainView.Login, Page_Template_Main.PageBodyMode.Scrollable); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmApplication_Mobile.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmApplication_Mobile.cs new file mode 100644 index 0000000..7a66166 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmApplication_Mobile.cs @@ -0,0 +1,161 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.Core.Base; +using Sarand.Core.CodeTypes; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Diary; +using Sarand.Core.Interfaces; +using Sarand.Core.IO; +using Sarand.Core.ItemData; +using Sarand.Core.ItemDocs; +using Sarand.Core.ItemOptions; +using Sarand.Core.ReferenceData; +using Sarand.Core.Security; +using Sarand.Core.UpdateLog; +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.App +{ + //======================================================================= + class SbmApplication_Mobile : SbmApplication + { + //------------------------------------------------------------------- + // Data members. + private readonly SbmSessionContext_Mobile sessionContext; + + //------------------------------------------------------------------- + // Construction. + public SbmApplication_Mobile (PropertySet properties, SbmSessionContext_Mobile sessionContext) : + base(properties) + { + this.sessionContext = sessionContext; + } + + + protected override void Dispose (bool disposing) + { + if (disposing) + { + } + base.Dispose(disposing); + } + + //------------------------------------------------------------------- + // D a t a b a s e + //------------------------------------------------------------------- + public override ISacsDatabase GetDatabase (SbmSessionContext sessionContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Utilities. + public override bool TableExists (SbmSessionContext sessionContext, SbmDbDfn.TableIdx tableIdx) + { + throw new NotImplementedException(); + } + + public override bool ColumnExists (SbmSessionContext sessionContext, SbmDbDfn.ColumnIdx columnIdx) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // C o n f i g u r a t i o n C o n s o l e + //------------------------------------------------------------------- + private SbmConfigConsole configConsole = null; + public override SbmConfigConsole GetConfigConsole (SbmSessionContext sessionContext) + { + String fn = GetType().Name + ".GetConfigConsole"; + // Initialise Configuration console. + configConsole = SbmConfigConsole.CreateConsole(sessionContext); + return configConsole; + } + + //------------------------------------------------------------------- + // Load config library. + + //------------------------------------------------------------------- + // M a n a g e r s + //------------------------------------------------------------------- + public override SbmAccountMgr CreateAccountMgr (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + public override SbmTransactionMgr CreateTransactionMgr (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // D i a r y C o n s o l e + //------------------------------------------------------------------- + public override SaDiaryConsole GetDiaryConsole (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Security console. + public override SaSecurityConsole GetSecurityConsole (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Code Type console. + public override SaCodeTypeConsole GetCodeTypeConsole (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Reference Data console. + public override SaReferenceDataConsole GetReferenceDataConsole (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Item Doc console. + public override SaItemDocConsole GetItemDocConsole (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Item Data console. + public override SaItemDataConsole GetItemDataConsole (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Item Option console. + public override SaItemOptionConsole GetItemOptionConsole (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Interface console. + public override SaInterfaceConsole GetInterfaceConsole (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Log console. + public override SaUpdateLogConsole GetUpdateLogConsole (SbmUserContext userContext) + { + throw new NotImplementedException(); + } + + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmMainPage.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmMainPage.cs new file mode 100644 index 0000000..5ea41bf --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmMainPage.cs @@ -0,0 +1,176 @@ +using Sarand.Core.Base; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Panels; +using Sarand.BusinessMgr.Mobile.Forms.Pages.Templates; +using Sarand.BusinessMgr.Mobile.Forms.Views; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; +using Sarand.BusinessMgr.Mobile.Forms.Panels.Main; +using Sarand.BusinessMgr.Mobile.Forms.Panels.Main.Accounts; + +namespace Sarand.BusinessMgr.Mobile.App +{ + //======================================================================= + public class SbmMainPage : Page_Template_Main + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmSessionProfile_Mobile sessionProfile = SbmGlobals_Mobile.SessionProfile; + private SbmMenu menu = new SbmMenu(); + + //------------------------------------------------------------------- + // Construction. + public SbmMainPage () : base() + { + Title = "Sarand BusinessMgr"; + NavigationPage.SetHasNavigationBar(this, false); + InitialiseComponents(); + } + + //------------------------------------------------------------------- + // Properties. + protected override SbmMenuView MenuView { get { return menu; } } + public SbmMobile.MainView MainView { get; private set; } = SbmMobile.MainView.Unknown; + private SbmMainPanel MainPanel { get; set; } + + //------------------------------------------------------------------- + // I n i t i a l i s e + //------------------------------------------------------------------- + private void InitialiseComponents () + { + // Menu. + menu.MainPage = this; + + // Initial view. + SwitchView(SbmMobile.MainView.Login, PageBodyMode.Scrollable); + } + + //------------------------------------------------------------------- + // S w i t c h V i e w + //------------------------------------------------------------------- + public void SwitchView (SbmMobile.MainView view, PageBodyMode bodyMode) + { + String fn = GetType().Name + ".SwitchView"; + // Check for valid session. + if (view != SbmMobile.MainView.Login && !sessionProfile.UserContext.ValidUser) + view = SbmMobile.MainView.Login; + // Configure requested view. + SbmMainPanel mainPanel = null; + try + { + switch (view) + { + //------------------------------------------------------- + // Application. + case SbmMobile.MainView.Login: + { + SbmMainPanel_Login.Config panelConfig = new SbmMainPanel_Login.Config(); + SbmMainPanel_Login loginPanel = new SbmMainPanel_Login(panelConfig); + loginPanel.UserLogin += LoginPanel_UserLogin; + mainPanel = loginPanel; + break; + } + case SbmMobile.MainView.Home: + { + SbmMainPanel_Home.Config panelConfig = new SbmMainPanel_Home.Config(); + SbmMainPanel_Home loginPanel = new SbmMainPanel_Home(panelConfig); + mainPanel = loginPanel; + break; + } + //------------------------------------------------------- + // Accounts. + case SbmMobile.MainView.Customer: + { + SbmMainPanel_Association_Customer.Config panelConfig = new SbmMainPanel_Association_Customer.Config(); + SbmMainPanel_Association_Customer loginPanel = new SbmMainPanel_Association_Customer(panelConfig); + mainPanel = loginPanel; + break; + } + case SbmMobile.MainView.Supplier: + { + SbmMainPanel_Association_Supplier.Config panelConfig = new SbmMainPanel_Association_Supplier.Config(); + SbmMainPanel_Association_Supplier loginPanel = new SbmMainPanel_Association_Supplier(panelConfig); + mainPanel = loginPanel; + break; + } + //------------------------------------------------------- + } + } + catch (Exception exc) { Logger.Warn(fn + " " + exc.GetLogMessage(6)); } + if (mainPanel != null) + { + // Clear previous view. + if (MainPanel != null) + { + MainPanel = null; + } + // Display new view. + MainView = view; + MainPanel = mainPanel; + SwitchPageBody(MainPanel, bodyMode); + } + } + + //------------------------------------------------------------------- + // U s e r L o g i n + //------------------------------------------------------------------- + private void LoginPanel_UserLogin (object sender, SbmMainPanel_Login.UserLoginEventArgs e) + { + // Store defaults for next session. + SbmGlobals_Mobile.Application.DefaultDisplayName = e.DisplayName; + SbmGlobals_Mobile.Application.StorePersistentSessionProperties(); + // Switch to 'Home' view. + SwitchView(SbmMobile.MainView.Home, PageBodyMode.Scrollable); + } + + //------------------------------------------------------------------- + // W e b S e r v i c e + //------------------------------------------------------------------- + public async Task IsWebServiceActive () + { + // Test connection to Web Service. + if (!await App.GetInstance().IsWebServiceAlive(SbmGlobals_Mobile.SessionProfile.InstanceDefinition)) + { + await DisplayAlert("Unable to communicate with server at the moment."); + return false; + } + + // Verify Code Console population. + if (!SbmGlobals_Mobile.Application.CodeTypeConsole.Populated) + { + await DisplayAlert("Code types are not populated.\n\nCheck and resave configuration to refresh."); + return false; + } + + return true; + } + + //------------------------------------------------------------------- + // P a g e E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnAppearing () + { + base.OnAppearing(); + } + protected override void OnDisappearing () + { + base.OnDisappearing(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmMenu.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmMenu.cs new file mode 100644 index 0000000..66e91ac --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmMenu.cs @@ -0,0 +1,102 @@ +using Sarand.Core.Base; +using Sarand.BusinessMgr.Mobile.App.Commands; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Forms.Views; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Essentials; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Forms.Pages.Config; + +namespace Sarand.BusinessMgr.Mobile.App +{ + //======================================================================= + public class SbmMenu : SbmMenuView + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private readonly List menuOptions = new List(); + + //------------------------------------------------------------------- + // Construction. + public SbmMenu () + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmMainPage MainPage { get; set; } + public INavigation MainViewNavigation { get { return MainPage.Navigation; } } + + //------------------------------------------------------------------- + // M e n u O p t i o n s + //------------------------------------------------------------------- + public override List MenuOptions + { + get + { + ClearMenuOptions(); + if (menuOptions.Count < 1) + { + // Home. + SacsCommand homeCommand = new SbmCommand_Home(); + if (homeCommand.CanExecute(null)) + menuOptions.Add(new OptionData() { Caption = "Home", Command = homeCommand }); + // Accounts. + List commodityCommands = new List(); + commodityCommands.Add(new OptionData() { Caption = "Customer", Command = new SbmCommand_Accounts_Customer() }); + commodityCommands.Add(new OptionData() { Caption = "Supplier", Command = new SbmCommand_Accounts_Supplier() }); + if (commodityCommands.Exists(item => item.Command.CanExecute(null))) + { + menuOptions.Add(new OptionData() { Caption = "Accounts", Heading = true }); + menuOptions.AddRange(commodityCommands); + } + // Config. + menuOptions.Add(new OptionData() { Caption = "Config", Heading = true }); + //menuOptions.Add(new OptionData() { Caption = "Options", Command = new SbmCommand_Mobile(OnConfig_OptionsClicked) }); + menuOptions.Add(new OptionData() { Caption = "System", Command = new SbmCommand_Mobile(OnConfig_SystemClicked) }); + menuOptions.Add(new OptionData() { Caption = "Update", Command = new SbmCommand_Mobile(OnConfig_UpdateClicked) }); + // Logout. + SacsCommand logoutCommand = new SbmCommand_Logout(); + if (logoutCommand.CanExecute(null)) + menuOptions.Add(new OptionData() { Caption = "Logout", Command = logoutCommand }); + } + return menuOptions; + } + } + public void ClearMenuOptions () + { + menuOptions.Clear(); + } + + //------------------------------------------------------------------- + // C o n f i g + //------------------------------------------------------------------- + private async void OnConfig_OptionsClicked (object commandParam) + { + InvokeMenuOptionClicked(); + SbmPage_Config_Options.Config pageConfig = new SbmPage_Config_Options.Config(); + await MainViewNavigation.PushModalAsync(new SbmPage_Config_Options(pageConfig), false); + } + //------------------------------------------------------------------- + private async void OnConfig_SystemClicked (object commandParam) + { + InvokeMenuOptionClicked(); + SbmPage_Config_System.Config pageConfig = new SbmPage_Config_System.Config(); + await MainViewNavigation.PushModalAsync(new SbmPage_Config_System(pageConfig), false); + } + //------------------------------------------------------------------- + private async void OnConfig_UpdateClicked (object commandParam) + { + InvokeMenuOptionClicked(); + await Browser.OpenAsync("http://www.sarand.com/Android/BusinessMgrMobile.apk", BrowserLaunchMode.SystemPreferred); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmSessionProfile_Mobile_App.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmSessionProfile_Mobile_App.cs new file mode 100644 index 0000000..0debc37 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/App/SbmSessionProfile_Mobile_App.cs @@ -0,0 +1,30 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Mobile.Core.App; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.App +{ + //======================================================================= + public class SbmSessionProfile_Mobile_App : SbmSessionProfile_Mobile + { + //------------------------------------------------------------------- + // Construction. + public SbmSessionProfile_Mobile_App (SbmSessionContext sessionContext) : + base(sessionContext) + { + } + + //------------------------------------------------------------------- + // S i t e + //------------------------------------------------------------------- + public void SetInstanceDefinition (SbmInstanceDefinition instanceDefinition) + { + InstanceDefinition = instanceDefinition; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Components/Accounts/SbmComponents_Association.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Components/Accounts/SbmComponents_Association.cs new file mode 100644 index 0000000..14ef541 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Components/Accounts/SbmComponents_Association.cs @@ -0,0 +1,97 @@ +using Sarand.Core.Base; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Forms.Components.Accounts +{ + //======================================================================= + public class SbmComponents_Association : SbmComponents + { + //------------------------------------------------------------------- + // Data members. + private SbmSessionProfile_Mobile sessionProfile = SbmGlobals_Mobile.SessionProfile; + private readonly List associationTypes = new List(); + + //------------------------------------------------------------------- + // Construction. + public SbmComponents_Association () + { + //associationTypes.AddRange(SbmSystem.GetCodesOfType(Sbm.SystemCode.AssociationType)); + InitialiseComponents(); + } + + //------------------------------------------------------------------- + // Properties. + public String MessageTitle { get; set; } = "Accounts Association"; + + //------------------------------------------------------------------- + // Utilities. + + //------------------------------------------------------------------- + // I n i t i a l i s e + //------------------------------------------------------------------- + private void InitialiseComponents () + { + Changed = false; + } + + //------------------------------------------------------------------- + // P o p u l a t i o n + //------------------------------------------------------------------- + public void PopulateToControls (SbmContainer.Data data) + { + Changed = false; + } + public void PopulateToControls (SbmAssociation.Data data) + { + Changed = false; + } + //------------------------------------------------------------------- + public bool IsDataValid (SbmAssociation.Data data) + { + return true; + } + //------------------------------------------------------------------- + public void PopulateFromControls (SbmAssociation.Data data) + { + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + SetControlsReadOnly(); + } + protected override void SetControlsReadOnly () + { + } + + //------------------------------------------------------------------- + // C o n t r o l E v e n t s + //------------------------------------------------------------------- + // Account Code. + private void EntryAccountCode_TextChanged (object sender, TextChangedEventArgs e) + { + Changed = true; + } + private void EntryAccountCode_Completed (object sender, EventArgs e) + { + } + //------------------------------------------------------------------- + // Account Size. + private void PickerAccountSize_SelectedIndexChanged (object sender, EventArgs e) + { + Changed = true; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Components/SbmComponents_Config.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Components/SbmComponents_Config.cs new file mode 100644 index 0000000..6c3428f --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Components/SbmComponents_Config.cs @@ -0,0 +1,84 @@ +using Sarand.Core.Base; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Forms.Components +{ + //======================================================================= + public class SbmComponents_Config : SbmComponents + { + //------------------------------------------------------------------- + // Data members. + private SbmSessionProfile_Mobile sessionProfile = SbmGlobals_Mobile.SessionProfile; + + //------------------------------------------------------------------- + // Construction. + public SbmComponents_Config () + { + InitialiseComponents(); + } + + //------------------------------------------------------------------- + // Properties. + // User. + public SbmLabel LabelName { get; } = new SbmLabel() { Text = "Display Name" }; + public SbmEntryView EntryName { get; } = new SbmEntryView() { ReadOnly = true }; + + //------------------------------------------------------------------- + // Utilities. + + //------------------------------------------------------------------- + // Utilities. + public void RefreshProperties () + { + // User and Email. + EntryName.Text = sessionProfile.DisplayName; + Changed = false; + } + + //------------------------------------------------------------------- + // I n i t i a l i s e + //------------------------------------------------------------------- + private void InitialiseComponents () + { + // User. + EntryName.Text = sessionProfile.DisplayName; + EntryName.TextChanged += EntryName_TextChanged; + EntryName.Completed += EntryName_Completed; + + RefreshProperties(); + + Changed = false; + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + SetControlsReadOnly(); + } + protected override void SetControlsReadOnly () + { + EntryName.ReadOnly = ReadOnly; + } + + //------------------------------------------------------------------- + // C o n t r o l E v e n t s + //------------------------------------------------------------------- + private void EntryName_TextChanged (object sender, TextChangedEventArgs e) + { + Changed = true; + } + private void EntryName_Completed (object sender, EventArgs e) + { + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Components/SbmComponents_Login.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Components/SbmComponents_Login.cs new file mode 100644 index 0000000..6ff2866 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Components/SbmComponents_Login.cs @@ -0,0 +1,93 @@ +using Sarand.Core.Base; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Forms.Components +{ + //======================================================================= + public class SbmComponents_Login : SbmComponents + { + //------------------------------------------------------------------- + // Data members. + private SbmSessionProfile_Mobile sessionProfile = SbmGlobals_Mobile.SessionProfile; + + //------------------------------------------------------------------- + // Construction. + public SbmComponents_Login () + { + InitialiseComponents(); + } + + //------------------------------------------------------------------- + // Properties. + // Email. + public SbmLabel LabelEmail { get; } = new SbmLabel() { Text = "Email" }; + public SbmEntryView EntryEmail { get; } = new SbmEntryView() { Keyboard = Keyboard.Email }; + // Password. + public SbmLabel LabelPassword { get; } = new SbmLabel() { Text = "Password" }; + public SbmEntryView EntryPassword { get; } = new SbmEntryView() { IsPassword = true }; + + //------------------------------------------------------------------- + // Utilities. + + //------------------------------------------------------------------- + // Utilities. + + //------------------------------------------------------------------- + // I n i t i a l i s e + //------------------------------------------------------------------- + private void InitialiseComponents () + { + // Display Name. + if (SbmGlobals_Mobile.Application.DefaultDisplayName != null) + EntryEmail.Text = SbmGlobals_Mobile.Application.DefaultDisplayName; + EntryEmail.TextChanged += EntryEmail_TextChanged; + EntryEmail.Completed += EntryEmail_Completed; + + // Password. + EntryPassword.TextChanged += EntryPassword_TextChanged; + EntryPassword.Completed += EntryPassword_Completed; + + Changed = false; + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + SetControlsReadOnly(); + } + protected override void SetControlsReadOnly () + { + EntryEmail.ReadOnly = ReadOnly; + EntryPassword.ReadOnly = ReadOnly; + } + + //------------------------------------------------------------------- + // C o n t r o l E v e n t s + //------------------------------------------------------------------- + private void EntryEmail_TextChanged (object sender, TextChangedEventArgs e) + { + Changed = true; + } + private void EntryEmail_Completed (object sender, EventArgs e) + { + } + //------------------------------------------------------------------- + private void EntryPassword_TextChanged (object sender, TextChangedEventArgs e) + { + Changed = true; + } + private void EntryPassword_Completed (object sender, EventArgs e) + { + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Config/SbmPage_Config_Options.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Config/SbmPage_Config_Options.cs new file mode 100644 index 0000000..64086c5 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Config/SbmPage_Config_Options.cs @@ -0,0 +1,78 @@ +using Sarand.Core.Base; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Pages; +using System; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Forms.Components; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; + +namespace Sarand.BusinessMgr.Mobile.Forms.Pages.Config +{ + //======================================================================= + public class SbmPage_Config_Options : SbmFormPage + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SbmFormPage.Config + { + } + + //------------------------------------------------------------------- + // Data members. + private Config config = new Config(); + private SbmSessionProfile_Mobile sessionProfile = SbmGlobals_Mobile.SessionProfile; + private SbmGrid optionsGrid = new SbmGrid(); + // Config components. + private SbmComponents_Config configComponents = new SbmComponents_Config(); + + //------------------------------------------------------------------- + // Construction. + public SbmPage_Config_Options (Config config) : base(config) + { + this.config = config; + Title = "Options"; + InitialiseComponents(); + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // I n i t i a l i s e + //------------------------------------------------------------------- + private void InitialiseComponents () + { + // Options grid. + FormBodyView.Content = optionsGrid; + optionsGrid.BackgroundColor = SbmMobile.PageBackgroundColor; + optionsGrid.Padding = new Thickness(4.0); + optionsGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); + optionsGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Star }); + optionsGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); + int gridRowIdx = -1; + + // User. + gridRowIdx++; + optionsGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + optionsGrid.Children.Add(configComponents.LabelName, 0, gridRowIdx); + optionsGrid.Children.Add(configComponents.EntryName, 1, gridRowIdx); + Grid.SetColumnSpan(configComponents.EntryName, 2); + } + + //------------------------------------------------------------------- + // N a v i g a t i o n E v e n t s + //------------------------------------------------------------------- + protected override bool SaveFormData () + { + return true; + } + protected override bool QueryCancelForm () + { + if (!base.QueryCancelForm()) return false; + return true; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Config/SbmPage_Config_System.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Config/SbmPage_Config_System.cs new file mode 100644 index 0000000..a29c4e8 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Config/SbmPage_Config_System.cs @@ -0,0 +1,121 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Pages; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; +using System.Collections.Generic; +using System.Linq; +using Xamarin.Essentials; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; + +namespace Sarand.BusinessMgr.Mobile.Forms.Pages.Config +{ + //======================================================================= + public class SbmPage_Config_System : SbmFormPage + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SbmFormPage.Config + { + public Config () + { + NavigationMode = NavigationMode.Close; + } + } + + //------------------------------------------------------------------- + // Data members. + private Config config = new Config(); + private SbmSessionProfile_Mobile sessionProfile = SbmGlobals_Mobile.SessionProfile; + private SbmGrid settingsGrid = new SbmGrid(); + + //------------------------------------------------------------------- + // Construction. + public SbmPage_Config_System (Config config) : base(config) + { + this.config = config; + Title = "System"; + InitialiseComponents(); + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // I n i t i a l i s e + //------------------------------------------------------------------- + private void InitialiseComponents () + { + // Settings grid. + FormBodyView.Content = settingsGrid; + settingsGrid.BackgroundColor = SbmMobile.PageBackgroundColor; + settingsGrid.Padding = new Thickness(4.0); + settingsGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Star }); + settingsGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); + + // Settings. + List settings = new List(); + + // Application info. + settings.Add("App name", AppInfo.Name); + settings.Add("Package name", AppInfo.PackageName); + settings.Add("Build", AppInfo.BuildString + " [" + AppInfo.VersionString + "]"); + + // Main display info. + DisplayInfo mainDisplayInfo = DeviceDisplay.MainDisplayInfo; + settings.Add("Display", mainDisplayInfo.Width.ToString() + " x " + mainDisplayInfo.Height.ToString()); + settings.Add("Density", mainDisplayInfo.Density.ToString()); + settings.Add("Orientation", mainDisplayInfo.Orientation.ToString()); + if (mainDisplayInfo.Rotation != DisplayRotation.Rotation0) + settings.Add("Rotation", mainDisplayInfo.Rotation.ToString()); + + // Application styling. + settings.Add("Font size ratio", SbmMobile.FontSizeRatio.ToString()); + + // Device info. + settings.Add("Model", DeviceInfo.Model); + if (!StringUtil.IsEmpty(DeviceInfo.Manufacturer) && !DeviceInfo.Manufacturer.EqualsCI("unknown")) + settings.Add("Manufacturer", DeviceInfo.Manufacturer); + string computerName = SacsSystem.ComputerName; + settings.Add("Device name", DeviceInfo.Name + (!StringUtil.IsEmpty(computerName) && computerName.EqualsCI(DeviceInfo.Name) ? " [" + computerName + "]" : "")); + settings.Add("Device version", DeviceInfo.VersionString); + settings.Add("Platform", DeviceInfo.Platform.ToString() + " - " + DeviceInfo.Idiom.ToString() + (DeviceInfo.DeviceType > 0 ? " [" + DeviceInfo.DeviceType.ToString() + "]" : "")); + + // Version tracking. + if (VersionTracking.IsFirstLaunchEver) + settings.Add("First launch", VersionTracking.IsFirstLaunchEver.ToString()); + if (VersionTracking.IsFirstLaunchForCurrentVersion) + settings.Add("First launch current", VersionTracking.IsFirstLaunchForCurrentVersion.ToString()); + if (VersionTracking.IsFirstLaunchForCurrentBuild) + settings.Add("First launch build", VersionTracking.IsFirstLaunchForCurrentBuild.ToString()); + if (!StringUtil.IsEmpty(VersionTracking.CurrentBuild)) + settings.Add("Current build", VersionTracking.CurrentBuild + (!StringUtil.IsEmpty(VersionTracking.CurrentVersion) ? " [" + VersionTracking.CurrentVersion + "]" : "")); + if (!StringUtil.IsEmpty(VersionTracking.PreviousBuild)) + settings.Add("Previous build", VersionTracking.PreviousBuild + (!StringUtil.IsEmpty(VersionTracking.PreviousVersion) ? " [" + VersionTracking.PreviousVersion + "]" : "")); + if (!StringUtil.IsEmpty(VersionTracking.FirstInstalledBuild)) + settings.Add("First build", VersionTracking.FirstInstalledBuild + (!StringUtil.IsEmpty(VersionTracking.FirstInstalledVersion) ? " [" + VersionTracking.FirstInstalledVersion + "]" : "")); + if (VersionTracking.VersionHistory.Count() > 0) + settings.Add("Version history", VersionTracking.VersionHistory.Concat(", ")); + if (VersionTracking.BuildHistory.Count() > 0) + settings.Add("Build history", VersionTracking.BuildHistory.Concat(", ")); + + // Populate settings. + int gridRowIdx = -1; + foreach (StringPair setting in settings) + { + gridRowIdx++; + settingsGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + settingsGrid.Children.Add(new SbmLabel() { Text = setting.Item1, HorizontalOptions = LayoutOptions.Start }, 0, gridRowIdx); + settingsGrid.Children.Add(new SbmLabel() { Text = setting.Item2, HorizontalOptions = LayoutOptions.StartAndExpand }, 1, gridRowIdx); + } + } + + //------------------------------------------------------------------- + // P a g e E v e n t s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Forms/Accounts/SbmFormPage_Accounts_Associations.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Forms/Accounts/SbmFormPage_Accounts_Associations.cs new file mode 100644 index 0000000..53d9cf3 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Forms/Accounts/SbmFormPage_Accounts_Associations.cs @@ -0,0 +1,183 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Tasks; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Pages; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Forms.Components.Accounts; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; + +namespace Sarand.BusinessMgr.Mobile.Forms.Pages.Forms.Accounts +{ + //======================================================================= + public class SbmFormPage_Accounts_Associations : SbmFormPage + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SbmFormPage.Config + { + public SysId AssociationIdToUpdate { get; set; } + } + private class AssociationData + { + public Sbm.AssociationType AssociationType { get; set; } + public SysId AccountItemId { get; set; } + } + + //------------------------------------------------------------------- + // Data members. + private readonly Config config; + private readonly AssociationData associationData = new AssociationData(); + private SbmGrid gridProperties = new SbmGrid(); + private SbmComponents_Association associationComponents = new SbmComponents_Association(); + // Data to view/update. + public SbmAssociation associationToUpdate { get; set; } + public SbmContainer association_Container { get; set; } + + //------------------------------------------------------------------- + // Construction. + public SbmFormPage_Accounts_Associations (Config config) : base(config) + { + this.config = config; + Title = "Account Association"; + AddMode = !SysId.IsValid(config.AssociationIdToUpdate); + if (config.ReadOnly) + { + associationComponents.ReadOnly = true; + } + PrepareFormData(); + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // P r e p a r a t i o n + //------------------------------------------------------------------- + private SacsTaskData taskDataPrepareData = new SacsTaskData(null); + private void PrepareFormData () + { + String fn = GetType().Name + ".PrepareFormData"; + if (!SysId.IsValid(config.AssociationIdToUpdate)) return; + + // Form is initialised on separate thread while data is retrieved from the service. + // 'Please wait' message is displayed during preparation. + // Any issue during preparation results in an alert message and the form is closed. + FormBodyView.Content = new SbmLabel() { Text = DataPreparationMessage }; + Task.Run(async () => + { + try + { + await PopulateAssociationData(taskDataPrepareData); + } + catch (Exception exc) + { + if (SacsSystem.DebugMode) Logger.Warn(fn + " " + ExceptionUtil.GetLogMessage(exc)); + CloseFormWithAlert(nameof(exc) + " on form initialisation.\n\n" + exc.Message); + } + }, taskDataPrepareData.CancellationToken) + .ContinueWith(task => + { + taskDataPrepareData.Dispose(); + }); + } + //------------------------------------------------------------------- + private async Task PopulateAssociationData (SacsTaskData taskDataPrepareData_Local) + { + String fn = GetType().Name + ".PopulateAssociationData"; + + // Retrieve Account Association and associated details. + try + { + // Retrieve Account Association. + SbmAssociation.Params prmAssociation = new SbmAssociation.Params(); + prmAssociation.IncludedIds.Add(config.AssociationIdToUpdate); + prmAssociation.StatusCat = SbmAssociation.StatusCat.Any; + //associationToUpdate = await AccountMgr.GetAssociation_Mobile(prmAssociation, taskDataPrepareData_Local); + } + catch (Exception exc) { Logger.Debug(fn + " " + exc.GetLogMessage(6)); } + if (associationToUpdate == null) + { + CloseFormWithAlert("Failed to retrieve Account movement data."); + return; + } + else + { + CloseFormWithAlert("Unrecognised asset type: " + associationToUpdate.AssociationType.ToString() + "."); + return; + } + if (taskDataPrepareData_Local.IsCancellationRequested) return; + + Device.BeginInvokeOnMainThread(() => + { + // Initialise form. + InitialiseComponents(); + }); + } + + //------------------------------------------------------------------- + // I n i t i a l i s e + //------------------------------------------------------------------- + private void InitialiseComponents () + { + // Account Repair form. + FormBodyView.Content = gridProperties; + gridProperties.RowSpacing = SbmMobile.FormGridRowSpacing; + gridProperties.ColumnSpacing = SbmMobile.FormGridColumnSpacing; + gridProperties.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto }); + gridProperties.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Star }); + gridProperties.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto }); + + //--------------------------------------------------------------- + // Populate properties to components. + associationComponents.PopulateToControls(association_Container?.GetData() ?? new SbmContainer.Data()); + associationComponents.PopulateToControls(associationToUpdate?.GetData() ?? new SbmAssociation.Data()); + + // Complete page configuration. + SetControlActivity(); + Changed = false; + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + base.SetControlActivity(); + } + protected override void SetControlsReadOnly () + { + } + + //------------------------------------------------------------------- + // N a v i g a t i o n E v e n t s + //------------------------------------------------------------------- + protected override bool SaveFormData () + { + return true; + } + //------------------------------------------------------------------- + protected override bool QueryCancelForm () + { + if (!base.QueryCancelForm()) return false; + return true; + } + + //------------------------------------------------------------------- + // P r o p e r t y E v e n t s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Templates/Page_Template_Main.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Templates/Page_Template_Main.cs new file mode 100644 index 0000000..637fb53 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Pages/Templates/Page_Template_Main.cs @@ -0,0 +1,239 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.Core.Mobile.Utils; +using Sarand.BusinessMgr.Mobile.Core.Forms.Pages; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; +using Sarand.BusinessMgr.Mobile.Core.Forms.Layouts; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; +using Sarand.BusinessMgr.Mobile.Forms.Views; +using Sarand.Core.Base; +using Sarand.Core.App; + +namespace Sarand.BusinessMgr.Mobile.Forms.Pages.Templates +{ + //======================================================================= + public abstract class Page_Template_Main : SbmContentPage + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmGrid baseGrid = new SbmGrid(); + // Application bar. + private SbmGrid applicationBar = new SbmGrid(); + private Label labelApplicationCaption = new Label(); + private ImageButton buttonMenu = new ImageButton(); + private SbmContentView applicationBarBorderBottom = new SbmContentView(); + // Page body. + private SbmAbsoluteLayout absoluteLayout = new SbmAbsoluteLayout(); + private SbmScrollView pageBodyScroll = new SbmScrollView(); + private SbmContentView pageBodyStatic = new SbmContentView(); + + //------------------------------------------------------------------- + // Construction. + public Page_Template_Main () + { + this.SizeChanged += OnSizeChanged; + + // Base layout - Grid. + baseGrid.BackgroundColor = SbmMobile.PageBaseColor; + baseGrid.Padding = new Thickness(0); + baseGrid.RowSpacing = 0; + baseGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + baseGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Star }); + Content = baseGrid; + int baseGridRowIdx = -1; + + // Application bar. + applicationBar.Margin = new Thickness(0); + applicationBar.Padding = new Thickness(0, 4, 0, 0); + applicationBar.HorizontalOptions = LayoutOptions.FillAndExpand; + applicationBar.VerticalOptions = LayoutOptions.CenterAndExpand; + applicationBar.RowSpacing = 0; + applicationBar.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + applicationBar.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + applicationBar.ColumnSpacing = 0; + applicationBar.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Star }); + applicationBar.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); + applicationBar.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Star }); + applicationBar.BackgroundColor = SbmMobile.ApplicationBarBackgroundColor; + baseGrid.Children.Add(applicationBar, 0, ++baseGridRowIdx); + // Caption. + //labelApplicationCaption.HorizontalOptions = LayoutOptions.CenterAndExpand; + labelApplicationCaption.Margin = new Thickness(0, 0, 0, 8); + labelApplicationCaption.Text = Title; + labelApplicationCaption.TextColor = SbmMobile.ApplicationBarTextColor; + labelApplicationCaption.FontSize *= SbmMobile.FontSizeRatio * SbmMobile.ApplicationBarTextSizeRatio; + labelApplicationCaption.BackgroundColor = Color.Transparent; + applicationBar.Children.Add(labelApplicationCaption, 1, 0); + // Menu button. + buttonMenu.HorizontalOptions = LayoutOptions.End; + buttonMenu.VerticalOptions = LayoutOptions.Center; + buttonMenu.Source = SacsImageUtils.GetImageFromByteArray(SacsResourceConsole.GetImageResource(SacsResourceConsole.ImageResource.Icon_Burger_Black_64_png)); + buttonMenu.BackgroundColor = Color.Transparent; + buttonMenu.Padding = new Thickness(12, 0); + buttonMenu.Clicked += ButtonMenu_Clicked; + applicationBar.Children.Add(buttonMenu, 2, 0); + // Application bar - bottom border. + applicationBarBorderBottom.BackgroundColor = SbmMobile.MenuBorderColor; + applicationBarBorderBottom.Padding = new Thickness(0, SbmMobile.ApplicationBarBorderBottom, 0, 0); + applicationBar.Children.Add(applicationBarBorderBottom, 0, 1); + Grid.SetColumnSpan(applicationBarBorderBottom, 3); + + // Menu. + MenuView.MenuOptionClicked += MenuView_MenuOptionClicked; + + // AbsoluteLayout - Required for positioning popup menu etc. + absoluteLayout.BackgroundColor = SbmMobile.PageBackgroundColor; + absoluteLayout.Padding = new Thickness(0); + baseGrid.Children.Add(absoluteLayout, 0, ++baseGridRowIdx); + + // Scrolling Page Body. + pageBodyScroll.HorizontalOptions = LayoutOptions.FillAndExpand; + pageBodyScroll.VerticalOptions = LayoutOptions.FillAndExpand; + pageBodyScroll.BackgroundColor = Color.Transparent; + pageBodyScroll.Padding = new Thickness(0); + + // Static Page Body. + pageBodyStatic.HorizontalOptions = LayoutOptions.FillAndExpand; + pageBodyStatic.VerticalOptions = LayoutOptions.FillAndExpand; + pageBodyStatic.BackgroundColor = Color.Transparent; + pageBodyStatic.Padding = new Thickness(0); + + // Hide menu when tapping on main page. + var bodyTapGestureRecognizer = new TapGestureRecognizer(); + bodyTapGestureRecognizer.Tapped += (s, e) => { HideMenu(); }; + //pageBody.GestureRecognizers.Add(bodyTapGestureRecognizer); + //pageBodyScroll.GestureRecognizers.Add(bodyTapGestureRecognizer); + baseGrid.GestureRecognizers.Add(bodyTapGestureRecognizer); + + // Events. + } + + //------------------------------------------------------------------- + // Properties. + public PageBodyMode BodyMode { get; private set; } + + //------------------------------------------------------------------- + // S w i t c h P a g e B o d y + //------------------------------------------------------------------- + public enum PageBodyMode + { + Scrollable, + SelfScrolling + } + protected void SwitchPageBody (View mainBodyView, PageBodyMode mode) + { + // Clear previous body. + pageBodyScroll.Content = null; + pageBodyStatic.Content = null; + absoluteLayout.Children.Clear(); + // Add new page body. + BodyMode = mode; + if (mode == PageBodyMode.SelfScrolling) + { + // Replace the static panel and add the body panel to that. + absoluteLayout.Children.Add(pageBodyStatic, new Rectangle(0.0, 0.0, 1.0, 1.0), AbsoluteLayoutFlags.SizeProportional); + pageBodyStatic.Content = mainBodyView; + } + else + { + // Replace the scrolling panel and add the body panel to that. + absoluteLayout.Children.Add(pageBodyScroll, new Rectangle(0.0, 0.0, 1.0, 1.0), AbsoluteLayoutFlags.SizeProportional); + pageBodyScroll.Content = mainBodyView; + } + } + + //------------------------------------------------------------------- + // M e n u + //------------------------------------------------------------------- + protected abstract SbmMenuView MenuView { get; } + private bool menuShown = false; + private void ButtonMenu_Clicked (object sender, EventArgs e) + { + if (menuShown) + { + HideMenu(); + return; + } + ShowMenu(); + } + public void HideMenu () + { + absoluteLayout.Children.Remove(MenuView); + menuShown = false; + } + private void ShowMenu () + { + double menuWidth = Math.Min(180, Math.Min(Width, Height) * 0.66); + double menuHeight = Math.Min(320, Math.Min(Width, Height) * 0.66); + if (MenuView.MenuHeight > menuHeight && MenuView.MenuHeight < Height) + menuHeight = MenuView.MenuHeight; + Rectangle menuPosition = new Rectangle(absoluteLayout.Width - menuWidth, 0, menuWidth, menuHeight); + absoluteLayout.Children.Add(MenuView, menuPosition, AbsoluteLayoutFlags.None); + menuShown = true; + } + private void MenuView_MenuOptionClicked (object sender, SbmMenuView.MenuOptionClickedEventArgs e) + { + HideMenu(); + } + + //------------------------------------------------------------------- + // P o s i t i o n C o m p o n e n t s + //------------------------------------------------------------------- + private void PositionComponents () + { + // Page size has changed. + // Adjust main body padding. + double widthPadding = Math.Max(SbmMobile.PageBodyPaddingHorizontalMin, (Width - 460) / 3); + double heightPadding = Math.Max(SbmMobile.PageBodyPaddingVerticalMin, (Height - 800) / 40); + pageBodyScroll.Padding = new Thickness(widthPadding, heightPadding); + pageBodyStatic.Padding = new Thickness(widthPadding, heightPadding); + } + + //------------------------------------------------------------------- + // P a g e E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + if (propertyName.EqualsCI("Title")) + labelApplicationCaption.Text = Title; + } + //------------------------------------------------------------------- + protected override void OnAppearing () + { + base.OnAppearing(); + } + protected override void OnDisappearing () + { + base.OnDisappearing(); + } + //------------------------------------------------------------------- + protected override void OnSizeAllocated (double width, double height) + { + base.OnSizeAllocated(width, height); + } + private void OnSizeChanged (object sender, EventArgs e) + { + // Page size has changed. + HideMenu(); + PositionComponents(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/Accounts/SbmMainPanel_Association.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/Accounts/SbmMainPanel_Association.cs new file mode 100644 index 0000000..d016e6e --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/Accounts/SbmMainPanel_Association.cs @@ -0,0 +1,340 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Mobile.Forms.Controls; +using Sarand.Core.Mobile.Forms.Panels; +using Sarand.Core.Tasks; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Pages; +using Sarand.BusinessMgr.Mobile.Core.Mgr; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Forms.Pages.Forms.Accounts; + +namespace Sarand.BusinessMgr.Mobile.Forms.Panels.Main.Accounts +{ + //======================================================================= + public class SbmMainPanel_Association : SbmMainPanel_ItemList + { + //------------------------------------------------------------------- + // Definitions. + public enum FilterProperty + { + Code, + Name, + } + public enum PanelMode + { + InProgress, + Customer, + Supplier, + } + public new class Config : SbmMainPanel_ItemList.Config + { + public PanelMode Mode { get; set; } = PanelMode.InProgress; + } + + //------------------------------------------------------------------- + // Data members. + private Config config; + private class Columns + { + public ColumnDfn Id { get; set; } + public ColumnDfn Code { get; set; } + public ColumnDfn Name { get; set; } + public ColumnDfn PhoneMain { get; set; } + public ColumnDfn Status { get; set; } + } + private Columns cols = new Columns(); + private String associationDoubleClickedPrefix = "AssociationDblClick#"; + + //------------------------------------------------------------------- + // Construction. + public SbmMainPanel_Association (Config config) : + base(config) + { + this.config = config; + // Columns. + cols.Id = AccountMgr.GetAssociationColumnDfn(SbmAssociation.Column.Id); + cols.Code = AccountMgr.GetAssociationColumnDfn(SbmAssociation.Column.Code); + cols.Name = AccountMgr.GetAssociationColumnDfn(SbmAssociation.Column.Target_Name); + cols.PhoneMain = AccountMgr.GetAssociationColumnDfn(SbmAssociation.Column.PhoneMain); + cols.Status = AccountMgr.GetAssociationColumnDfn(SbmAssociation.Column.Status); + // Initialise components. + InitialiseComponents(); + } + + //------------------------------------------------------------------- + // Properties. + protected override String HeaderCaption { get { return "Accounts - Association"; } } + public virtual Sbm.AssociationType AssociationType { get; } = Sbm.AssociationType.Unknown; + + //------------------------------------------------------------------- + // I n i t i l i a s e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control initialisation on construction. + protected override void InitialiseComponents () + { + base.InitialiseComponents(); + + ConfigureComponents(); + } + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control configuration that can be changed dynamically. + protected override void ConfigureComponents () + { + base.ConfigureComponents(); + + // Initial population. + RefreshItemList(); + } + + //------------------------------------------------------------------- + // P a n e l A c t i o n s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + } + protected override void SetControlsReadOnly () + { + } + + //------------------------------------------------------------------- + // I t e m L i s t + //------------------------------------------------------------------- + protected override List GetFilterPropertyTypes () + { + List filterPropertyTypes = new List(); + filterPropertyTypes.Add(new SacsFilterPropertyType((int)FilterProperty.Code, "Code") { Mode = SacsFilterPropertyType.FilterMode.Text }); + filterPropertyTypes.Add(new SacsFilterPropertyType((int)FilterProperty.Name, "Name") { Mode = SacsFilterPropertyType.FilterMode.Text }); + return filterPropertyTypes; + } + public SbmAssociation.Params GetAssociationParams (uint pageNo, ushort pageLength) + { + SbmAssociation.Params prmAssociation = new SbmAssociation.Params(); + // Filter. + prmAssociation.AssociationType = AssociationType; + prmAssociation.CodePartial = HeaderPanel.PanelFilter.GetFilterPropertyValue((int)FilterProperty.Code); + prmAssociation.NameTargetPartial = HeaderPanel.PanelFilter.GetFilterPropertyValue((int)FilterProperty.Name); + prmAssociation.StatusCat = SbmAssociation.StatusCat.NotDeleted; + // Mode. + if (config.Mode == PanelMode.InProgress) + prmAssociation.StatusCat = SbmAssociation.StatusCat.OnHold; + // Paging. + prmAssociation.ResultsPaging.PageNo = pageNo; + prmAssociation.ResultsPaging.PageLength = pageLength; + // Sort. + prmAssociation.SortColumns.Add(AccountMgr.GetAssociationColumnDfn(SbmAssociation.Column.Id)); + return prmAssociation; + } + private SacsTaskData taskDataRefreshList = null; + protected override void RefreshItemList (uint pageNo = 1) + { + String fn = GetType().Name + ".RefreshItemList"; + + // Kill previous request. + if (taskDataRefreshList != null) + { + taskDataRefreshList.TriggerCancellation(); + taskDataRefreshList = null; + } + + // Clear existing list. + DisplayItemList(null, "Refreshing list. Please wait..."); + + // Refresh the list. + RefreshItemList(GetAssociationParams(pageNo, ItemsPerPage), taskDataRefreshList = new SacsTaskData(null)); + } + private void RefreshItemList (SbmAssociation.Params associationParams, SacsTaskData taskDataRefreshList_Local) + { + String fn = GetType().Name + ".RefreshItemList"; + + // Query data after delay. + Device.StartTimer(TimeSpan.FromMilliseconds(250), () => + { + if (SacsSystem.DebugMode) Logger.Debug(fn + " Timer fired."); + Task.Run(async () => + { + try + { + // Configure request. + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Association; + configRequest.RequestType = SbmWebServiceRequest.RequestType.QueryList; + configRequest.Context.InstanceDefinition = SbmGlobals_Mobile.SessionProfile.InstanceDefinition; + configRequest.Context.Debug = SacsSystem.DebugMode; + // Filter. + Dictionary filter = AccountMgr.GetAssociationQueryFilter_Mobile(associationParams); + + // Columns. + List queryColumns = new List() + { + cols.Id.DataName, + cols.Code.DataName, + cols.Name.DataName, + cols.PhoneMain.DataName, + cols.Status.DataName, + }; + // Request User profile. + if (SacsSystem.DebugMode) Logger.Debug(fn + " Querying data - START"); + configRequest.RequestType = SbmWebServiceRequest.RequestType.QueryList; + SbmWebServiceClient.QueryListResponseData responseData = + await new SbmWebServiceClient().RequestQueryList(configRequest, filter, queryColumns, AccountMgr.GetSortColumns_Mobile(associationParams), taskDataRefreshList_Local); + if (SacsSystem.DebugMode) Logger.Debug(fn + " Querying data - END Items: " + (responseData?.Items.Count.ToString() ?? "None") + (taskDataRefreshList_Local.IsCancellationRequested ? " [Cancelled]" : "")); + + // Display item list. + Device.BeginInvokeOnMainThread(() => + { + DisplayItemList(responseData); + }); + } + catch (Exception exc) { if (SacsSystem.DebugMode) Logger.Warn(fn + " " + exc.GetLogMessage()); } + }, taskDataRefreshList_Local.CancellationToken) + .ContinueWith(task => + { + taskDataRefreshList_Local.Dispose(); + if (taskDataRefreshList == taskDataRefreshList_Local) + taskDataRefreshList = null; + }); + if (SacsSystem.DebugMode) Logger.Debug(fn + " Timer method complete."); + // Kill timer with false response. + return false; + }); + } + + //------------------------------------------------------------------- + protected override void DisplayItemList (SbmWebServiceClient.QueryListResponseData responseData, SacsMessage message = null) + { + // Refresh paging properties. + if (responseData != null) + HeaderPanel.SetPaging(responseData.PageNo, responseData.PageLength, responseData.Total > 0 ? responseData.Total : responseData.Count); + else HeaderPanel.SetPaging(0, 0, 0); + // Construct item list HTML. + string html = "" + GetAssociationListStyles().Concat("\n") + GetAssociationListScripts().Concat("\n") + ""; + if (message != null) + { + String messageClass = "inf"; + switch (message.MessageLevel) + { + case SaMessageLevel.Fatal: + case SaMessageLevel.Exception: + case SaMessageLevel.Error: + messageClass = "err"; + break; + case SaMessageLevel.Warning: + messageClass = "wrn"; + break; + } + html += "
" + message.Message + "
"; + } + if (responseData == null) + { } + else if (responseData.Items.Count > 0) + { + //html += "
Associations found: " + responseData.Items.Count + "
"; + int itemCount = 0; + foreach (var item in responseData.Items) + { + itemCount++; + html += "
"; + html += ""; + html += " "; + html += " "; + html += " "; + html += " "; + html += " "; + html += " "; + html += " "; + SaStatus associationStatus = SacsSystem.GetStatusForCode(item.GetValue(cols.Status.DataName)); + html += " "; + html += " "; + if (SacsSystem.DebugMode) + { + html += " "; + html += " "; + html += " "; + html += " "; + } + html += "
Code" + item.GetValue(cols.Code.DataName) + "Name" + item.GetValue(cols.Name.DataName) + "
Phone No" + item.GetValue(cols.PhoneMain.DataName) + "Status" + SacsSystem.GetStatusDesc(associationStatus) + "
Item" + itemCount + "Id" + SysId.ToString(item.GetIdValue(cols.Id.DataName)) + "
"; + html += "
"; + } + } + else html += "
No associations found
"; + html += ""; + ItemListWebView.Html = html; + //Logger.Debug("HTML: " + html); + } + private List GetAssociationListStyles () + { + List styles = new List(GetItemListBaseStyles()); + styles.AddRange(new String[] + { + }); + return styles; + } + private List GetAssociationListScripts () + { + List scripts = new List(GetItemListBaseScripts()); + scripts.AddRange(new String[] + { + "" + }); + return scripts; + } + + //------------------------------------------------------------------- + // P a n e l E v e n t s + //------------------------------------------------------------------- + /// 'App' navigation events on Item List web view control. + protected override void ItemListWebView_AppNavigating (object sender, SaxWebView.AppNavigatingEventArgs eventArgs) + { + String fn = GetType().Name + ".ItemListWebView_AppNavigating"; + if (SacsSystem.DebugMode) Logger.Debug(fn + " AppAction: " + eventArgs.AppAction); + if (eventArgs.AppAction.StartsWithCI(associationDoubleClickedPrefix)) + { + SysId associationId = new SysId(StringUtil.ToInt(eventArgs.AppAction.Right(eventArgs.AppAction.Length - associationDoubleClickedPrefix.Length))); + if (!SysId.IsValid(associationId)) + { + DisplayAlert(HeaderCaption, "Invalid account association selected.", "OK"); + return; + } + + // Configure Account Association page. + // Data will be retrieved and validated by the page. + SbmFormPage_Accounts_Associations.Config pageConfig = new SbmFormPage_Accounts_Associations.Config(); + pageConfig.AssociationIdToUpdate = associationId; + pageConfig.ReadOnly = true; + if (pageConfig.ReadOnly) pageConfig.NavigationMode = SbmFormPage.NavigationMode.Close; + SbmFormPage_Accounts_Associations accountForm = new SbmFormPage_Accounts_Associations(pageConfig); + //accountRepairForm.Disappearing += (sender2, e2) => { }; + SbmGlobals_Mobile.Application.MainPage.Navigation.PushModalAsync(accountForm, false); + } + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/Accounts/SbmMainPanel_Association_Customer.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/Accounts/SbmMainPanel_Association_Customer.cs new file mode 100644 index 0000000..de71db4 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/Accounts/SbmMainPanel_Association_Customer.cs @@ -0,0 +1,48 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Mobile.Forms.Controls; +using Sarand.Core.Mobile.Forms.Panels; +using Sarand.Core.Tasks; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Pages; +using Sarand.BusinessMgr.Mobile.Core.Mgr; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Forms.Pages.Forms.Accounts; + +namespace Sarand.BusinessMgr.Mobile.Forms.Panels.Main.Accounts +{ + //======================================================================= + public class SbmMainPanel_Association_Customer : SbmMainPanel_Association + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SbmMainPanel_Association.Config + { + public PanelMode Mode { get; set; } = PanelMode.Customer; + } + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmMainPanel_Association_Customer (Config config) : base(config) + { + } + + //------------------------------------------------------------------- + // Properties. + protected override String HeaderCaption { get { return "Accounts - Customer"; } } + public override Sbm.AssociationType AssociationType { get; } = Sbm.AssociationType.Customer; + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/Accounts/SbmMainPanel_Association_Supplier.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/Accounts/SbmMainPanel_Association_Supplier.cs new file mode 100644 index 0000000..96f577b --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/Accounts/SbmMainPanel_Association_Supplier.cs @@ -0,0 +1,47 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Mobile.Forms.Controls; +using Sarand.Core.Mobile.Forms.Panels; +using Sarand.Core.Tasks; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Pages; +using Sarand.BusinessMgr.Mobile.Core.Mgr; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Forms.Pages.Forms.Accounts; + +namespace Sarand.BusinessMgr.Mobile.Forms.Panels.Main.Accounts +{ + //======================================================================= + public class SbmMainPanel_Association_Supplier : SbmMainPanel_Association + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SbmMainPanel_Association.Config + { + public PanelMode Mode { get; set; } = PanelMode.Supplier; + } + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmMainPanel_Association_Supplier (Config config) : base(config) + { + } + + //------------------------------------------------------------------- + // Properties. + protected override String HeaderCaption { get { return "Accounts - Supplier"; } } + public override Sbm.AssociationType AssociationType { get; } = Sbm.AssociationType.Supplier; + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/SbmMainPanel_Home.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/SbmMainPanel_Home.cs new file mode 100644 index 0000000..3c49937 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/SbmMainPanel_Home.cs @@ -0,0 +1,159 @@ +using Sarand.Core.Mobile.Forms.Controls; +using Sarand.Core.Mobile.Utils; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Panels; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; +using Sarand.BusinessMgr.Mobile.Forms.Components; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; + +namespace Sarand.BusinessMgr.Mobile.Forms.Panels.Main +{ + //======================================================================= + public class SbmMainPanel_Home : SbmMainPanel + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SbmMainPanel.Config + { + } + + //------------------------------------------------------------------- + // Data members + private Config config; + private Image imageLogo = new Image(); + private readonly List favouriteActionButtons = new List(); + // Configuration grid. + private SbmGrid gridHome = new SbmGrid(); + private SbmComponents_Config configComponents; + + //------------------------------------------------------------------- + // Construction. + public SbmMainPanel_Home (Config config) : + base(config) + { + this.config = config; + configComponents = new SbmComponents_Config() { ReadOnly = true }; + InitialiseComponents(); + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // I n i t i l i a s e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control initialisation on construction. + protected void InitialiseComponents () + { + // Configuration grid. + Content = gridHome; + gridHome.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); + gridHome.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Star }); + + // Logo. + //gridHome.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + //imageLogo.Source = SacsImageUtils.GetImageFromByteArray(SbmResourceConsole.GetImageResource(SbmResourceConsole.ImageResource.Logo_Solent_Stevedores_78_png)); + //imageLogo.Margin = new Thickness(0, 4, 0, 4); + //gridHome.Children.Add(imageLogo, 0, gridRowIdx); + //Grid.SetColumnSpan(imageLogo, 2); + // User. + int gridRowIdx = gridHome.RowDefinitions.Count; + gridRowIdx = gridHome.RowDefinitions.Count; + gridHome.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + gridHome.Children.Add(configComponents.LabelName, 0, gridRowIdx); + gridHome.Children.Add(configComponents.EntryName, 1, gridRowIdx); + Grid.SetColumnSpan(configComponents.EntryName, 2); + // Email. + //gridRowIdx = gridHome.RowDefinitions.Count; + //gridHome.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + //gridHome.Children.Add(configComponents.LabelEmail, 0, gridRowIdx); + //gridHome.Children.Add(configComponents.EntryEmail, 1, gridRowIdx); + //Grid.SetColumnSpan(configComponents.EntryEmail, 2); + + // ToDo 'Favourite' buttons. + favouriteActionButtons.Clear(); + /* + foreach (SbmAppConsole.FavouriteAction favouriteAction in SbmGlobals_Mobile.SessionProfile.FavouriteActions) + { + SaxButton favouriteActionButton = new SaxButton() + { + Text = favouriteAction., + HorizontalOptions = LayoutOptions.Center, + VerticalOptions = LayoutOptions.Center + }; + favouriteActionButton.Clicked += delegate () { }; + } + */ + foreach (SaxButton favouriteActionButton in favouriteActionButtons) + { + gridRowIdx = gridHome.RowDefinitions.Count; + gridHome.Children.Add(favouriteActionButton, 0, gridRowIdx); + Grid.SetColumnSpan(favouriteActionButton, 2); + } + + // Subscribe to session profile proerty change event. + SbmGlobals_Mobile.SessionProfile.PropertyModified += SessionProfile_PropertyModified; + } + + //------------------------------------------------------------------- + // S e s s i o n P r o f i l e E v e n t s + //------------------------------------------------------------------- + private void SessionProfile_PropertyModified (object sender, EventArgs e) + { + configComponents.RefreshProperties(); + } + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control configuration that can be changed dynamically. + protected override void ConfigureComponents () + { + } + + //------------------------------------------------------------------- + // P a n e l A c t i o n s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + } + protected override void SetControlsReadOnly () + { + } + + //------------------------------------------------------------------- + // P a n e l E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanging(propertyName); + } + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + } + //------------------------------------------------------------------- + protected override void OnSizeAllocated (double width, double height) + { + base.OnSizeAllocated(width, height); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/SbmMainPanel_ItemList.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/SbmMainPanel_ItemList.cs new file mode 100644 index 0000000..54deae4 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/SbmMainPanel_ItemList.cs @@ -0,0 +1,183 @@ +using Sarand.Core.Base; +using Sarand.Core.Mobile.Forms.Controls; +using Sarand.Core.Mobile.Forms.Panels; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Panels; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Forms.Panels.Main +{ + //======================================================================= + public abstract class SbmMainPanel_ItemList : SbmMainPanel + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SbmMainPanel.Config + { + } + + //------------------------------------------------------------------- + // Data members + private Config config; + private SbmGrid viewGrid = new SbmGrid(); + + //------------------------------------------------------------------- + // Construction. + protected SbmMainPanel_ItemList (Config config) : + base(config) + { + this.config = config; + } + + //------------------------------------------------------------------- + // Properties. + protected abstract String HeaderCaption { get; } + public ushort ItemsPerPage { get; protected set; } = 8; + protected SbmPanel_ItemListHeader HeaderPanel { get; private set; } + protected SbmWebView ItemListWebView { get; private set; } = new SbmWebView(); + + //------------------------------------------------------------------- + // I n i t i l i a s e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control initialisation on construction. + protected virtual void InitialiseComponents () + { + // Configuration grid. + viewGrid.BackgroundColor = Color.Transparent; + viewGrid.VerticalOptions = LayoutOptions.FillAndExpand; + HeightRequest = 1; + Content = viewGrid; + viewGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + viewGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) }); + int gridRowIdx = -1; + + // Header panel. + SbmPanel_ItemListHeader.Config headerPanelConfig = new SbmPanel_ItemListHeader.Config(); + headerPanelConfig.Caption = HeaderCaption; + headerPanelConfig.FilterPropertyTypes.AddRange(GetFilterPropertyTypes()); + HeaderPanel = new SbmPanel_ItemListHeader(headerPanelConfig); + gridRowIdx++; + viewGrid.Children.Add(HeaderPanel, 0, gridRowIdx); + // Paging events. + HeaderPanel.PagingAction += PanelHeader_PagingAction; + // Filter events. + HeaderPanel.PanelFilter.FilterChanged += PanelFilter_FilterChanged; + + // Item list view. + ItemListWebView = new SbmWebView() + { + HorizontalOptions = LayoutOptions.FillAndExpand, + VerticalOptions = LayoutOptions.FillAndExpand + }; + ItemListWebView.AppNavigating += ItemListWebView_AppNavigating; + gridRowIdx++; + viewGrid.Children.Add(ItemListWebView, 0, gridRowIdx); + DisplayItemList(null); + } + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control configuration that can be changed dynamically. + protected override void ConfigureComponents () + { + } + + //------------------------------------------------------------------- + // I t e m L i s t + //------------------------------------------------------------------- + protected abstract List GetFilterPropertyTypes (); + protected abstract void RefreshItemList (uint pageNo = 1); + protected abstract void DisplayItemList (SbmWebServiceClient.QueryListResponseData responseData, SacsMessage message = null); + + //------------------------------------------------------------------- + public static List GetItemListBaseStyles () + { + return new List() + { + "", + "", + "", + "" + }; + } + public static List GetItemListBaseScripts () + { + return new List() + { + "", + "", + "", + "", + }; + } + + //------------------------------------------------------------------- + // P a n e l A c t i o n s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + } + protected override void SetControlsReadOnly () + { + } + + //------------------------------------------------------------------- + // P a n e l E v e n t s + //------------------------------------------------------------------- + protected void PanelHeader_PagingAction (object sender, SaxPanel_ItemListHeader.PagingActionEventArgs e) + { + uint pageNo = HeaderPanel.PageNo; + ushort pageLength = HeaderPanel.PageLength; + int totalItems = HeaderPanel.TotalItems; + uint lastPage = (totalItems > 0 && pageLength > 0) ? (uint)Math.Ceiling((double)totalItems / pageLength) : 1; + switch (e.PagingActionType) + { + case SaxPanel_ItemListHeader.PagingActionType.First: + pageNo = 1; + break; + case SaxPanel_ItemListHeader.PagingActionType.Prev: + if (pageNo > 1) pageNo--; + break; + case SaxPanel_ItemListHeader.PagingActionType.Next: + if (pageNo < lastPage) pageNo++; + break; + case SaxPanel_ItemListHeader.PagingActionType.Last: + pageNo = lastPage; + break; + } + RefreshItemList(pageNo); + } + //------------------------------------------------------------------- + /// + /// Filter properties in header panel has changed. + /// + protected void PanelFilter_FilterChanged (object sender, SaxPanel_ItemFilter.FilterChangedEventArgs e) + { + RefreshItemList(); + } + //------------------------------------------------------------------- + /// 'App' navigation events on Item List web view control. + protected abstract void ItemListWebView_AppNavigating (object sender, SaxWebView.AppNavigatingEventArgs eventArgs); + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/SbmMainPanel_Login.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/SbmMainPanel_Login.cs new file mode 100644 index 0000000..346170c --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Panels/Main/SbmMainPanel_Login.cs @@ -0,0 +1,260 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Mobile.Forms.Controls; +using Sarand.Core.Mobile.Utils; +using Sarand.Core.Tasks; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.App; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Core.Forms.Panels; +using Sarand.BusinessMgr.Mobile.Forms.Components; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; + +namespace Sarand.BusinessMgr.Mobile.Forms.Panels.Main +{ + //======================================================================= + public class SbmMainPanel_Login : SbmMainPanel + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SbmMainPanel.Config + { + } + + //------------------------------------------------------------------- + // Data members + private Config config; + private Image imageLogo = new Image(); + private SbmComponents_Login loginComponents = new SbmComponents_Login(); + private SbmGrid componentGrid = new SbmGrid(); + private SaxButton buttonLogin = new SaxButton() { Text = "Login" }; + + //------------------------------------------------------------------- + // Construction. + public SbmMainPanel_Login (Config config) : + base(config) + { + this.config = config; + InitialiseComponents(); + } + + //------------------------------------------------------------------- + // Properties. + public String Title { get; } = "Login"; + public SbmInstanceDefinition InstanceDefinition { get { return new App.App.SbmInstanceDefinition_App("Base", "http://169.254.80.80:34574/SaBusMgr"); } } + public String EmailAddress { get { return loginComponents.EntryEmail.Text; } } + private String Password { get { return loginComponents.EntryPassword.Text; } } + + //------------------------------------------------------------------- + // I n i t i l i a s e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control initialisation on construction. + protected void InitialiseComponents () + { + // Options grid. + Content = componentGrid; + componentGrid.BackgroundColor = SbmMobile.PageBackgroundColor; + componentGrid.Padding = new Thickness(4.0); + componentGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); + componentGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Star }); + componentGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); + + // Logo. + //componentGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + ////imageLogo.Source = SacsImageUtils.GetImageFromByteArray(SbmResourceConsole.GetImageResource(SbmResourceConsole.ImageResource.Logo_Solent_Stevedores_78_png)); + //imageLogo.Margin = new Thickness(0, 4, 0, 4); + //componentGrid.Children.Add(imageLogo, 0, gridRowIdx); + //Grid.SetColumnSpan(imageLogo, 2); + + // Email. + int gridRowIdx = componentGrid.RowDefinitions.Count; + gridRowIdx = componentGrid.RowDefinitions.Count; + componentGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + componentGrid.Children.Add(loginComponents.LabelEmail, 0, gridRowIdx); + componentGrid.Children.Add(loginComponents.EntryEmail, 1, gridRowIdx); + Grid.SetColumnSpan(loginComponents.EntryEmail, 2); + if (SacsSystem.DebugMode && StringUtil.IsEmpty(loginComponents.EntryEmail.Text)) loginComponents.EntryEmail.Text = "andy@sarand.com"; + + // Password. + gridRowIdx = componentGrid.RowDefinitions.Count; + componentGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + componentGrid.Children.Add(loginComponents.LabelPassword, 0, gridRowIdx); + componentGrid.Children.Add(loginComponents.EntryPassword, 1, gridRowIdx); + Grid.SetColumnSpan(loginComponents.EntryPassword, 2); + + // Login action button. + gridRowIdx = componentGrid.RowDefinitions.Count; + componentGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + buttonLogin.VerticalOptions = LayoutOptions.Start; + buttonLogin.Padding = new Thickness(4, 4); + buttonLogin.Clicked += ButtonLogin_Clicked; + componentGrid.Children.Add(buttonLogin, 2, gridRowIdx); + + componentGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Star }); + } + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control configuration that can be changed dynamically. + protected override void ConfigureComponents () + { + } + + //------------------------------------------------------------------- + // P a n e l A c t i o n s + //------------------------------------------------------------------- + private bool requestingUserProfile = false; + private SacsTaskData userProfileRequestTaskData; + private void ButtonLogin_Clicked (object sender, EventArgs e) + { + String fn = GetType().Name + ".ButtonLogin_Clicked"; + // Validate login properties. + SbmInstanceDefinition instanceDefinition = InstanceDefinition; + if (instanceDefinition == null) + { + DisplayAlert(Title, "Instance not specified.", "OK"); + return; + } + String emailAddress = EmailAddress; + if (StringUtil.IsEmpty(emailAddress)) + { + DisplayAlert(Title, "Please enter your email address.", "OK"); + return; + } + String password = Password; + // Request User Profile. + SacsTaskData taskData = (userProfileRequestTaskData = new SacsTaskData(null)); + requestingUserProfile = true; + SetControlActivity(); + Task.Run(async () => + { + try + { + SbmWebServiceClient.ItemDataResponseData responseData = + await RequestUserProfile(instanceDefinition, emailAddress, password, taskData); + // Interpret response. + Device.BeginInvokeOnMainThread(() => + { + ValidateUserProfile(responseData); + }); + } + catch (Exception exc) { if (SacsSystem.DebugMode) Logger.Warn(fn + " " + exc.GetLogMessage()); } + finally + { + requestingUserProfile = false; + Device.BeginInvokeOnMainThread(() => + { + SetControlActivity(); + }); + } + }, taskData.CancellationToken) + .ContinueWith((task) => + { + // Clear task data. + taskData.Dispose(); + if (userProfileRequestTaskData == taskData) userProfileRequestTaskData = null; + }); + } + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + private async Task RequestUserProfile (SbmInstanceDefinition instanceDefinition, String emailAddress, String password, SacsTaskData taskData) + { + // Configure Web Service request data. + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.UserProfile; + configRequest.RequestType = SbmWebServiceRequest.RequestType.Item; + configRequest.Context.InstanceDefinition = instanceDefinition; + configRequest.Context.Debug = SacsSystem.DebugMode; + // User filter. + Dictionary filter = new Dictionary(); + filter.Add("EmailAddress", emailAddress); + filter.Add("IncludeSecurityProfile", "true"); + // Request User profile. + return await webServiceClient.RequestItemData(configRequest, filter, taskData); + } + + //------------------------------------------------------------------- + private void ValidateUserProfile (SbmWebServiceClient.ItemDataResponseData responseData) + { + // Validate user. + if (responseData.Item == null) + { + String msg = "Unable to login to server"; + if (responseData.ResponseElement == null) + msg = "Unable to login - failed to communicate with server"; + DisplayAlert(Title, msg, "Close"); + return; + } + //Logger.Debug(SacsXmlUtil.FormatXml(responseData.ResponseDoc)); + + // Load user details to Sesion Profile. + if (!SbmGlobals_Mobile.SessionProfile.LoginUser(InstanceDefinition ,responseData.Item)) + { + DisplayAlert(Title, "Failed to load user profile.", "Close"); + return; + } + + OnSuccessfulLogin(); + } + + //------------------------------------------------------------------- + private void OnSuccessfulLogin () + { + // Inform listeners that login is done. + UserLoginEventArgs userLoginEventArgs = new UserLoginEventArgs() + { + DisplayName = this.EmailAddress + }; + if (UserLogin != null) UserLogin.Invoke(this, userLoginEventArgs); + } + // User Login event. + public class UserLoginEventArgs : EventArgs + { + public String DisplayName { get; set; } + public String Password { get; set; } + } + public event EventHandler UserLogin; + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + buttonLogin.IsEnabled = !requestingUserProfile; + } + protected override void SetControlsReadOnly () + { + } + + //------------------------------------------------------------------- + // P a n e l E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanging(propertyName); + } + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + } + //------------------------------------------------------------------- + protected override void OnSizeAllocated (double width, double height) + { + base.OnSizeAllocated(width, height); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Views/SbmMenuView.cs b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Views/SbmMenuView.cs new file mode 100644 index 0000000..ee31458 --- /dev/null +++ b/BusinessMgrMobile/BusinessMgrMobile/Mobile/Forms/Views/SbmMenuView.cs @@ -0,0 +1,137 @@ +using Sarand.Core.Mobile.Forms.Views; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Input; +using Xamarin.Forms; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; + +namespace Sarand.BusinessMgr.Mobile.Forms.Views +{ + //======================================================================= + public class SbmMenuView : SbmContentView + { + //------------------------------------------------------------------- + // Configuration. + public class OptionData + { + public String Caption { get; set; } + public bool Heading { get; set; } + public ICommand Command { get; set; } + public ImageSource ImageSource { get; set; } + } + + //------------------------------------------------------------------- + // Data members. + private SbmScrollView scrollView = new SbmScrollView(); + private SbmGrid menuGrid = new SbmGrid(); + + //------------------------------------------------------------------- + // Construction. + protected SbmMenuView () : base() + { + // Main view is scrollable to allow for mre options than space allows. + Content = scrollView; + BackgroundColor = SbmMobile.ApplicationBarBorderColor; + Padding = new Thickness(SbmMobile.MenuBorder, 0, 0, SbmMobile.MenuBorder); + + // Menu grid. + menuGrid.BackgroundColor = SbmMobile.MenuBackgroundColor; + menuGrid.Padding = new Thickness(4, 8); + menuGrid.RowSpacing = 2.0; + menuGrid.ColumnSpacing = 2.0; + menuGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(32) }); + menuGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Star }); + scrollView.Content = menuGrid; + } + + //------------------------------------------------------------------- + // Properties. + public virtual List MenuOptions { get; } + public double MenuHeight => menuGrid.Height + menuGrid.Padding.Top + menuGrid.Padding.Bottom + SbmMobile.MenuBorder; + + //------------------------------------------------------------------- + public void RefreshMenuOptions () + { + // Populate menu options. + menuGrid.Children.Clear(); + int gridRowIdx = -1; + foreach (OptionData option in MenuOptions) + { + gridRowIdx++; + menuGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + // Exclude options that cannot be executed. + if (!option.Heading && !(option.Command?.CanExecute(null) ?? false)) continue; + // Menu header background colour. + if (option.Heading) + { + SaxBoxView headerBackgroundView = new SaxBoxView() { BackgroundColor = SbmMobile.MenuHeaderBackgroundColor }; + menuGrid.Children.Add(headerBackgroundView, 0, gridRowIdx); + Grid.SetColumnSpan(headerBackgroundView, 2); + } + // Menu option image. + Image optionImage = null; + if (option.ImageSource != null) + { + optionImage = new Image() { Source = option.ImageSource, HeightRequest = 24, WidthRequest = 24 }; + menuGrid.Children.Add(optionImage, 0, gridRowIdx); + } + SbmLabel optionLabel = new SbmLabel() + { + Text = option.Caption, + HeightRequest = 24, + BackgroundColor = Color.Transparent + }; + if (option.Heading) + optionLabel.FontAttributes = FontAttributes.Bold; + menuGrid.Children.Add(optionLabel, 1, gridRowIdx); + if (option.Command != null) + { + var tapGestureRecognizer = new TapGestureRecognizer(); + tapGestureRecognizer.Tapped += MeunOption_Tapped; + tapGestureRecognizer.Tapped += (s, e) => { option.Command.Execute(null); InvokeMenuOptionClicked(); }; + optionLabel.GestureRecognizers.Add(tapGestureRecognizer); + if (optionImage != null) + optionImage.GestureRecognizers.Add(tapGestureRecognizer); + } + } + } + + private void MeunOption_Tapped (object sender, EventArgs e) + { + // Want to highlight option that has been tapped to reassure the user that it is being actioned. + // May need to add MenuOptionPanel across grid row to be able to idntify relevant label + // rather than relying on the label itself being tapped. + Element element = (sender as Element); + Label label = (sender as Label); + if (sender is Element) + { + var parent = element.Parent; // Grid. + if (label != null) + label.TextColor = Color.Red; + } + } + + //------------------------------------------------------------------- + // M e n u E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + RefreshMenuOptions(); + } + public class MenuOptionClickedEventArgs : EventArgs + { + } + public event EventHandler MenuOptionClicked; + protected void InvokeMenuOptionClicked () + { + if (MenuOptionClicked != null) MenuOptionClicked.Invoke(this, new MenuOptionClickedEventArgs() { }); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmCommand_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmCommand_Mobile.cs new file mode 100644 index 0000000..0ac4417 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmCommand_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + public class SbmCommand_Mobile : SbmCommand + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmCommand_Mobile (ExecuteFn executeFn, CanExecuteFn canExecuteFn = null) : + base(executeFn, canExecuteFn) + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmMobileApplication Application { get { return SbmGlobals_Mobile.Application; } } + public SbmMobile.Platform MobilePlatform { get { return Application.MobilePlatform; } } + // Session. + protected SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + // User. + protected SbmUserContext_Mobile UserContext { get { return SessionProfile.UserContext_Mobile; } } + protected SbmSecurityProfile SecurityProfile { get { return UserContext.SecurityProfile; } } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmConfigConsole_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmConfigConsole_Mobile.cs new file mode 100644 index 0000000..6b52a63 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmConfigConsole_Mobile.cs @@ -0,0 +1,19 @@ +using Sarand.BusinessMgr.Core.App; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + public class SbmConfigConsole_Mobile : SbmConfigConsole + { + //------------------------------------------------------------------- + // Construction. + protected SbmConfigConsole_Mobile (Sbm.ConfigConsole configConsole, SbmVersion consoleVersion, SbmSessionContext_Mobile sessionContext) : + base (configConsole, consoleVersion, sessionContext) + { + } + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmGlobals_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmGlobals_Mobile.cs new file mode 100644 index 0000000..a0c4f36 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmGlobals_Mobile.cs @@ -0,0 +1,22 @@ +using Sarand.BusinessMgr.Core.App; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + public static class SbmGlobals_Mobile + { + //------------------------------------------------------------------- + // Application. + public static SbmMobileApplication Application { get; set; } + + //------------------------------------------------------------------- + // Session Profile. + public static SbmSessionProfile_Mobile SessionProfile { get; set; } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmInstanceDefinition.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmInstanceDefinition.cs new file mode 100644 index 0000000..c38548d --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmInstanceDefinition.cs @@ -0,0 +1,35 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + public class SbmInstanceDefinition : SbmWebServiceInstanceDefinition + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + protected SbmInstanceDefinition () : + base("", "") + { + } + protected SbmInstanceDefinition (String caption, String url) : + base(caption, url) + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmMobile.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmMobile.cs new file mode 100644 index 0000000..14a5605 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmMobile.cs @@ -0,0 +1,125 @@ +using Sarand.Core.Mobile.App; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + // Colour references: + // http://www.html-color-names.com/skyblue.php + // http://www.html-color-names.com/lightsteelblue.php + //======================================================================= + public static class SbmMobile + { + //------------------------------------------------------------------- + // Definitions. + public enum Platform + { + Unknown = 0, + Android, + IOS, + Windows + } + public static String AppTitle { get; } = "Sarand BusinessMgr"; + // Utilities. + public static Random Random { get; } = new Random(); + + //------------------------------------------------------------------- + // Application. + public enum MainView + { + Unknown = 0, + // System. + Login, + Home, + // Accounts. + Customer, + Supplier, + } + + //------------------------------------------------------------------- + // Localisation. + public static CultureInfo CultureInfo { get; } = CultureInfo.CurrentCulture; + public static TextInfo TextInfo { get; } = CultureInfo.TextInfo; + + //------------------------------------------------------------------- + // Application styling. + public static double ApplicationBarHeight { get; } = 28; + public static Color ApplicationBarBackgroundColor { get; } = Color.FromHex("#558395"); + public static Color ApplicationBarTextColor { get; } = Color.FromHex("#f8f8f8"); + public static double ApplicationBarTextSizeRatio { get; } = 1.5; + public static Color ApplicationBarBorderColor { get; } = Color.DarkSlateBlue; + public static double ApplicationBarBorderBottom { get; } = 1.0; + // Menu. + public static Color MenuBorderColor { get; } = Color.DarkSlateBlue; + public static double MenuBorder { get; } = 1.0; + public static Color MenuBackgroundColor { get; } = Color.FromHex("#F0F0F0"); + public static Color MenuHeaderBackgroundColor { get; } = Color.FromHex("#E0E0E0"); + // Dynamic font sizing. + public static String HtmlFontSize + { + get + { + if (SaxApplication.MinDeviceDimension > 2000) return "14pt"; + if (SaxApplication.MinDeviceDimension > 1600) return "13pt"; + if (SaxApplication.MinDeviceDimension > 1200) return "12pt"; + if (SaxApplication.MinDeviceDimension > 1000) return "11pt"; + return "10pt"; + } + } + public static double FontSizeRatio + { + get + { + if (SaxApplication.MinDeviceDimension > 2000) return 1.75; + if (SaxApplication.MinDeviceDimension > 1600) return 1.50; + if (SaxApplication.MinDeviceDimension > 1200) return 1.25; + return 1.0; + } + } + // Pages. + public static Color PageCaptionBackgroundColor { get; } = Color.FromHex("#558395"); + public static double PageCaptionPaddingHorizontal { get; } = 4.0; + public static double PageCaptionPaddingVertical { get; } = 8.0; + public static Color PageCaptionTextColor { get; } = Color.FromHex("#f8f8f8"); + public static double PageCaptionTextSizeRatio { get; } = 1.25; + public static Color PageBaseColor { get; } = Color.FromHex("#c8e8f5"); + public static Color PageBackgroundColor { get; } = Color.FromHex("#e9f6fb"); + public static double PageBodyPaddingVerticalMin { get; } = 4.0; + public static double PageBodyPaddingHorizontalMin { get; } = 4.0; + public static double PageNavigationBorderTopWidth { get; } = 0.75; + public static double PageNavigationPaddingVertical { get; } = 4.0; + public static Color PageNavigationBorderColor { get; } = Color.FromHex("#808080"); + public static Color PageNavigationBackgroundColor { get; } = Color.FromHex("#e9f6fb"); + // Item List. + public static double ItemListHeaderBorderWidth { get; set; } = 2.0; + public static float ItemListHeaderBorderRadius = 6.0f; + public static Color ItemListHeaderBorderColor = ApplicationBarBackgroundColor; + public static Color ItemListHeaderBackgroundColor = Color.FromHex("#F0F0F0"); + // Forms. + public static Color FormBackgroundColor { get; } = Color.FromHex("#e9f6fb"); + public static double FormGridRowSpacing { get; } = 4.0; + public static double FormGridColumnSpacing { get; } = 4.0; + // Controls. + public static Color ControlBackgroundColor { get; } = Color.FromHex("#f8f8f8"); + public static Color ControlBorderColor { get; } = Color.FromHex("#f8f8f8"); + public static double ControlBorderWidth { get; } = 0.5; + public static Thickness LabelMargin { get; } = new Thickness(4.0, 8.0, 0, 0); + // Tab controls. + public static Color TabControlHeaderBackgroundColor { get; } = Color.Transparent; + public static Color TabControlCaptionBackgroundColor { get; } = Color.FromHex("#E0E0E0"); + public static Color TabControlBodyBackgroundColor { get; } = Color.FromHex("#F8F8F8"); + public static Thickness TabControlBodyPadding { get; } = new Thickness(4.0); + // Associated items panel. + public static Color AssociatedItemsCaptionBackgroundColor { get; } = Color.FromHex("#becee4"); + public static Color AssociatedItemsCaptionTextColor { get; } = Color.FromHex("#f8f8f8"); + public static double AssociatedItemsCaptionTextSizeRatio { get; } = 1.2; + public static Color AssociatedItemsBackgroundColor { get; } = Color.FromHex("#dbe4f0"); + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmMobileApplication.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmMobileApplication.cs new file mode 100644 index 0000000..ebc9333 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmMobileApplication.cs @@ -0,0 +1,101 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Mobile.Core.CodeTypes; +using Sarand.Core.Base; +using Sarand.Core.Mobile.App; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + public abstract class SbmMobileApplication : SaxApplication + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + protected SbmMobileApplication () + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmMobile.Platform MobilePlatform { get; protected set; } + public Page CurrentPage + { + get + { + return + MainPage.Navigation.ModalStack.LastOrDefault() + ?? MainPage.Navigation.NavigationStack.LastOrDefault() + ?? MainPage; + } + } + + //------------------------------------------------------------------- + // W e b S e r v i c e + //------------------------------------------------------------------- + public abstract Task IsWebServiceAlive (SbmInstanceDefinition instanceDefinition); + + //------------------------------------------------------------------- + // I n s t a n c e D e f i n i t i o n s + //------------------------------------------------------------------- + public SbmInstanceDefinition GetInstanceDefinition () + { + return SbmGlobals_Mobile.SessionProfile.InstanceDefinition; + } + public abstract void SetInstance (SbmInstanceDefinition instanceDefinition); + + //------------------------------------------------------------------- + // P e r s i s t e n t S e s s i o n P r o p e r t i e s + //------------------------------------------------------------------- + public String DefaultDisplayName { get; set; } + public SbmInstanceDefinition DefaultInstanceDefinition { get; set; } + protected static String PropertyName_Context_Instance_Url { get; } = "Context-Instance-Url"; + protected static String PropertyName_Context_DisplayName { get; } = "Context-Name"; + public void RestorePersistentSessionProperties () + { + SbmSessionProfile_Mobile sessionProfile = SbmGlobals_Mobile.SessionProfile; + if (sessionProfile == null) return; + // Retrieve all session properties first before populating to session. + Object sessionInstanceUrl = Properties.GetValue(PropertyName_Context_Instance_Url, sessionProfile.InstanceDefinition != null ? sessionProfile.InstanceDefinition.URL : ""); + Object sessionName = Properties.GetValue(PropertyName_Context_DisplayName, sessionProfile.DisplayName); + // Populate session properties. + // Instance definition. + //if (sessionInstanceUrl != null) + //{ + // string instanceUrl = sessionInstanceUrl.ToString(); + //foreach (SbmInstanceDefinition instanceDefinition in GetInstanceDefinitions()) + //{ + // if (!instanceDefinition.URL.Equals(instanceUrl)) continue; + // DefaultInstanceDefinition = instanceDefinition; + //} + //} + // User. + if (sessionName != null) DefaultDisplayName = sessionName.ToString(); + //if (sessionEmail != null) DefaultEmailAddress = sessionEmail.ToString(); + } + public void StorePersistentSessionProperties () + { + SbmSessionProfile_Mobile sessionProfile = SbmGlobals_Mobile.SessionProfile; + if (sessionProfile == null) return; + Properties[PropertyName_Context_DisplayName] = sessionProfile.DisplayName; + } + + //------------------------------------------------------------------- + // C o n s o l e s + //------------------------------------------------------------------- + public abstract SbmCodeTypeConsole_Mobile CodeTypeConsole { get; } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmSecurityProfile_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmSecurityProfile_Mobile.cs new file mode 100644 index 0000000..8cc8526 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmSecurityProfile_Mobile.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Security; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + public class SbmSecurityProfile_Mobile : SbmSecurityProfile + { + //------------------------------------------------------------------- + // Base security profile - for raw User and Computer Security Groups and Rights. + protected class SaSecurityProfile_Mobile : SaSecurityProfile + { + public class GroupData_Mobile : GroupData + { + public GroupData_Mobile (SbmWebServiceItemData securityGroup) + { + GroupId = securityGroup.GetIdValue("Id"); + GroupCode = securityGroup.GetValue("AffiliateId"); + GroupDesc = securityGroup.GetValue("Description"); + } + } + public class RightData_Mobile : RightData + { + public RightData_Mobile (SbmWebServiceItemData securityRight) + { + RightId = securityRight.GetIdValue("Id"); + RightCode = securityRight.GetValue("Code"); + RightDesc = securityRight.GetValue("Description"); + DataItemId = securityRight.GetIdValue("ItemIdContext"); + Granted = securityRight.GetBoolValue("Granted"); + } + } + public SaSecurityProfile_Mobile () + { + // Blank profile. + } + public SaSecurityProfile_Mobile (SbmWebServiceItemData securityItem) + { + // Security item properties. + Id = securityItem.GetIdValue("Id"); + SecurityItemType = EnumUtil.ParseEnum(securityItem.GetValue("ItemType"), SaSecurity.ItemType.Unknown); + Code = securityItem.GetValue("Code"); + EmailAddress = securityItem.GetValue("EmailAddress"); + Description = securityItem.GetValue("Description"); + Location = securityItem.GetValue("Location"); + LastLogin = securityItem.GetDateValue("LastLogin"); + + // Security Groups. + if (securityItem.ChildItems.ContainsKey("SecurityGroupList")) + { + foreach (SbmWebServiceItemData securityGroup in securityItem.ChildItems["SecurityGroupList"]) + { + GroupData_Mobile groupData = new GroupData_Mobile(securityGroup); + foreach (SbmWebServiceItemData securityRight in securityGroup.ChildItems["SecurityRightList"]) + groupData.rights.Add(new RightData_Mobile(securityRight)); + securityGroups.Add(groupData); + } + } + // Security Rights. + foreach (SbmWebServiceItemData securityRight in securityItem.ChildItems["SecurityRightList"]) + securityRights.Add(new RightData_Mobile(securityRight)); + } + } + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmSecurityProfile_Mobile () : base(null, false) + { + } + + //------------------------------------------------------------------- + // Properties. + public bool ValidProfile { get { return SysId.IsValid(UserId); } } + + //------------------------------------------------------------------- + // Refresh profile. + public bool RefreshProfile (SbmWebServiceItemData securityItem) + { + String fn = GetType().Name + ".RefreshProfile"; + ClearErrorState(); + + // Session context. + SysId previousUserId = UserId; + + // Construct User Security Profile. + SaSecurityProfile userProfile = new SaSecurityProfile_Mobile(securityItem); + UserId = SysId.InvalidOnNull(userProfile.Id); + Logger.Debug(fn + " User: '" + UserDisplayName + "' [Id: " + UserId + "]" + (SysId.IsValid(previousUserId) ? ". Previous UserId: " + SysId.ToString(previousUserId) : "")); + RefreshProfile(userProfile, null); + return SysId.IsValid(UserId) && SysId.InvalidOnNull(UserId).Equals(SysId.InvalidOnNull(userProfile.Id)); + } + + //------------------------------------------------------------------- + // Clear profile. + public bool ClearProfile () + { + String fn = GetType().Name + ".ClearProfile"; + ClearErrorState(); + // Construct User Security Profile. + SaSecurityProfile userProfile = new SaSecurityProfile_Mobile(); + UserId = new SysId(); + RefreshProfile(userProfile, null); + if (SacsSystem.DebugMode) Logger.Debug(fn + " User logged out"); + return !ValidProfile; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmSessionContext_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmSessionContext_Mobile.cs new file mode 100644 index 0000000..871e069 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmSessionContext_Mobile.cs @@ -0,0 +1,33 @@ +using Sarand.BusinessMgr.Core.App; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + public class SbmSessionContext_Mobile : SbmSessionContext + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + protected SbmSessionContext_Mobile () : base(0) + { + //instanceDefinition = instanceDefinition ?? new SlmInstanceDefinition_Mobile(); + //Instance = (instanceDefinition != null ? instanceDefinition.Instance : Sbm.Instance.Unknown); + //InstanceDefinition = instanceDefinition; + } + + //------------------------------------------------------------------- + // Properties. + public SbmInstanceDefinition InstanceDefinition { get; protected set; } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmSessionProfile_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmSessionProfile_Mobile.cs new file mode 100644 index 0000000..61d58a5 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmSessionProfile_Mobile.cs @@ -0,0 +1,107 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.Core.Bus; +using System; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + public class SbmSessionProfile_Mobile : SbmSessionProfile + { + //------------------------------------------------------------------- + // Definitions. + // TODO - required formal parameter sessioncontext. + private class SbmUserContext_Mobile_Internal : SbmUserContext_Mobile + { + public SbmUserContext_Mobile_Internal (SbmSessionContext sessionContext) : + base(sessionContext) + { + } + internal void SetInstanceDefinition (SbmInstanceDefinition InstanceDefinition) + { + sessionContext_Mobile.SetInstanceDefinition(InstanceDefinition); + } + // Refresh user. + internal void RefreshUser (SbmWebServiceItemData securityItem) + { + // Populate User details. + userData_Mobile.Refresh(securityItem); + // Populate Security Profile. + SecurityProfile_Mobile.RefreshProfile(securityItem); + } + internal void LogoutUser () + { + userData_Mobile.Clear(); + SecurityProfile_Mobile.ClearProfile(); + } + } + + //------------------------------------------------------------------- + // Data members. + private readonly SbmUserContext_Mobile_Internal userContext_Local; + + //------------------------------------------------------------------- + // Construction. + protected SbmSessionProfile_Mobile (SbmSessionContext sessionContext) : + base (sessionContext) + { + userContext_Local = new SbmUserContext_Mobile_Internal(sessionContext); + } + + //------------------------------------------------------------------- + // Properties. + // Session. + public SbmSessionContext_Mobile SessionContext_Mobile { get { return userContext_Local.SessionContext_Mobile; } } + public SbmInstanceDefinition InstanceDefinition + { + get { return SessionContext_Mobile.InstanceDefinition; } + protected set { userContext_Local.SetInstanceDefinition(value); } + } + // User. + public SbmUserContext_Mobile UserContext_Mobile { get { return userContext_Local; } } + public SysId SecItemId { get { return userContext_Local.User.SecItemId; } } + public SysId AffiliateId { get { return userContext_Local.User.AffiliateId; } } + public String DisplayName { get { return userContext_Local.User.DisplayName; } } + + //------------------------------------------------------------------- + // U s e r S e s s i o n + //------------------------------------------------------------------- + public bool LoginUser (SbmInstanceDefinition instanceDefinition ,SbmWebServiceItemData securityItem) + { + userContext_Local.RefreshUser(securityItem); + SbmGlobals_Mobile.Application.SetInstance(instanceDefinition); + return UserContext_Mobile.ValidUser; + } + public bool LogoutUser () + { + userContext_Local.LogoutUser(); + return !(UserContext.ValidUser); + } + + //------------------------------------------------------------------- + // S e s s i o n P r o f i l e E v e n t s + //------------------------------------------------------------------- + public enum ModifiedProperty + { + EmailAddress, + } + public class PropertyModifiedEventArgs : EventArgs + { + public ModifiedProperty Property { get; set; } + } + public delegate void ModifiedEventHandler (object sender, PropertyModifiedEventArgs e); + public event ModifiedEventHandler PropertyModified; + private void OnPropertyModified (ModifiedProperty property) + { + if (PropertyModified != null) PropertyModified.Invoke(this, new PropertyModifiedEventArgs() { Property = property }); + } + + public override bool SetSelectedOwner (SysId affiliateId) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/App/SbmUserContext_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/App/SbmUserContext_Mobile.cs new file mode 100644 index 0000000..300333b --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/App/SbmUserContext_Mobile.cs @@ -0,0 +1,62 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.App +{ + //======================================================================= + public class SbmUserContext_Mobile : SbmUserContext + { + //------------------------------------------------------------------- + // Definitions. + protected class UserData_Mobile : UserData + { + public void Refresh (SbmWebServiceItemData securityItem) + { + SecItemId = securityItem.GetIdValue("Id"); + AffiliateId = securityItem.GetIdValue("AffiliateId"); + DisplayName = securityItem.GetValue("Description"); + } + public void Clear () + { + SecItemId = new Sarand.Core.Bus.SysId(); + AffiliateId = new Sarand.Core.Bus.SysId(); + DisplayName = ""; + } + } + protected class SbmSessionContext_Mobile_Internal : SbmSessionContext_Mobile + { + public SbmSessionContext_Mobile_Internal () : base() { } + public void SetInstanceDefinition (SbmInstanceDefinition instanceDefinition) + { + InstanceDefinition = instanceDefinition; + //Instance = instanceDefinition?.Instance ?? Sbm.Instance.Unknown; + } + } + + //------------------------------------------------------------------- + // Data members. + protected readonly SbmSessionContext_Mobile_Internal sessionContext_Mobile; + protected readonly UserData_Mobile userData_Mobile; + + //------------------------------------------------------------------- + // Construction - use derived objects. + public SbmUserContext_Mobile (SbmSessionContext sessioncontext) : + base (sessioncontext) + { + SessionContext = (sessionContext_Mobile = new SbmSessionContext_Mobile_Internal()); + userData_Mobile = new UserData_Mobile(); + SecurityProfile = (SecurityProfile_Mobile = new SbmSecurityProfile_Mobile()); + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionContext_Mobile SessionContext_Mobile { get { return sessionContext_Mobile; } } + protected SbmSecurityProfile_Mobile SecurityProfile_Mobile { get; } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmAddress_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAddress_Mobile.cs new file mode 100644 index 0000000..3512fb0 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAddress_Mobile.cs @@ -0,0 +1,43 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmAddress_Mobile : SbmAddress + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmAddress_Mobile (SbmUserContext userContext, SysId id, Sbm.ItemType itemType, SysId itemId, Sbm.AddressType addressType, ushort flags) : + base (userContext, id, itemType, itemId, addressType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override bool HasInterfaceDataItems () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmAffiliate_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAffiliate_Mobile.cs new file mode 100644 index 0000000..b2152d8 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAffiliate_Mobile.cs @@ -0,0 +1,78 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmAffiliate_Mobile : SbmAffiliate + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmAffiliate_Mobile (SbmUserContext userContext, SysId id, Sbm.AffiliateType affiliateType, ushort flags) : + base (userContext, id, affiliateType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override long GetChildAffiliates () + { + throw new NotImplementedException(); + } + + public override bool HasChildAffiliates () + { + throw new NotImplementedException(); + } + + public override bool HasDiaryLinks () + { + throw new NotImplementedException(); + } + + public override bool HasSystemUsers () + { + throw new NotImplementedException(); + } + + public override bool OwnerOfAssociations (Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool currentOnly = true) + { + throw new NotImplementedException(); + } + + public override long OwnerOfAssociationsCount (Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool currentOnly = true) + { + throw new NotImplementedException(); + } + + public override bool TargetOfAssociations (Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool currentOnly = true) + { + throw new NotImplementedException(); + } + + public override long TargetOfAssociationsCount (Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool currentOnly = true) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmAssetCategory_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAssetCategory_Mobile.cs new file mode 100644 index 0000000..3e934f8 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAssetCategory_Mobile.cs @@ -0,0 +1,63 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmAssetCategory_Mobile : SbmAssetCategory + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmAssetCategory_Mobile (SbmUserContext userContext, SysId id, ushort flags) : + base(userContext, id) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override bool CommitProcesses () + { + throw new NotImplementedException(); + } + + public override List GetProcesses (bool bActiveOnly) + { + throw new NotImplementedException(); + } + + public override bool HasAssets () + { + throw new NotImplementedException(); + } + + public override bool HasProcesses () + { + throw new NotImplementedException(); + } + + public override bool SetProcesses (List itemProcessesNew) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmAssetProcess_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAssetProcess_Mobile.cs new file mode 100644 index 0000000..d73dcc0 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAssetProcess_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmAssetProcess_Mobile : SbmAssetProcess + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmAssetProcess_Mobile (SbmUserContext userContext, SysId id, SysId assetId, SysId processId, ushort flags) : + base(userContext, id, assetId, processId) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmAsset_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAsset_Mobile.cs new file mode 100644 index 0000000..e8237c0 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAsset_Mobile.cs @@ -0,0 +1,98 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmAsset_Mobile : SbmAsset + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmAsset_Mobile (SbmUserContext userContext, SysId id, SysId assetCatId, ushort flags) : + base (userContext, id, assetCatId) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override bool CommitPrices () + { + throw new NotImplementedException(); + } + + public override bool CommitProcesses () + { + throw new NotImplementedException(); + } + + public override List GetPrices () + { + throw new NotImplementedException(); + } + + public override List GetProcesses (bool bActiveOnly) + { + throw new NotImplementedException(); + } + + public override bool HasAssociatedDetails () + { + throw new NotImplementedException(); + } + + public override bool HasInterfaceDataItems () + { + throw new NotImplementedException(); + } + + public override bool HasPrices () + { + throw new NotImplementedException(); + } + + public override bool HasProcesses () + { + throw new NotImplementedException(); + } + + public override bool HasRequirements () + { + throw new NotImplementedException(); + } + + public override bool PopulateDefaultProcesses () + { + throw new NotImplementedException(); + } + + public override bool SetPrices (List itemPricesNew) + { + throw new NotImplementedException(); + } + + public override bool SetProcesses (List itemProcessesNew) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmAssociation_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAssociation_Mobile.cs new file mode 100644 index 0000000..1718245 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmAssociation_Mobile.cs @@ -0,0 +1,58 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmAssociation_Mobile : SbmAssociation + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmAssociation_Mobile (SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.AssociationType associationType, SysId affiliateIdTarget, ushort flags) : + base(userContext, id, affiliateIdOwner, associationType, affiliateIdTarget) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override bool HasConstituents () + { + throw new NotImplementedException(); + } + + public override bool HasRequirements () + { + throw new NotImplementedException(); + } + + public override bool HasTransactions () + { + throw new NotImplementedException(); + } + + public override bool IsDeliveryContractor () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmCommodityCustomer_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmCommodityCustomer_Mobile.cs new file mode 100644 index 0000000..5b3a4e4 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmCommodityCustomer_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmCommodityCustomer_Mobile : SbmCommodityCustomer + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmCommodityCustomer_Mobile (SbmUserContext userContext, SysId commodityId, SysId assocIdCustomer, ushort flags) : + base(userContext, commodityId, assocIdCustomer) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmCommoditySupplier_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmCommoditySupplier_Mobile.cs new file mode 100644 index 0000000..2b589b2 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmCommoditySupplier_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmCommoditySupplier_Mobile : SbmCommoditySupplier + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmCommoditySupplier_Mobile (SbmUserContext userContext, SysId commodityId, SysId assocIdSupplier, ushort flags) : + base(userContext, commodityId, assocIdSupplier) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmCommodity_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmCommodity_Mobile.cs new file mode 100644 index 0000000..ed29d55 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmCommodity_Mobile.cs @@ -0,0 +1,118 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmCommodity_Mobile : SbmCommodity + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmCommodity_Mobile (SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.CommodityType commodityType, String code, ushort flags) : + base (userContext, id, affiliateIdOwner, commodityType, code) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override bool CommitCostEstimates () + { + throw new NotImplementedException(); + } + + public override bool CommitProcesses () + { + throw new NotImplementedException(); + } + + public override List GetCostEstimates () + { + throw new NotImplementedException(); + } + + public override List GetProcesses (bool bActiveOnly = false) + { + throw new NotImplementedException(); + } + + public override bool HasComponents () + { + throw new NotImplementedException(); + } + + public override bool HasContainers () + { + throw new NotImplementedException(); + } + + public override bool HasCustomerDetails () + { + throw new NotImplementedException(); + } + + public override bool HasMovements () + { + throw new NotImplementedException(); + } + + public override bool HasPortfolioItems () + { + throw new NotImplementedException(); + } + + public override bool HasProcesses () + { + throw new NotImplementedException(); + } + + public override bool HasRequirements () + { + throw new NotImplementedException(); + } + + public override bool HasStockLevels () + { + throw new NotImplementedException(); + } + + public override bool HasSupplierDetails () + { + throw new NotImplementedException(); + } + + public override bool IsSalesBudgetTemplate () + { + throw new NotImplementedException(); + } + + public override bool SetCostEstimates (List costEstimatesNew) + { + throw new NotImplementedException(); + } + + public override bool SetProcesses (List itemProcessesNew) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmConstituent_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmConstituent_Mobile.cs new file mode 100644 index 0000000..5976b8d --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmConstituent_Mobile.cs @@ -0,0 +1,38 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmConstituent_Mobile : SbmConstituent + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmConstituent_Mobile (SbmUserContext userContext, SysId id, SysId affIdOwner, SysId assocId, Sbm.ConstituentType constituentType, ushort flags) : + base(userContext, id, affIdOwner, assocId, constituentType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool HasConstituents () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmContainerItem_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmContainerItem_Mobile.cs new file mode 100644 index 0000000..53a713e --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmContainerItem_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmContainerItem_Mobile : SbmContainerItem + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmContainerItem_Mobile (SbmUserContext userContext, SysId containerId, Sbm.ItemType itemType, SysId itemId, ushort flags) : + base (userContext, containerId, itemType, itemId) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmContainer_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmContainer_Mobile.cs new file mode 100644 index 0000000..18f7640 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmContainer_Mobile.cs @@ -0,0 +1,48 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmContainer_Mobile : SbmContainer + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmContainer_Mobile (SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.ContainerCategory containerCategory, Sbm.ContainerType containerType, ushort flags) : + base(userContext, id, affiliateIdOwner, containerCategory, containerType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool HasActionedMovements () + { + throw new NotImplementedException(); + } + + public override bool HasItems () + { + throw new NotImplementedException(); + } + + public override bool HasMovements () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmItemBatch_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmItemBatch_Mobile.cs new file mode 100644 index 0000000..478f881 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmItemBatch_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmItemBatch_Mobile : SbmItemBatch + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmItemBatch_Mobile (SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.ItemBatchType itemBatchType, String refs, ushort flags) : + base(userContext, id, affiliateIdOwner, itemBatchType, refs) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmItemLink_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmItemLink_Mobile.cs new file mode 100644 index 0000000..3cc8fdf --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmItemLink_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmItemLink_Mobile : SbmItemLink + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmItemLink_Mobile (SbmUserContext userContext, SysId id, Sbm.ItemLinkType itemLinkType, Sbm.ItemType itemTypeFrom, SysId itemIdFrom, Sbm.ItemType itemTypeTo, SysId itemIdTo, ushort flags) : + base(userContext, id, itemLinkType, itemTypeFrom, itemIdFrom, itemTypeTo, itemIdTo) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmItemProcess_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmItemProcess_Mobile.cs new file mode 100644 index 0000000..82272c0 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmItemProcess_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmItemProcess_Mobile : SbmItemProcess + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmItemProcess_Mobile (SbmUserContext userContext, Sbm.ItemType itemType, SysId itemId, SysId processId, ushort flags) : + base(userContext, itemType, itemId, processId) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmLocation_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmLocation_Mobile.cs new file mode 100644 index 0000000..0f1802b --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmLocation_Mobile.cs @@ -0,0 +1,42 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmLocation_Mobile : SbmLocation + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmLocation_Mobile (SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.LocationCategory locationCategory, ushort flags) : + base (userContext, id, affiliateIdOwner, locationCategory) + { + Flags = flags; + } + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool HaveMovement () + { + throw new NotImplementedException(); + } + + public override bool HaveStockLevel () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmMovement_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmMovement_Mobile.cs new file mode 100644 index 0000000..0841d80 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmMovement_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmMovement_Mobile : SbmMovement + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmMovement_Mobile (SbmUserContext userContext, SysId id, Sbm.ItemType itemType, SysId itemId, Sbm.MovementType movementType, ushort flags) : + base(userContext, id, itemType, itemId, movementType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmPortfolioItem_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmPortfolioItem_Mobile.cs new file mode 100644 index 0000000..c939d46 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmPortfolioItem_Mobile.cs @@ -0,0 +1,58 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmPortfolioItem_Mobile : SbmPortfolioItem + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmPortfolioItem_Mobile (SbmUserContext userContext, SysId id, SysId affiliateIdOwner, Sbm.PortfolioItemType portfolioItemType, ushort flags) : + base(userContext, id, affiliateIdOwner, portfolioItemType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearChildItems () + { + throw new NotImplementedException(); + } + + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override long GetChildItemCount (Sbm.PortfolioItemType portfolioItemType = Sbm.PortfolioItemType.Unknown) + { + throw new NotImplementedException(); + } + + public override bool HasChildItems () + { + throw new NotImplementedException(); + } + + public override bool IsReferencedByOtherItems () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmPriceSet_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmPriceSet_Mobile.cs new file mode 100644 index 0000000..b34ffe3 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmPriceSet_Mobile.cs @@ -0,0 +1,38 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmPriceSet_Mobile : SbmPriceSet + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmPriceSet_Mobile (SbmUserContext userContext, SysId id, SysId affiliateIdOwner, String reference, Sbm.PriceType priceType, ushort flags) : + base(userContext, id, affiliateIdOwner, reference, priceType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool HasPrices () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmPrice_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmPrice_Mobile.cs new file mode 100644 index 0000000..7d91852 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmPrice_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmPrice_Mobile : SbmPrice + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmPrice_Mobile (SbmUserContext userContext, SysId priceSetId, SysId commodityId, Sbm.PriceType priceType, ushort flags) : + base(userContext, priceSetId, commodityId, priceType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmProcess_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmProcess_Mobile.cs new file mode 100644 index 0000000..0eb9b30 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmProcess_Mobile.cs @@ -0,0 +1,83 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmProcess_Mobile : SbmProcess + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmProcess_Mobile (SbmUserContext userContext, SysId id, SysId affIdOwner, Sbm.ProcessCategory processCategory, ushort flags) : + base(userContext, id, affIdOwner, processCategory) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearAssociatedData () + { + throw new NotImplementedException(); + } + + public override bool ClearCostCodes (SbmProcessCostCode processCostCode) + { + throw new NotImplementedException(); + } + + public override bool ClearCostCodes () + { + throw new NotImplementedException(); + } + + public override string GetCodeForCostCode (SbmProcessCostCode processCostCode) + { + throw new NotImplementedException(); + } + + public override List GetCostCodes (SbmProcessCostCode processCostCode) + { + throw new NotImplementedException(); + } + + public override bool HasCostCodes () + { + throw new NotImplementedException(); + } + + public override bool HasCostCodes (SbmProcessCostCode processCostCode) + { + throw new NotImplementedException(); + } + + public override bool HasItemData () + { + throw new NotImplementedException(); + } + + public override bool HasReferences () + { + throw new NotImplementedException(); + } + + public override bool StoreCostCodes (SbmProcessCostCode processCostCode, List costCodes) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmRequirement_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmRequirement_Mobile.cs new file mode 100644 index 0000000..4969c1a --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmRequirement_Mobile.cs @@ -0,0 +1,117 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmRequirement_Mobile : SbmRequirement + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmRequirement_Mobile (SbmUserContext userContext, SysId id, SysId affIdOwner, SysId assocId, SysId transId, Sbm.RequirementType requirementType, ushort flags) : + base(userContext, id, affIdOwner, assocId, transId, requirementType) + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearAssociatedRequirements () + { + throw new NotImplementedException(); + } + + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override bool CommitAssociatedData () + { + throw new NotImplementedException(); + } + + public override bool CommitCostEstimates () + { + throw new NotImplementedException(); + } + + public override bool CommitProcesses () + { + throw new NotImplementedException(); + } + + public override List GetCostEstimates () + { + throw new NotImplementedException(); + } + + public override List GetProcesses () + { + throw new NotImplementedException(); + } + + public override decimal GetQuantityDispatched (SysId transIdExclude) + { + throw new NotImplementedException(); + } + + public override decimal GetQuantityInvoiced (SysId transIdExclude) + { + throw new NotImplementedException(); + } + + public override bool HasConstituents (Sbm.ConstituentType constituentType) + { + throw new NotImplementedException(); + } + + public override bool HasCostEstimates () + { + throw new NotImplementedException(); + } + + public override bool HasItemLinks () + { + throw new NotImplementedException(); + } + + public override bool HasProcess () + { + throw new NotImplementedException(); + } + + public override bool HasRequirements () + { + throw new NotImplementedException(); + } + + public override bool HasStockMovments () + { + throw new NotImplementedException(); + } + + public override bool SetCostEstimates (List costEstimatesNew) + { + throw new NotImplementedException(); + } + + public override bool SetProcesses (List itemProcessesNew) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmSysParam_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmSysParam_Mobile.cs new file mode 100644 index 0000000..4d20edc --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmSysParam_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmSysParam_Mobile : SbmSysParam + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmSysParam_Mobile (SbmUserContext userContext, SysId id, Sbm.SysParamCategory category, String name, ushort flags) : + base (userContext, id, category, name) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmSystemAccountUser_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmSystemAccountUser_Mobile.cs new file mode 100644 index 0000000..4677004 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmSystemAccountUser_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmSystemAccountUser_Mobile : SbmSystemAccountUser + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmSystemAccountUser_Mobile (SbmUserContext userContext, SysId accountId, SysId userId, ushort flags) : + base (userContext, accountId, userId) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmSystemAccount_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmSystemAccount_Mobile.cs new file mode 100644 index 0000000..8fb90d3 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmSystemAccount_Mobile.cs @@ -0,0 +1,38 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmSystemAccount_Mobile : SbmSystemAccount + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmSystemAccount_Mobile (SbmUserContext userContext, SysId id, SysId affIdOwner, Sbm.SystemAccountType systemAccountType, SysId interfaceId, SysId assocId, ushort flags) : + base (userContext, id, affIdOwner, systemAccountType, interfaceId, assocId) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool HasUsers () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmSystemUser_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmSystemUser_Mobile.cs new file mode 100644 index 0000000..dd247d3 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmSystemUser_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmSystemUser_Mobile : SbmSystemUser + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmSystemUser_Mobile (SbmUserContext userContext, SysId id, SysId affIdOwner, SysId interfaceId, SysId affiliateId, ushort flags) : + base(userContext, id, affIdOwner, interfaceId, affiliateId) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmTransaction_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmTransaction_Mobile.cs new file mode 100644 index 0000000..5f287c0 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmTransaction_Mobile.cs @@ -0,0 +1,129 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmTransaction_Mobile : SbmTransaction + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmTransaction_Mobile (SbmUserContext userContext, SysId id, SysId affIdOwner, SysId assocId, Sbm.TransactionType transactionType, ushort flags) : + base(userContext, id, affIdOwner, assocId, transactionType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override bool CommitAssociatedData () + { + throw new NotImplementedException(); + } + + public override bool CommitPayments () + { + throw new NotImplementedException(); + } + + public override bool DetailsAreReadOnly () + { + throw new NotImplementedException(); + } + + public override List GetPayments () + { + throw new NotImplementedException(); + } + + public override long GetRequirementCount (SbmRequirement.StatusCat requirementStatusCat = SbmRequirement.StatusCat.Any) + { + throw new NotImplementedException(); + } + + public override List GetRequirements (SbmRequirement.StatusCat requirementStatusCat = SbmRequirement.StatusCat.Any) + { + throw new NotImplementedException(); + } + + public override bool HasConstituents (SbmConstituent.StatusCat constituentStatusCat = SbmConstituent.StatusCat.NotDeleted) + { + throw new NotImplementedException(); + } + + public override bool HasContainerItems () + { + throw new NotImplementedException(); + } + + public override bool HasDiaryLinks () + { + throw new NotImplementedException(); + } + + public override bool HasPayments () + { + throw new NotImplementedException(); + } + + public override bool HasPendingStockMovements () + { + throw new NotImplementedException(); + } + + public override bool HasRequirements (SbmRequirement.StatusCat requirementStatusCat = SbmRequirement.StatusCat.NotDeleted) + { + throw new NotImplementedException(); + } + + public override bool HasStockMovements () + { + throw new NotImplementedException(); + } + + public override bool IsReadOnly () + { + throw new NotImplementedException(); + } + + public override bool IsReferencedByOtherTransactions () + { + throw new NotImplementedException(); + } + + public override bool ItemsRequireJobNumber () + { + throw new NotImplementedException(); + } + + public override bool SetPayments (List transactionPaymentsNew) + { + throw new NotImplementedException(); + } + + public override bool UpdateRequirements (List requirements) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicleClass_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicleClass_Mobile.cs new file mode 100644 index 0000000..d1da2fd --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicleClass_Mobile.cs @@ -0,0 +1,53 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmVehicleClass_Mobile : SbmVehicleClass + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmVehicleClass_Mobile (SbmUserContext userContext, SysId id, ushort flags) : + base(userContext, id) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override string ConstructCaption (string makeCode, string model, string derivative) + { + throw new NotImplementedException(); + } + + public override long GetVehicleCount () + { + throw new NotImplementedException(); + } + + public override bool HasVehicles () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicleEvent_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicleEvent_Mobile.cs new file mode 100644 index 0000000..0d1a961 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicleEvent_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmVehicleEvent_Mobile : SbmVehicleEvent + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmVehicleEvent_Mobile (SbmUserContext userContext, SysId vehicleId, Sbm.VehicleEventType vehicleEventType, ushort flags) : + base(userContext, vehicleId, vehicleEventType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicleFeature_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicleFeature_Mobile.cs new file mode 100644 index 0000000..7980c54 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicleFeature_Mobile.cs @@ -0,0 +1,34 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmVehicleFeature_Mobile : SbmVehicleFeature + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmVehicleFeature_Mobile (SbmUserContext userContext, SysId vehicleId, Sbm.VehicleFeatureSource vehicleFeatureSource, Sbm.VehicleFeatureType vehicleFeatureType, ushort flags) : + base(userContext, vehicleId, vehicleFeatureSource, vehicleFeatureType) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicle_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicle_Mobile.cs new file mode 100644 index 0000000..dee11c0 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Bus/SbmVehicle_Mobile.cs @@ -0,0 +1,83 @@ +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.Core.Bus; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Bus +{ + //======================================================================= + public class SbmVehicle_Mobile : SbmVehicle + { + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmVehicle_Mobile (SbmUserContext userContext, SysId id, ushort flags) : + base(userContext, id) + { + Flags = flags; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDependentData () + { + throw new NotImplementedException(); + } + + public override long GetFeatureCount () + { + throw new NotImplementedException(); + } + + public override bool HasAssets () + { + throw new NotImplementedException(); + } + + public override bool HasEvents () + { + throw new NotImplementedException(); + } + + public override bool HasFeatures () + { + throw new NotImplementedException(); + } + + public override bool HasInterfaceDataItems () + { + throw new NotImplementedException(); + } + + public override bool HasItemData () + { + throw new NotImplementedException(); + } + + public override bool HasProcesses () + { + throw new NotImplementedException(); + } + + public override bool HpiCheckCount () + { + throw new NotImplementedException(); + } + + public override bool SetOdometerReading (decimal odometer) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/CodeTypes/SbmCodeTypeConsole_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/CodeTypes/SbmCodeTypeConsole_Mobile.cs new file mode 100644 index 0000000..8b9db7b --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/CodeTypes/SbmCodeTypeConsole_Mobile.cs @@ -0,0 +1,527 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.CodeTypes; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Xml.Linq; + +namespace Sarand.BusinessMgr.Mobile.Core.CodeTypes +{ + //======================================================================= + public class SbmCodeTypeConsole_Mobile : SaCodeTypeConsole + { + //------------------------------------------------------------------- + // Data members. + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + private List codeTypes = new List(); + private Dictionary> codeTypeCodes = new Dictionary>(); + + //------------------------------------------------------------------- + // Construction. + public SbmCodeTypeConsole_Mobile () + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + public String DisplayName { get { return SessionProfile.DisplayName; } } + public override bool DatabaseIsValid { get { return true; } } + public override bool CanUpdateDatabase { get { return true; } } + public bool Populating { get; private set; } = false; + public bool Populated { get; private set; } = false; + + //------------------------------------------------------------------- + // R e f r e s h C o d e T y p e s + //------------------------------------------------------------------- + public class RefreshTaskData : SacsTaskData + { + // Construction. + public RefreshTaskData (CancellationToken? cancellationToken = null) : base(cancellationToken) { } + /// Code types received from Service. + public List CodeTypes { get; } = new List(); + public bool CodeTypesRequestComplete { get; set; } + /// Codes received from Service. + public List Codes { get; } = new List(); + public bool CodesRequestComplete { get; set; } + // Completion method. + public delegate void OnCompletionFn (RefreshTaskData refreshTaskData); + /// Method to call on completion. + public OnCompletionFn OnCompletion { get; set; } + } + private RefreshTaskData refreshTaskData = null; + public void RefreshCodeTypes () + { + String fn = GetType().Name + ".RefreshCodeTypes"; + Populated = false; + Populating = true; + + // Cancel previous refresh. + if (refreshTaskData != null) + { + refreshTaskData.TriggerCancellation(); + refreshTaskData = null; + } + + // Initialise fresh request. + refreshTaskData = new RefreshTaskData() + { + OnCompletion = ApplyRefreshedCodeTypeData + }; + + // Request Code Types and Codes from Service. + Task refreshCodeTypesTask = Task.Run(async () => + { + await RequestRefreshData(refreshTaskData); + }, refreshTaskData.CancellationToken); + } + private void ApplyRefreshedCodeTypeData (RefreshTaskData refreshTaskData) + { + String fn = GetType().Name + ".ApplyRefreshedCodeTypeData"; + // Ignore if cancelled. + if (refreshTaskData.IsCancellationRequested) + { + Logger.Debug(fn + " Refresh cancelled"); + return; + } + // Check that requests are completed. + if (!refreshTaskData.CodeTypesRequestComplete) + { + Logger.Debug(fn + " Code types request not completed"); + return; + } + if (!refreshTaskData.CodesRequestComplete) + { + Logger.Debug(fn + " Codes request not completed"); + return; + } + Logger.Info(fn + " Refreshing code types"); + // Compile codes by code type. + Dictionary> codeTypeCodes = new Dictionary>(); + foreach (SaCode saCode in refreshTaskData.Codes) + { + if (!codeTypeCodes.ContainsKey(saCode.CodeTypeId)) + codeTypeCodes[saCode.CodeTypeId] = new List(); + codeTypeCodes[saCode.CodeTypeId].Add(saCode); + } + // Refresh class data members - as instantaneously as possible. + codeTypes = refreshTaskData.CodeTypes; + this.codeTypeCodes = codeTypeCodes; + if (refreshTaskData.Debug) Logger.Debug(fn + " Code types: " + codeTypes.Count + ". Codes: " + codeTypeCodes.Count); + Populating = false; + Populated = true; + // Dispose the class refresh data. + if (this.refreshTaskData == refreshTaskData) + { + this.refreshTaskData.Dispose(); + this.refreshTaskData = null; + } + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetRequestConfig (SbmWebServiceRequest.DataType dataType, SbmWebServiceRequest.RequestType requestType, bool debug) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = dataType; + configRequest.RequestType = requestType; + configRequest.Context.User = DisplayName; + configRequest.Context.Debug = debug; + configRequest.SoapEnvelope = (SbmMobile.Random.Next(2) == 1); + configRequest.SoapPrefix = new List() { "", "SOAP", "soap", "S", "s" }[SbmMobile.Random.Next(5)]; + return configRequest; + } + + //------------------------------------------------------------------- + private async Task RequestRefreshData (RefreshTaskData refreshTaskData) + { + String fn = GetType().Name + ".RequestRefreshData"; + try + { + // Slight delay before refresh (in case of immediate cancellation). + await Task.Delay(250); + List tasks = new List(); + // Request code types and codes data simultaneously. + refreshTaskData.ThrowIfCancellationRequested(); + tasks.Add(RequestCodeTypes(refreshTaskData)); + refreshTaskData.ThrowIfCancellationRequested(); + tasks.Add(RequestCodes(refreshTaskData)); + // Wait for all tasks to complete. + Task.WaitAll(tasks.ToArray()); + } + catch (Exception exc) { Logger.Warn(fn + " " + exc.GetLogMessage()); } + if (this.refreshTaskData == refreshTaskData) this.refreshTaskData = null; + } + + //------------------------------------------------------------------- + private async Task RequestCodeTypes (RefreshTaskData taskData) + { + String fn = GetType().Name + ".RequestCodeTypes"; + taskData.ThrowIfCancellationRequested(); + + // Configure Web Service request data. + SbmWebServiceRequest.Config configRequest = GetRequestConfig(SbmWebServiceRequest.DataType.CodeType, SbmWebServiceRequest.RequestType.QueryList, taskData.Debug); + + // Code type filter. + Dictionary filter = new Dictionary(); + filter.Add("StatusCat", SaCodeType.StatusCat.Any.ToString()); + + // Code Type columns. + List codeTypeColumns = new List() + { + SaCodeType.Column.Id, + SaCodeType.Column.Code, + SaCodeType.Column.Description, + SaCodeType.Column.MaxCodeLen, + SaCodeType.Column.CodeFormat, + SaCodeType.Column.NextCode, + SaCodeType.Column.Notes, + SaCodeType.Column.Flags, + SaCodeType.Column.Status + }; + List columns = new List(); + foreach (SaCodeType.Column column in codeTypeColumns) + columns.Add(column.ToString()); + List sortColumns = new List(); + + // Request item list. + SbmWebServiceClient.QueryListResponseData responseData = + await webServiceClient.RequestQueryList(configRequest, filter, columns, sortColumns, taskData); + taskData.ThrowIfCancellationRequested(); + + foreach (SbmWebServiceItemData itemData in responseData.Items) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SaCodeType.Column.Id); + String code = itemData.GetValue(SaCodeType.Column.Code); + ushort flags = (ushort)itemData.GetIntValue(SaCodeType.Column.Flags); + // Create item. + SbmCodeType_Mobile saCodeType = new SbmCodeType_Mobile(id, code, flags); + // Populate item properties. + foreach (SaCodeType.Column column in codeTypeColumns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SaCodeType.Column.Description: saCodeType.Description = value; break; + case SaCodeType.Column.MaxCodeLen: saCodeType.MaxCodeLen = (byte)StringUtil.ToInt(value); break; + case SaCodeType.Column.CodeFormat: saCodeType.CodeFormat = value; break; + case SaCodeType.Column.NextCode: saCodeType.NextCode = value; break; + case SaCodeType.Column.Notes: saCodeType.Notes = value; break; + case SaCodeType.Column.Status: saCodeType.Status = SacsSystem.GetStatusForCode(value); break; + } + } + taskData.CodeTypes.Add(saCodeType); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Code types: " + taskData.CodeTypes.Count); + + // If not cancelled, invoke completion method. + if (taskData.OnCompletion != null && !taskData.IsCancellationRequested) + { + taskData.CodeTypesRequestComplete = true; + taskData.OnCompletion(taskData); + } + } + //------------------------------------------------------------------- + private async Task RequestCodes (RefreshTaskData taskData) + { + String fn = GetType().Name + ".RequestCodes"; + taskData.ThrowIfCancellationRequested(); + + // Configure Web Service request data. + SbmWebServiceRequest.Config configRequest = GetRequestConfig(SbmWebServiceRequest.DataType.Code, SbmWebServiceRequest.RequestType.QueryList, refreshTaskData.Debug); + + // Code filter. + Dictionary filter = new Dictionary(); + filter.Add("StatusCat", SaCode.StatusCat.Any.ToString()); + + // Code columns. + List codeColumns = new List() + { + SaCode.Column.Id, + SaCode.Column.CodeTypeId, + SaCode.Column.Code, + SaCode.Column.Description, + SaCode.Column.Sequence, + SaCode.Column.DataValue, + SaCode.Column.Notes, + SaCode.Column.Flags, + SaCode.Column.Status + }; + List columns = new List(); + foreach (SaCode.Column column in codeColumns) + columns.Add(column.ToString()); + List sortColumns = new List(); + + // Request item list. + SbmWebServiceClient.QueryListResponseData responseData = + await webServiceClient.RequestQueryList(configRequest, filter, columns, sortColumns, taskData); + taskData.ThrowIfCancellationRequested(); + + foreach (SbmWebServiceItemData itemData in responseData.Items) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SaCode.Column.Id); + SysId codeTypeId = itemData.GetIdValue(SaCode.Column.CodeTypeId); + String code = itemData.GetValue(SaCode.Column.Code); + ushort flags = (ushort)itemData.GetIntValue(SaCode.Column.Flags); + // Create item. + SbmCode_Mobile saCode = new SbmCode_Mobile(id, codeTypeId, code, flags); + // Populate item properties. + foreach (SaCode.Column column in codeColumns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SaCode.Column.Description: saCode.Description = value; break; + case SaCode.Column.DataValue: saCode.DataValue = value; break; + case SaCode.Column.Sequence: saCode.Sequence = (ushort)StringUtil.ToInt(value); break; + case SaCode.Column.Notes: saCode.Notes = value; break; + case SaCode.Column.Status: saCode.Status = SacsSystem.GetStatusForCode(value); break; + } + } + taskData.Codes.Add(saCode); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Codes: " + taskData.Codes.Count); + + // If not cancelled, invoke completion method. + if (taskData.OnCompletion != null && !taskData.IsCancellationRequested) + { + taskData.CodesRequestComplete = true; + taskData.OnCompletion(taskData); + } + } + + //------------------------------------------------------------------- + // C o d e T y p e D e f i n i t i o n s + //------------------------------------------------------------------- + public override SaCodeTypeDfn GetCodeTypeDefinition (SysId codeTypeId) + { + throw new NotImplementedException(); + } + + //******************************************************************* + // C o d e T y p e s + //******************************************************************* + public override bool CodeTypeExists (string codeTypeCode) + { + return codeTypes.Exists(item => item.Code.EqualsCI(codeTypeCode)); + } + public bool CodeTypeMatches (SaCodeType codeType, SaCodeType.Params prmCodeType) + { + if (prmCodeType.IncludedIds.Count > 0 && !prmCodeType.IncludedIds.Contains(codeType.Id)) return false; + if (prmCodeType.ExcludedIds.Count > 0 && prmCodeType.ExcludedIds.Contains(codeType.Id)) return false; + if (!StringUtil.IsEmpty(prmCodeType.Code) && !codeType.Code.EqualsCI(prmCodeType.Code)) return false; + if (!StringUtil.IsEmpty(prmCodeType.CodePartial) && !codeType.Code.ContainsCI(prmCodeType.CodePartial)) return false; + if (!StringUtil.IsEmpty(prmCodeType.Desc) && !codeType.Description.EqualsCI(prmCodeType.Desc)) return false; + if (!StringUtil.IsEmpty(prmCodeType.DescPartial) && !codeType.Description.ContainsCI(prmCodeType.DescPartial)) return false; + if (prmCodeType.StatusCat == SaCodeType.StatusCat.ActiveOnly && codeType.Status != SaCodeType.CurrentStatus) return false; + return true; + } + public override int GetCodeTypeCount (SaCodeType.Params prmCodeType) + { + return GetCodeTypeList(prmCodeType).Count; + } + public SysId GetCodeTypeId (SaCodeType.Params prmCodeType) + { + SaCodeType codeType = GetCodeType(prmCodeType); + return codeType?.Id ?? new SysId(); + } + public SysId GetCodeTypeId (String codeTypeCode) + { + SaCodeType codeType = codeTypes.Find(item => item.Code.EqualsCI(codeTypeCode)); + return codeType?.Id ?? new SysId(); + } + public override SaCodeType GetCodeType (SaCodeType.Params prmCodeType) + { + List codeTypesMatched = GetCodeTypeList(prmCodeType); + return codeTypesMatched.Count == 1 ? codeTypesMatched[0] : null; + } + public override List GetCodeTypeList (SaCodeType.Params prmCodeType) + { + return codeTypes.FindAll(item => CodeTypeMatches(item, prmCodeType)); + } + + //------------------------------------------------------------------- + // Code type list. + public override ColumnDfn GetCodeTypeColumnDfn (SaCodeType.Column columnId, string caption = "", int width = 0) + { + throw new NotImplementedException(); + } + public override DbResultSet ExecuteCodeTypeQuery (List columns, SaCodeType.Params prm) + { + throw new NotImplementedException(); + } + public override DataValue GetCodeTypeDataValue (ColumnDfn column, NamedValue.Map values) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Population. + public override bool PopulateCodeType (String codeTypeCode, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Maintain code types. + public override bool MaintainCodeTypes (bool userCanManageCodeTypes, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + public override bool MaintainCodeType (String codeTypeCode, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + //******************************************************************* + // C o d e s + //******************************************************************* + // Check whether code exists. + public override bool CodeExistsForCodeType (string codeTypeCode, string code, bool activeOnly = true) + { + SaCode.Params prmCode = new SaCode.Params(); + prmCode.CodeTypeCodes.Add(codeTypeCode); + prmCode.Code = code; + prmCode.StatusCat = (activeOnly ? SaCode.StatusCat.ActiveOnly : SaCode.StatusCat.Any); + return GetCodeCount(prmCode) == 1; + } + + //------------------------------------------------------------------- + // Codes for code type. + public override bool CodeTypeHasCodes (string codeTypeCode, bool activeOnly = true) + { + return GetCodeCountForCodeType(codeTypeCode, activeOnly) > 0; + } + public override int GetCodeCountForCodeType (string codeTypeCode, bool activeOnly = true) + { + return GetCodeListForCodeType(codeTypeCode, activeOnly).Count; + } + public override SaCode GetCodeForCodeType (string codeTypeCode, string code, bool activeOnly = true) + { + return GetCodeListForCodeType(codeTypeCode, activeOnly).Find(item => item.Code.EqualsCI(code)); + } + public override List GetCodeDescsForCodeType (string codeTypeCode, bool activeOnly = true) + { + List codes = new List(); + foreach (SaCode saCode in GetCodeListForCodeType(codeTypeCode, activeOnly)) + codes.Add(saCode.Code, saCode.Description); + return new List(); + } + public override List GetCodeListForCodeType (string codeTypeCode, bool activeOnly = true) + { + return codeTypeCodes.GetValue(GetCodeTypeId(codeTypeCode), new List()).FindAll(item => !activeOnly || item.Status == SaCode.ActiveStatus); + } + + //------------------------------------------------------------------- + // Code list. + public override ColumnDfn GetCodeColumnDfn (SaCode.Column columnId, string caption = "", int width = 0) + { + throw new NotImplementedException(); + } + public override DbResultSet ExecuteCodeQuery (List columns, SaCode.Params prm) + { + throw new NotImplementedException(); + } + public override DataValue GetCodeDataValue (ColumnDfn column, NamedValue.Map values) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Codes by filter. + public override int GetCodeCount (SaCode.Params prmCode) + { + return GetCodeList(prmCode).Count; + } + public override SaCode GetCode (SaCode.Params prmCode) + { + List codes = GetCodeList(prmCode); + return (codes.Count == 1 ? codes[0] : null); + } + public override List GetCodeList (SaCode.Params prmCode) + { + List saCodes = new List(); + // Filter Code Types. + foreach (SaCodeType codeType in codeTypes) + { + if (prmCode.CodeTypeIds.HasValidIds() && !prmCode.CodeTypeIds.Contains(codeType.Id)) continue; + if (prmCode.CodeTypeCodes.Count > 1 && !prmCode.CodeTypeCodes.ContainsCI(codeType.Code)) continue; + + // Code Type is valid - filter code for code types. + foreach (SaCode saCode in GetCodeListForCodeType(codeType.Code, prmCode.StatusCat == SaCode.StatusCat.ActiveOnly)) + { + if (prmCode.IncludedIds.Count > 0 && !prmCode.IncludedIds.Contains(saCode.Id)) continue; + if (prmCode.ExcludedIds.Count > 0 && prmCode.ExcludedIds.Contains(saCode.Id)) continue; + if (!StringUtil.IsEmpty(prmCode.Code) && !saCode.Code.EqualsCI(prmCode.Code)) continue; + if (!StringUtil.IsEmpty(prmCode.CodePartial) && !saCode.Code.ContainsCI(prmCode.CodePartial)) continue; + if (!StringUtil.IsEmpty(prmCode.Desc) && !saCode.Description.EqualsCI(prmCode.Desc)) continue; + if (!StringUtil.IsEmpty(prmCode.DescPartial) && !saCode.Description.ContainsCI(prmCode.DescPartial)) continue; + if (prmCode.StatusCat == SaCode.StatusCat.ActiveOnly && saCode.Status != SaCode.ActiveStatus) continue; + if (prmCode.StatusCat == SaCode.StatusCat.InactiveOnly && saCode.Status == SaCode.ActiveStatus) continue; + saCodes.Add(saCode); + } + } + return saCodes; + } + + //------------------------------------------------------------------- + // Filtered codes. + public override Dictionary> GetCodesByCodeType (SaCode.Params prmCode) + { + throw new NotImplementedException(); + } + public override Task>> GetCodesByCodeTypeAsync (SaCode.Params prmCode) + { + throw new NotImplementedException(); + } + public override Dictionary> GetCodeDescsByCodeType (SaCode.Params prmCode) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Create codes. + public override bool CreateCodeOfType (SysId codeTypeId, string code, string desc, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + public override bool CreateCodeOfType (string codeTypeCode, string code, string desc, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Population. + public override bool PopulateCode (string codeTypeCode, string code, string desc, bool active, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Select codes. + public override List SelectCodes (string codeTypeCode, List codesSelected) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/CodeTypes/SbmCodeType_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/CodeTypes/SbmCodeType_Mobile.cs new file mode 100644 index 0000000..ecc6fa7 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/CodeTypes/SbmCodeType_Mobile.cs @@ -0,0 +1,23 @@ +using Sarand.Core.Bus; +using Sarand.Core.CodeTypes; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.CodeTypes +{ + //======================================================================= + public class SbmCodeType_Mobile : SaCodeType + { + //------------------------------------------------------------------- + // Construction. + public SbmCodeType_Mobile (SysId id, String code, ushort flags) : + base(id, code) + { + Flags = flags; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/CodeTypes/SbmCode_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/CodeTypes/SbmCode_Mobile.cs new file mode 100644 index 0000000..c2964ad --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/CodeTypes/SbmCode_Mobile.cs @@ -0,0 +1,23 @@ +using Sarand.Core.Bus; +using Sarand.Core.CodeTypes; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.CodeTypes +{ + //======================================================================= + public class SbmCode_Mobile : SaCode + { + //------------------------------------------------------------------- + // Construction. + public SbmCode_Mobile (SysId id, SysId codeTypeId, String code, ushort flags) : + base(id, codeTypeId, code) + { + Flags = flags; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Base/SbmComponents.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Base/SbmComponents.cs new file mode 100644 index 0000000..c56fd7f --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Base/SbmComponents.cs @@ -0,0 +1,50 @@ +using Sarand.Core.Mobile.Forms.Base; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmComponents : SaxComponents + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmComponents () + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + protected override void ConfigureComponents () + { + base.ConfigureComponents(); + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + base.SetControlActivity(); + } + protected override void SetControlsReadOnly () + { + base.SetControlsReadOnly(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/ControlViews/SbmControlView.cs b/SaBusMgrMobCore/Mobile/Core/Forms/ControlViews/SbmControlView.cs new file mode 100644 index 0000000..909a6d4 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/ControlViews/SbmControlView.cs @@ -0,0 +1,163 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; +using Sarand.Core.Base; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmControlView : SbmContentView + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + // Components. + private SbmContentView outerView = new SbmContentView(); + private SbmContentView embeddedView = new SbmContentView(); + private readonly SbmLabel label = new SbmLabel(); + // Styling. + private Thickness borderThickness = new Thickness(); + private Color borderColor = Color.Transparent; + private bool readOnly = false; + + //------------------------------------------------------------------- + // Construction. + protected SbmControlView () + { + // Embedded view used to allow outer view to act as border. + Content = outerView; + outerView.Content = embeddedView; + + // Default styling. + BackgroundColor = SbmMobile.ControlBackgroundColor; + borderColor = SbmMobile.ControlBorderColor; + BorderWidth = SbmMobile.ControlBorderWidth; + + // Read-only label configuration. + label.BackgroundColor = Color.Transparent; + label.Margin = new Thickness(SbmMobile.LabelMargin.Left, SbmMobile.LabelMargin.Top); + + SetControlActivity(); + } + + //------------------------------------------------------------------- + // Properties. + // Styling. + public Thickness BorderThickness + { + get { return borderThickness; } + set { borderThickness = value; ConfigureComponents(); } + } + public double BorderWidth + { + set { BorderThickness = new Thickness(value); } + } + public Color BorderColor { get; set; } + public bool ReadOnly + { + get { return readOnly; } + set { if (readOnly == value) return; readOnly = value; SetControlActivity(); } + } + public String ReadOnlyText + { + set { if (label.Text.Equals(value)) return; label.Text = value; } + } + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control configuration that can b changed dynamically. + protected override void ConfigureComponents () + { + // Outer view acts as border. + outerView.BackgroundColor = borderColor; + outerView.Padding = borderThickness; + + // Embedded view acts as background. + embeddedView.BackgroundColor = BackgroundColor; + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + base.SetControlActivity(); + SetControlsReadOnly(); + } + protected override void SetControlsReadOnly () + { + if (readOnly) Content = label; + } + + //------------------------------------------------------------------- + // C o n t r o l E v e n t s + //------------------------------------------------------------------- + public new event EventHandler Focused; + protected void Control_Focused (object sender, FocusEventArgs e) + { + if (Focused != null) Focused.Invoke(sender, e); + } + //------------------------------------------------------------------- + public new event EventHandler Unfocused; + protected void Control_Unfocused (object sender, FocusEventArgs e) + { + if (Unfocused != null) Unfocused.Invoke(sender, e); + } + + //------------------------------------------------------------------- + // V i e w E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanging(propertyName); + } + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + //Logger.Debug(GetType().Name + ".OnPropertyChanged Name=" + propertyName); + + if (propertyName.EqualsCI("Padding")) + { + if (!embeddedView.Padding.Equals(Padding)) + { + // Apply the padding to the embedded view and clear this view's padding. + embeddedView.Padding = Padding; + Padding = new Thickness(); + } + } + else if (propertyName.EqualsCI("BackgroundColor")) + { + embeddedView.BackgroundColor = BackgroundColor; + } + } + //------------------------------------------------------------------- + protected override void OnChildAdded (Element child) + { + base.OnChildAdded(child); + } + protected override void OnChildRemoved (Element child) + { + base.OnChildRemoved(child); + } + //------------------------------------------------------------------- + protected override void OnSizeAllocated (double width, double height) + { + base.OnSizeAllocated(width, height); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/ControlViews/SbmEntryView.cs b/SaBusMgrMobCore/Mobile/Core/Forms/ControlViews/SbmEntryView.cs new file mode 100644 index 0000000..1d0f51c --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/ControlViews/SbmEntryView.cs @@ -0,0 +1,164 @@ +using Sarand.Core.Base; +using Sarand.Core.Mobile.Forms.Controls; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmEntryView : SbmControlView + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private readonly SbmEntry entry = new SbmEntry(); + + //------------------------------------------------------------------- + // Construction. + public SbmEntryView () + { + // Control configuration. + entry.BackgroundColor = Color.Transparent; + + // Entry events. + entry.Focused += Entry_Focused; + entry.Unfocused += Entry_Unfocused; + entry.TextChanged += Entry_TextChanged; + entry.Completed += Entry_Completed; + + ConfigureComponents(); + SetControlActivity(); + } + + //------------------------------------------------------------------- + // Properties. + public int MaxLength + { + get { return entry.MaxLength; } + set { entry.MaxLength = value; } + } + public SaxEntry.TextCaseType TextCase + { + get { return entry.TextCase; } + set { entry.TextCase = value; } + } + public bool NumericOnly + { + get { return entry.NumericOnly; } + set { entry.NumericOnly = value; } + } + public byte Decimals + { + get { return entry.Decimals; } + set { entry.Decimals = value; } + } + public Keyboard Keyboard + { + get { return entry.Keyboard; } + set { entry.Keyboard = value; } + } + public bool IsPassword + { + get { return entry.IsPassword; } + set { entry.IsPassword = value; } + } + public String Text + { + get { return entry.Text; } + set { value = StringUtil.EmptyOnNull(value); if (entry.Text != null && entry.Text.Equals(value)) return; entry.Text = value; } + } + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control configuration that can be changed dynamically. + protected override void ConfigureComponents () + { + base.ConfigureComponents(); + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + base.SetControlActivity(); + SetControlsReadOnly(); + } + protected override void SetControlsReadOnly () + { + base.SetControlsReadOnly(); + if (!ReadOnly) Content = entry; + } + + //------------------------------------------------------------------- + // C o n t r o l E v e n t s + //------------------------------------------------------------------- + private void Entry_Focused (object sender, FocusEventArgs e) + { + Control_Focused(sender, e); + } + //------------------------------------------------------------------- + private void Entry_Unfocused (object sender, FocusEventArgs e) + { + Control_Unfocused(sender, e); + } + //------------------------------------------------------------------- + // Text changed. + public event EventHandler TextChanged; + private void Entry_TextChanged (object sender, TextChangedEventArgs e) + { + ReadOnlyText = entry.Text; + if (ReadOnly) return; + if (TextChanged != null) TextChanged.Invoke(sender, e); + } + //------------------------------------------------------------------- + // Completed. + public event EventHandler Completed; + private void Entry_Completed (object sender, EventArgs e) + { + if (ReadOnly) return; + if (Completed != null) Completed.Invoke(sender, e); + } + + //------------------------------------------------------------------- + // V i e w E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanging(propertyName); + } + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + //Logger.Debug(GetType().Name + ".OnPropertyChanged Name=" + propertyName); + } + //------------------------------------------------------------------- + protected override void OnChildAdded (Element child) + { + base.OnChildAdded(child); + } + protected override void OnChildRemoved (Element child) + { + base.OnChildRemoved(child); + } + //------------------------------------------------------------------- + protected override void OnSizeAllocated (double width, double height) + { + base.OnSizeAllocated(width, height); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/ControlViews/SbmPickerView.cs b/SaBusMgrMobCore/Mobile/Core/Forms/ControlViews/SbmPickerView.cs new file mode 100644 index 0000000..41e5c40 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/ControlViews/SbmPickerView.cs @@ -0,0 +1,142 @@ +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; +using Sarand.Core.Base; +using Sarand.Core.Mobile.Forms.Controls; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmPickerView : SbmControlView + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private readonly SbmPicker picker = new SbmPicker(); + + //------------------------------------------------------------------- + // Construction. + public SbmPickerView (SbmPicker suppliedPicker = null) + { + // Control configuration. + if (suppliedPicker != null) picker = suppliedPicker; + picker.BackgroundColor = Color.Transparent; + + // Control events. + picker.Focused += Picker_Focused; + picker.Unfocused += Picker_Unfocused; + picker.BackgroundColor = Color.Transparent; + picker.SelectedIndexChanged += Picker_SelectedIndexChanged; + picker.Populated += Picker_Populated; + + ConfigureComponents(); + SetControlActivity(); + } + + //------------------------------------------------------------------- + // Properties. + protected SbmPicker Picker { get { return picker; } } + public IList Items { get { return picker.Items; } } + public int SelectedIndex + { + get { return picker.SelectedIndex; } + set { if (picker.SelectedIndex == value) return; picker.SelectedIndex = value; } + } + public SbmPicker.SlmPickerItem SelectedPickerItem { get { return picker.SelectedPickerItem; } } + public object SelectedItem + { + get { return picker.SelectedItem; } + set { picker.SelectedItem = value; } + } + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + /// Control configuration that can b changed dynamically. + protected override void ConfigureComponents () + { + base.ConfigureComponents(); + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + base.SetControlActivity(); + SetControlsReadOnly(); + } + protected override void SetControlsReadOnly () + { + base.SetControlsReadOnly(); + if (!ReadOnly) Content = picker; + } + + //------------------------------------------------------------------- + // V i e w E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanging(propertyName); + } + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + //Logger.Debug(GetType().Name + ".OnPropertyChanged Name=" + propertyName); + } + //------------------------------------------------------------------- + protected override void OnChildAdded (Element child) + { + base.OnChildAdded(child); + } + protected override void OnChildRemoved (Element child) + { + base.OnChildRemoved(child); + } + //------------------------------------------------------------------- + protected override void OnSizeAllocated (double width, double height) + { + base.OnSizeAllocated(width, height); + } + + //------------------------------------------------------------------- + // C o n t r o l E v e n t s + //------------------------------------------------------------------- + private void Picker_Focused (object sender, FocusEventArgs e) + { + Control_Focused(sender, e); + } + //------------------------------------------------------------------- + private void Picker_Unfocused (object sender, FocusEventArgs e) + { + Control_Unfocused(sender, e); + } + //------------------------------------------------------------------- + public event SaxPicker.PopulatedEventHandler Populated; + private void Picker_Populated (object sender, SaxPicker.PopulatedEventArgs e) + { + if (Populated != null) Populated.Invoke(this, e); + } + //------------------------------------------------------------------- + public event EventHandler SelectedIndexChanged; + private void Picker_SelectedIndexChanged (object sender, EventArgs e) + { + ReadOnlyText = (picker.SelectedItem != null ? picker.SelectedItem.ToString() : ""); + if (ReadOnly) return; + if (SelectedIndexChanged != null) SelectedIndexChanged.Invoke(sender, e); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Controls/SbmEntry.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Controls/SbmEntry.cs new file mode 100644 index 0000000..ca89f6d --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Controls/SbmEntry.cs @@ -0,0 +1,33 @@ +using Sarand.Core.Mobile.Forms.Controls; +using Sarand.BusinessMgr.Mobile.Core.App; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmEntry : SaxEntry + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmEntry () + { + // Font sizing. + FontSize = FontSize * SbmMobile.FontSizeRatio; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Controls/SbmLabel.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Controls/SbmLabel.cs new file mode 100644 index 0000000..0082386 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Controls/SbmLabel.cs @@ -0,0 +1,36 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.Core.Mobile.Forms.Controls; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmLabel : SaxLabel + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmLabel () + { + // Styling. + Margin = SbmMobile.LabelMargin; + + // Font sizing. + FontSize = FontSize * SbmMobile.FontSizeRatio; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Controls/SbmPicker.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Controls/SbmPicker.cs new file mode 100644 index 0000000..62dd1ee --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Controls/SbmPicker.cs @@ -0,0 +1,39 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Mobile.Forms.Controls; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmPicker : SaxPicker + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmPicker () + { + // Font sizing. + FontSize = FontSize * SbmMobile.FontSizeRatio; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // P i c k e r E v e n t s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Layouts/SbmAbsoluteLayout.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Layouts/SbmAbsoluteLayout.cs new file mode 100644 index 0000000..16212a4 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Layouts/SbmAbsoluteLayout.cs @@ -0,0 +1,29 @@ +using Sarand.Core.Mobile.Forms.Layouts; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Layouts +{ + //======================================================================= + public class SbmAbsoluteLayout : SaxAbsoluteLayout + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmAbsoluteLayout () + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Layouts/SbmStackLayout.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Layouts/SbmStackLayout.cs new file mode 100644 index 0000000..4487cde --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Layouts/SbmStackLayout.cs @@ -0,0 +1,30 @@ +using Sarand.Core.Mobile.Forms.Layouts; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmStackLayout : SaxStackLayout + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmStackLayout () + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Pages/SbmContentPage.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Pages/SbmContentPage.cs new file mode 100644 index 0000000..1095c76 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Pages/SbmContentPage.cs @@ -0,0 +1,63 @@ +using Sarand.Core.Base; +using Sarand.Core.Mobile.Forms.Pages; +using Sarand.BusinessMgr.Mobile.Core.App; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Pages +{ + //======================================================================= + public class SbmContentPage : SaxContentPage + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + protected SbmContentPage () + { + } + + //------------------------------------------------------------------- + // Properties. + public override String MessageTitleDefault { get { return SbmMobile.AppTitle; } } + + //------------------------------------------------------------------- + // P o p u p M e s s a g e s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + // P a g e E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + } + //------------------------------------------------------------------- + protected override void OnAppearing () + { + base.OnAppearing(); + } + //------------------------------------------------------------------- + protected override void OnDisappearing () + { + base.OnDisappearing(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Pages/SbmFormPage.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Pages/SbmFormPage.cs new file mode 100644 index 0000000..a5399d1 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Pages/SbmFormPage.cs @@ -0,0 +1,310 @@ +using Sarand.Core.Mobile.Forms.Controls; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Base; +using Sarand.BusinessMgr.Mobile.Core.Forms.Layouts; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; +using Sarand.BusinessMgr.Mobile.Core.Mgr; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Pages +{ + //======================================================================= + public abstract class SbmFormPage : SbmContentPage + { + //------------------------------------------------------------------- + // Definitions. + public enum NavigationMode + { + OkCancel, + Close + } + public class Config + { + public bool ReadOnly { get; set; } + public NavigationMode NavigationMode { get; set; } = NavigationMode.OkCancel; + } + + //------------------------------------------------------------------- + // Data members. + private readonly Config config; + private SbmAccountMgr_Mobile accountMgr; + private SbmAssetMgr_Mobile assetMgr; + private SbmCommodityMgr_Mobile commodityMgr; + private SbmDataItemMgr_Mobile dataItemMgr; + private SbmProcessMgr_Mobile processMgr; + private SbmStockMgr_Mobile stockMgr; + private SbmTransactionMgr_Mobile transactionMgr; + private SbmWebServiceClient webServiceClient; + // Form layout - to allow popup content over main layout. + private SbmAbsoluteLayout formLayout = new SbmAbsoluteLayout(); + // Main grid. + private SbmGrid gridPage = new SbmGrid(); + // Caption bar. + private SbmStackLayout viewCaptionBar = new SbmStackLayout(); + private Label labelCaption = new Label(); + // Page body. + private SbmScrollView scrollViewBody = new SbmScrollView(); + private SbmContentView contentViewBody = new SbmContentView(); + // Footer. + private SbmContentView viewNavigation = new SbmContentView(); + private SbmGrid gridNavigation = new SbmGrid(); + private SaxButton buttonOk = new SaxButton() { Text = "OK" }; + private SaxButton buttonClose = new SaxButton() { Text = "Close" }; + private SaxButton buttonCancel = new SaxButton() { Text = "Cancel" }; + + //------------------------------------------------------------------- + // Construction. + public SbmFormPage (Config config) + { + this.config = config; + InitialiseComponents(); + ConfigureForm(); + } + + //------------------------------------------------------------------- + // Properties. + protected virtual String MessageTitle { get { return Title; } } + protected virtual String DataPreparationMessage { get { return "Loading data. Please wait ..."; } } + // Session. + protected SbmUserContext_Mobile UserContext { get { return SbmGlobals_Mobile.SessionProfile.UserContext_Mobile; } } + protected SbmSessionContext_Mobile SessionContext { get { return SbmGlobals_Mobile.SessionProfile.SessionContext_Mobile; } } + // Layout. + protected SbmContentView FormBodyView { get { return contentViewBody; } } + // Process control. + public bool AddMode { get; protected set; } = true; + public bool Changed { get; protected set; } = false; + public bool Cancelled { get; private set; } = true; + // Managers. + protected SbmAccountMgr_Mobile AccountMgr { get { if (accountMgr == null) accountMgr = new SbmAccountMgr_Mobile(UserContext); return accountMgr; } } + protected SbmAssetMgr_Mobile AssetMgr { get { if (assetMgr == null) assetMgr = new SbmAssetMgr_Mobile(UserContext); return assetMgr; } } + protected SbmCommodityMgr_Mobile CommodityMgr { get { if (commodityMgr == null) commodityMgr = new SbmCommodityMgr_Mobile(UserContext); return commodityMgr; } } + protected SbmDataItemMgr_Mobile DataItemMgr { get { if (dataItemMgr == null) dataItemMgr = new SbmDataItemMgr_Mobile(UserContext); return dataItemMgr; } } + protected SbmProcessMgr_Mobile ProcessMgr { get { if (processMgr == null) processMgr = new SbmProcessMgr_Mobile(UserContext); return processMgr; } } + protected SbmStockMgr_Mobile StockMgr { get { if (stockMgr == null) stockMgr = new SbmStockMgr_Mobile(UserContext); return stockMgr; } } + protected SbmTransactionMgr_Mobile BerthingMgr { get { if (transactionMgr == null) transactionMgr = new SbmTransactionMgr_Mobile(UserContext); return transactionMgr; } } + public SbmWebServiceClient WebServiceClient { get { if (webServiceClient == null) webServiceClient = new SbmWebServiceClient(); return webServiceClient; } } + + //------------------------------------------------------------------- + // C l o s e F o r m + //------------------------------------------------------------------- + protected void CloseFormWithAlert (String message) + { + Device.BeginInvokeOnMainThread(async () => + { + await DisplayAlert(MessageTitle, message, "OK"); + await Navigation.PopModalAsync(); + }); + } + + //------------------------------------------------------------------- + // I n i t i a l i s e + //------------------------------------------------------------------- + private void InitialiseComponents () + { + NavigationPage.SetHasNavigationBar(this, false); + this.SizeChanged += OnSizeChanged; + + // Base layout. + BackgroundColor = SbmMobile.PageBackgroundColor; + // NB Form layout is 'Absolute' to allow overlays, eg. to display progress info. + Content = formLayout; + //formLayout.BackgroundColor = Color.LightGreen; + formLayout.HorizontalOptions = LayoutOptions.FillAndExpand; + formLayout.VerticalOptions = LayoutOptions.FillAndExpand; + + // Form grid. + formLayout.Children.Add(gridPage, new Rectangle(0, 0, 1, 1), AbsoluteLayoutFlags.All); + gridPage.HorizontalOptions = LayoutOptions.FillAndExpand; + gridPage.VerticalOptions = LayoutOptions.FillAndExpand; + gridPage.Margin = new Thickness(0); + gridPage.Padding = new Thickness(0); + gridPage.RowSpacing = 4; + gridPage.ColumnSpacing = 0; + gridPage.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Star }); + //gridPage.BackgroundColor = Color.LightCoral; + + // Page grid has 3 rows: Caption, body, footer (navgation controls). + + // Caption bar. + int pageGridRow = gridPage.RowDefinitions.Count; + gridPage.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + gridPage.Children.Add(viewCaptionBar, 0, pageGridRow); + viewCaptionBar.HorizontalOptions = LayoutOptions.FillAndExpand; + viewCaptionBar.Padding = new Thickness(SbmMobile.PageCaptionPaddingHorizontal, SbmMobile.PageCaptionPaddingVertical); + viewCaptionBar.BackgroundColor = SbmMobile.ApplicationBarBackgroundColor; + viewCaptionBar.Children.Add(labelCaption); + labelCaption.Text = "Form"; + labelCaption.TextColor = SbmMobile.PageCaptionTextColor; + labelCaption.FontSize *= SbmMobile.FontSizeRatio * SbmMobile.PageCaptionTextSizeRatio; + labelCaption.HorizontalOptions = LayoutOptions.CenterAndExpand; + labelCaption.HorizontalTextAlignment = TextAlignment.Center; + + // Page body. + pageGridRow = gridPage.RowDefinitions.Count; + gridPage.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Star }); + gridPage.Children.Add(scrollViewBody, 0, pageGridRow); + scrollViewBody.Padding = new Thickness(SbmMobile.PageBodyPaddingHorizontalMin, SbmMobile.PageBodyPaddingVerticalMin); + scrollViewBody.BackgroundColor = Color.Transparent; + scrollViewBody.Content = contentViewBody; + + // Navigation bar. + pageGridRow = gridPage.RowDefinitions.Count; + gridPage.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + gridPage.Children.Add(viewNavigation, 0, pageGridRow); + viewNavigation.Content = gridNavigation; + viewNavigation.Padding = new Thickness(0, SbmMobile.PageNavigationBorderTopWidth, 0, 0); + viewNavigation.BackgroundColor = SbmMobile.PageNavigationBorderColor; + buttonOk.Clicked += ButtonOk_Clicked; + buttonCancel.Clicked += ButtonCancel_Clicked; + buttonClose.Clicked += ButtonClose_Clicked; + } + + //------------------------------------------------------------------- + // C o n f i g u r e F o r m + //------------------------------------------------------------------- + private void ConfigureForm () + { + ConfigureNavigationBar(); + } + private void ConfigureNavigationBar () + { + gridNavigation.Margin = new Thickness(0); + gridNavigation.Padding = new Thickness(SbmMobile.PageBodyPaddingHorizontalMin, SbmMobile.PageNavigationPaddingVertical); + gridNavigation.RowSpacing = 4; + if (gridNavigation.RowDefinitions.Count == 0) + gridNavigation.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); + gridNavigation.ColumnSpacing = 0; + if (gridNavigation.ColumnDefinitions.Count == 0) + { + gridNavigation.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); + gridNavigation.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Star }); + gridNavigation.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); + } + gridNavigation.BackgroundColor = SbmMobile.PageNavigationBackgroundColor; + + if (config.NavigationMode == NavigationMode.OkCancel) + { + // OK & Cancel Buttons. + buttonCancel.HorizontalOptions = LayoutOptions.Start; + gridNavigation.Children.Add(buttonCancel, 0, 0); + buttonOk.HorizontalOptions = LayoutOptions.End; + gridNavigation.Children.Add(buttonOk, 2, 0); + } + else + { + buttonClose.HorizontalOptions = LayoutOptions.Center; + gridNavigation.Children.Add(buttonClose, 1, 0); + } + } + + //------------------------------------------------------------------- + // P a n e l s + //------------------------------------------------------------------- + protected void SetAdditionalPanel (ContentView panel) + { + ClearAdditionalPanel(); + formLayout.Children.Add(panel, new Rectangle(0, 0, 1, 1), AbsoluteLayoutFlags.All); + } + protected void ClearAdditionalPanel () + { + // Remove all but the first child on the form layout - this is the form itself. + while (formLayout.Children.Count > 1) + formLayout.Children.RemoveAt(1); + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected virtual void SetControlActivity () + { + } + protected virtual void SetControlsReadOnly () + { + } + + //------------------------------------------------------------------- + // P a g e E v e n t s + //------------------------------------------------------------------- + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + if (propertyName.Equals("Title")) + labelCaption.Text = Title; + } + //------------------------------------------------------------------- + protected override void OnAppearing () + { + base.OnAppearing(); + } + protected override void OnDisappearing () + { + base.OnDisappearing(); + } + + //------------------------------------------------------------------- + // N a v i g a t i o n E v e n t s + //------------------------------------------------------------------- + protected override bool OnBackButtonPressed () + { + // Return true to prevent 'Back'. + return true; + } + protected async void CloseForm () + { + await Navigation.PopModalAsync(); + } + //------------------------------------------------------------------- + /// Close - remove (pop) the form page with no interfreence. + protected virtual void ButtonClose_Clicked (object sender, EventArgs e) + { + CloseForm(); + } + //------------------------------------------------------------------- + /// Confirm that form is valid and details saved before closing the form page. + protected void ButtonOk_Clicked (object sender, EventArgs e) + { + bool saveFormData = SaveFormData(); + if (!saveFormData) return; + Cancelled = false; + CloseForm(); + } + protected virtual bool SaveFormData () { return false; } + //------------------------------------------------------------------- + /// Confirm that form is valid and details saved before closig the form page. + protected void ButtonCancel_Clicked (object sender, EventArgs e) + { + if (!QueryCancelForm()) return; + CloseForm(); + } + protected virtual bool QueryCancelForm () + { + if (Changed) + { + String message = "Data has been changed.\n\nAre you sure that you want to abandon changes and close the form?"; + if (!DisplayConfirm(message).GetAwaiter().GetResult()) return false; + } + return true; + } + + //------------------------------------------------------------------- + // S i z e a n d P o s i t i o n + //------------------------------------------------------------------- + private void OnSizeChanged (object sender, EventArgs e) + { + // Page size has changed. + double widthPadding = Math.Max(SbmMobile.PageBodyPaddingHorizontalMin, (Width - 460) / 2); + double heightPadding = Math.Max(SbmMobile.PageBodyPaddingVerticalMin, (Height - 800) / 20); + scrollViewBody.Padding = new Thickness(widthPadding, heightPadding); + gridNavigation.Padding = new Thickness(widthPadding, SbmMobile.PageNavigationPaddingVertical); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Panels/SbmMainPanel.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Panels/SbmMainPanel.cs new file mode 100644 index 0000000..77149ff --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Panels/SbmMainPanel.cs @@ -0,0 +1,90 @@ +using Sarand.BusinessMgr.Mobile.Core.Forms.Panels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Panels +{ + //======================================================================= + public class SbmMainPanel : SbmPanel + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SbmPanel.Config + { + } + + //------------------------------------------------------------------- + // Data members. + private Config config; + + //------------------------------------------------------------------- + // Construction. + protected SbmMainPanel () + { + this.config = new Config(); + } + protected SbmMainPanel (Config config) + { + this.config = config; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + protected override void ConfigureComponents () + { + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + } + protected override void SetControlsReadOnly () + { + } + + //------------------------------------------------------------------- + // P a n e l E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanging(propertyName); + } + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + } + //------------------------------------------------------------------- + protected override void OnChildAdded (Element child) + { + base.OnChildAdded(child); + } + protected override void OnChildRemoved (Element child) + { + base.OnChildRemoved(child); + } + //------------------------------------------------------------------- + protected override void OnSizeAllocated (double width, double height) + { + base.OnSizeAllocated(width, height); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Panels/SbmPanel.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Panels/SbmPanel.cs new file mode 100644 index 0000000..2527624 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Panels/SbmPanel.cs @@ -0,0 +1,75 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Forms.Views; +using Sarand.BusinessMgr.Mobile.Core.Mgr; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Panels +{ + //======================================================================= + public class SbmPanel : SbmContentView + { + //------------------------------------------------------------------- + // Definitions. + public class Config + { + public Boolean ReadOnly { get; set; } + } + + //------------------------------------------------------------------- + // Data members. + private Config config; + + //------------------------------------------------------------------- + // Construction. + public SbmPanel () : this(new Config()) + { + } + protected SbmPanel (Config config) + { + this.config = config; + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + protected override void ConfigureComponents () + { + } + + //------------------------------------------------------------------- + // D i s p l a y M e s s a g e s + //------------------------------------------------------------------- + protected Task DisplayAlert (string title, string message, string cancel) + { + return SbmGlobals_Mobile.Application.CurrentPage.DisplayAlert(title, message, cancel); + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + base.SetControlActivity(); + } + protected override void SetControlsReadOnly () + { + base.SetControlsReadOnly(); + } + + //------------------------------------------------------------------- + // P a n e l E v e n t s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Panels/SbmPanel_ItemListHeader.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Panels/SbmPanel_ItemListHeader.cs new file mode 100644 index 0000000..675c1f1 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Panels/SbmPanel_ItemListHeader.cs @@ -0,0 +1,49 @@ +using Sarand.Core.Mobile.Forms.Panels; +using Sarand.BusinessMgr.Mobile.Core.App; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Panels +{ + public class SbmPanel_ItemListHeader : SaxPanel_ItemListHeader + { + //------------------------------------------------------------------- + // Definitions. + public new class Config : SaxPanel_ItemListHeader.Config + { + public Config () + { + Margin = new Thickness(0, 0, 0, 4.0); + HeaderBorderWidth = SbmMobile.ItemListHeaderBorderWidth; + HeaderBorderRadius = SbmMobile.ItemListHeaderBorderRadius; + HeaderBorderColor = SbmMobile.ItemListHeaderBorderColor; + HeaderBackgroundColor = SbmMobile.ItemListHeaderBackgroundColor; + LabelMargin = SbmMobile.LabelMargin; + CaptionLabelFontSizeRatio = SbmMobile.FontSizeRatio * SbmMobile.PageCaptionTextSizeRatio; + PagingLabelFontSizeRatio = SbmMobile.FontSizeRatio; + } + } + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmPanel_ItemListHeader (Config config) : + base(config) + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // P a n e l E v e n t s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmContentView.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmContentView.cs new file mode 100644 index 0000000..79ed613 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmContentView.cs @@ -0,0 +1,79 @@ +using Sarand.Core.Mobile.Forms.Views; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Mgr; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; + +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Views +{ + //======================================================================= + public class SbmContentView : SaxContentView + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmAccountMgr_Mobile accountMgr = null; + private SbmAssetMgr_Mobile assetMgr = null; + private SbmCommodityMgr_Mobile commodityMgr = null; + private SbmDataItemMgr_Mobile dataItemMgr = null; + private SbmProcessMgr_Mobile processMgr = null; + private SbmStockMgr_Mobile stockMgr = null; + private SbmTransactionMgr_Mobile transactionMgr = null; + private SbmWebServiceClient webServiceClient; + + //------------------------------------------------------------------- + // Construction. + public SbmContentView () + { + } + + //------------------------------------------------------------------- + // Properties. + // Session. + protected SbmUserContext_Mobile UserContext { get { return SbmGlobals_Mobile.SessionProfile.UserContext_Mobile; } } + protected SbmSessionContext_Mobile SessionContext { get { return SbmGlobals_Mobile.SessionProfile.SessionContext_Mobile; } } + // Managers. + protected SbmAccountMgr_Mobile AccountMgr { get { if (accountMgr == null) accountMgr = new SbmAccountMgr_Mobile(UserContext); return accountMgr; } } + protected SbmAssetMgr_Mobile AssetMgr { get { if (assetMgr == null) assetMgr = new SbmAssetMgr_Mobile(UserContext); return assetMgr; } } + protected SbmCommodityMgr_Mobile CommodityMgr { get { if (commodityMgr == null) commodityMgr = new SbmCommodityMgr_Mobile(UserContext); return commodityMgr; } } + protected SbmDataItemMgr_Mobile DataItemMgr { get { if (dataItemMgr == null) dataItemMgr = new SbmDataItemMgr_Mobile(UserContext); return dataItemMgr; } } + protected SbmProcessMgr_Mobile ProcessMgr { get { if (processMgr == null) processMgr = new SbmProcessMgr_Mobile(UserContext); return processMgr; } } + protected SbmStockMgr_Mobile StockMgr { get { if (stockMgr == null) stockMgr = new SbmStockMgr_Mobile(UserContext); return stockMgr; } } + protected SbmTransactionMgr_Mobile BerthingMgr { get { if (transactionMgr == null) transactionMgr = new SbmTransactionMgr_Mobile(UserContext); return transactionMgr; } } + public SbmWebServiceClient WebServiceClient { get { if (webServiceClient == null) webServiceClient = new SbmWebServiceClient(); return webServiceClient; } } + + //------------------------------------------------------------------- + // C o n f i g u r e C o m p o n e n t s + //------------------------------------------------------------------- + protected override void ConfigureComponents () + { + } + + //------------------------------------------------------------------- + // C o n t r o l A c t i v i t y + //------------------------------------------------------------------- + protected override void SetControlActivity () + { + base.SetControlActivity(); + } + protected override void SetControlsReadOnly () + { + base.SetControlsReadOnly(); + } + + //------------------------------------------------------------------- + // V i e w E v e n t s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmFrame.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmFrame.cs new file mode 100644 index 0000000..c6bc383 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmFrame.cs @@ -0,0 +1,29 @@ +using Sarand.Core.Mobile.Forms.Views; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmFrame : SaxFrame + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmFrame () + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmGrid.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmGrid.cs new file mode 100644 index 0000000..b9b8226 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmGrid.cs @@ -0,0 +1,66 @@ +using Sarand.Core.Mobile.Forms.Templates; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Views +{ + //======================================================================= + public class SbmGrid : SaxGrid + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmGrid () + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // G r i d E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanging(propertyName); + } + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + } + //------------------------------------------------------------------- + protected override void OnAdded (View view) + { + base.OnAdded(view); + } + protected override void OnChildAdded (Element child) + { + base.OnChildAdded(child); + } + //------------------------------------------------------------------- + protected override void OnRemoved (View view) + { + base.OnRemoved(view); + } + protected override void OnChildRemoved (Element child) + { + base.OnChildRemoved(child); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmScrollView.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmScrollView.cs new file mode 100644 index 0000000..50927ed --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmScrollView.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; + +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmScrollView : ScrollView + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmScrollView () + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + // V i e w E v e n t s + //------------------------------------------------------------------- + protected override void OnParentSet () + { + base.OnParentSet(); + } + //------------------------------------------------------------------- + protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanging(propertyName); + } + protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null) + { + base.OnPropertyChanged(propertyName); + } + //------------------------------------------------------------------- + protected override void OnChildAdded (Element child) + { + base.OnChildAdded(child); + } + protected override void OnChildRemoved (Element child) + { + base.OnChildRemoved(child); + } + //------------------------------------------------------------------- + protected override void OnSizeAllocated (double width, double height) + { + base.OnSizeAllocated(width, height); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmView.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmView.cs new file mode 100644 index 0000000..3fecc60 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmView.cs @@ -0,0 +1,29 @@ +using Sarand.Core.Mobile.Forms.Views; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Base +{ + //======================================================================= + public class SbmView : SaxView + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + + //------------------------------------------------------------------- + // Construction. + public SbmView () + { + } + + //------------------------------------------------------------------- + // Properties. + + //------------------------------------------------------------------- + } +} diff --git a/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmWebView.cs b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmWebView.cs new file mode 100644 index 0000000..49929ea --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Forms/Views/SbmWebView.cs @@ -0,0 +1,44 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Mgr; +using Sarand.Core.Base; +using Sarand.Core.Mobile.Forms.Controls; +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace Sarand.BusinessMgr.Mobile.Core.Forms.Views +{ + //======================================================================= + public class SbmWebView : SaxWebView + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + // Managers. + + //------------------------------------------------------------------- + // Construction. + public SbmWebView () + { + } + + //------------------------------------------------------------------- + // Properties. + protected SbmSessionContext_Mobile SessionContext { get { return SbmGlobals_Mobile.SessionProfile.SessionContext_Mobile; } } + // Managers. + + //------------------------------------------------------------------- + // N a v i g a t i o n + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + // V i e w E v e n t s + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-Addresses.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-Addresses.cs new file mode 100644 index 0000000..5e0d30e --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-Addresses.cs @@ -0,0 +1,385 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAccountMgr_Mobile + { + //******************************************************************* + // A d d r e s s e s + //******************************************************************* + // Create Address. + public override SbmAddress CreateAddress (Sbm.ItemType itemType, SysId idItem, Sbm.AddressType addressType) + { + ClearErrorState(); + return new SbmAddress_Mobile(UserContext, null, itemType, idItem, addressType,0); + } + + //------------------------------------------------------------------- + // Get Address. + public override SbmAddress GetAddress (SbmAddress.Params prmAddress) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Address. + public override bool IsValidAddressData (SbmAddress.Data data, SbmAddress.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidAddressData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Address. + public override bool InsertAddress (SbmAddress address, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAddress(address)) return false; + if (SysId.IsValid(address.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Address. + public override bool UpdateAddress (SbmAddress address, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAddress(address)) return false; + if (!SysId.IsValid(address.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Address. + public override bool AddressCanBeDeleted (SbmAddress address) + { + ClearErrorState(); + if (!base.AddressCanBeDeleted(address)) return false; + return true; + } + public override bool DeleteAddress (SbmAddress address, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!AddressCanBeDeleted(address)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement addressElement, SbmAddress address, DbUpdateInfo dbUpdateInfo) + { + addressElement.AppendElement(nameof(address.Id), SysId.ToString(address.Id)); + addressElement.AppendElement(nameof(address.ItemType), address.ItemType.ToString()); + addressElement.AppendElement(nameof(address.ItemId), SysId.ToString(address.ItemId)); + addressElement.AppendElement(nameof(address.AddressType), address.AddressType.ToString()); + addressElement.AppendElement(nameof(address.AddressIdRef), SysId.ToString(address.AddressIdRef)); + addressElement.AppendElement(nameof(address.RefExt), address.RefExt); + addressElement.AppendElement(nameof(address.Name), address.Name); + addressElement.AppendElement(nameof(address.DescBrief), address.DescBrief); + addressElement.AppendElement(nameof(address.Line1), address.Line1); + addressElement.AppendElement(nameof(address.Line2), address.Line2); + addressElement.AppendElement(nameof(address.Line3), address.Line3); + addressElement.AppendElement(nameof(address.City), address.City); + addressElement.AppendElement(nameof(address.Province), address.Province); + addressElement.AppendElement(nameof(address.Postcode), address.Postcode); + addressElement.AppendElement(nameof(address.Country), address.Country); + addressElement.AppendElement(nameof(address.RegionIdCity), SysId.ToString(address.RegionIdCity)); + addressElement.AppendElement(nameof(address.RegionIdProvince), SysId.ToString(address.RegionIdProvince)); + addressElement.AppendElement(nameof(address.RegionIdCountry), SysId.ToString(address.RegionIdCountry)); + addressElement.AppendElement(nameof(address.Contact), address.Contact); + addressElement.AppendElement(nameof(address.Phone), address.Phone); + addressElement.AppendElement(nameof(address.Fax), address.Fax); + addressElement.AppendElement(nameof(address.Email), address.Email); + addressElement.AppendElement(nameof(address.AccountManagerCode), address.AccountManagerCode); + addressElement.AppendElement(nameof(address.AccountHandlerCode), address.AccountHandlerCode); + addressElement.AppendElement(nameof(address.ContactAreaCode), address.ContactAreaCode); + addressElement.AppendElement(nameof(address.ContactHandlerCode), address.ContactHandlerCode); + addressElement.AppendElement(nameof(address.DeliveryTypeCode), address.DeliveryTypeCode); + addressElement.AppendElement(nameof(address.DeliveryMethodCode), address.DeliveryMethodCode); + addressElement.AppendElement(nameof(address.DeliveryBookInCode), address.DeliveryBookInCode); + addressElement.AppendElement(nameof(address.LastVisitOn), DateUtil.FormatXmlDateTime(address.LastVisitOn)); + addressElement.AppendElement(nameof(address.NextVisitOn), DateUtil.FormatXmlDateTime(address.NextVisitOn)); + addressElement.AppendElement(nameof(address.Notes), address.Notes); + addressElement.AppendElement(nameof(address.Status), SacsSystem.GetStatusCode(address.Status)); + addressElement.AppendElement(nameof(address.Flags), address.Flags.ToString()); + if (!SysId.IsValid(address.Id)) + { + addressElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + addressElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + addressElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + addressElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + addressElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + addressElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement addressElement, SbmAddress address) + { + address.Id = new SysId(StringUtil.ToInt(addressElement.GetChildText("Id"))); + //address.ItemType = EnumUtil.ParseEnum(addressElement.GetChildText(nameof(address.ItemType)), Sbm.ItemType.Unknown); + //address.ItemId = new SysId(StringUtil.ToInt(addressElement.GetChildText(nameof(address.ItemId)))); + address.AddressType = EnumUtil.ParseEnum(addressElement.GetChildText(nameof(address.AddressType)), Sbm.AddressType.Any); + address.AddressIdRef = new SysId(StringUtil.ToInt(addressElement.GetChildText(nameof(address.AddressIdRef)))); + address.RefExt = addressElement.GetChildText(nameof(address.RefExt)); + address.Name = addressElement.GetChildText(nameof(address.Name)); + address.DescBrief = addressElement.GetChildText(nameof(address.DescBrief)); + address.Line1 = addressElement.GetChildText(nameof(address.Line1)); + address.Line2 = addressElement.GetChildText(nameof(address.Line2)); + address.Line3 = addressElement.GetChildText(nameof(address.Line3)); + address.City = addressElement.GetChildText(nameof(address.City)); + address.Province = addressElement.GetChildText(nameof(address.Province)); + address.Postcode = addressElement.GetChildText(nameof(address.Postcode)); + address.Country = addressElement.GetChildText(nameof(address.Country)); + address.RegionIdCity = new SysId(StringUtil.ToInt(addressElement.GetChildText(nameof(address.RegionIdCity)))); + address.RegionIdProvince = new SysId(StringUtil.ToInt(addressElement.GetChildText(nameof(address.RegionIdProvince)))); + address.RegionIdCountry = new SysId(StringUtil.ToInt(addressElement.GetChildText(nameof(address.RegionIdCountry)))); + address.Contact = addressElement.GetChildText(nameof(address.Contact)); + address.Phone = addressElement.GetChildText(nameof(address.Phone)); + address.Fax = addressElement.GetChildText(nameof(address.Fax)); + address.Email = addressElement.GetChildText(nameof(address.Email)); + address.AccountManagerCode = addressElement.GetChildText(nameof(address.AccountManagerCode)); + address.AccountHandlerCode = addressElement.GetChildText(nameof(address.AccountHandlerCode)); + address.ContactAreaCode = addressElement.GetChildText(nameof(address.ContactAreaCode)); + address.ContactHandlerCode = addressElement.GetChildText(nameof(address.ContactHandlerCode)); + address.DeliveryTypeCode = addressElement.GetChildText(nameof(address.DeliveryTypeCode)); + address.DeliveryMethodCode = addressElement.GetChildText(nameof(address.DeliveryMethodCode)); + address.DeliveryBookInCode = addressElement.GetChildText(nameof(address.DeliveryBookInCode)); + address.LastVisitOn = DateUtil.ParseXmlDateTime(addressElement.GetChildText(nameof(address.LastVisitOn))); + address.NextVisitOn = DateUtil.ParseXmlDateTime(addressElement.GetChildText(nameof(address.NextVisitOn))); + address.Notes = addressElement.GetChildText(nameof(address.Notes)); + address.Status = SacsSystem.GetStatusForCode(addressElement.GetChildText(nameof(address.Status))); + address.SetCreateStamp(DateUtil.ParseXmlDateTime(addressElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(addressElement.GetChildText("CreateBy"))), addressElement.GetChildText("CreateHost")); + address.SetUpdateStamp(DateUtil.ParseXmlDateTime(addressElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(addressElement.GetChildText("UpdateBy"))), addressElement.GetChildText("UpdateHost")); + address.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Address column definitions. + public override ColumnDfn GetAddressColumnDfn (SbmAddress.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Address query filter. + public override List GetAddressQueryFilter (SbmAddress.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetAddressQueryFilter_Mobile (SbmAddress.Params prm) + { + Dictionary filter = new Dictionary(); + + // Address Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Address type. + if ((int)prm.AddressType > 0) filter.Add(nameof(prm.AddressType), ((int)prm.AddressType).ToString()); + + // Item Id. + if (SysId.IsValid(prm.ItemId.Id)) filter.Add(nameof(prm.ItemId.Id), SysId.ToString(prm.ItemId.Id)); + + // Affiliate Id owner. + if (SysId.IsValid(prm.AffiliateIdOwner)) filter.Add(nameof(prm.AffiliateIdOwner), SysId.ToString(prm.AffiliateIdOwner)); + + // Address Id ref. + if (SysId.IsValid(prm.AddressIdRef)) filter.Add(nameof(prm.AddressIdRef), SysId.ToString(prm.AddressIdRef)); + + // Ref ext. + if (!StringUtil.IsEmpty(prm.RefExt)) filter.Add(nameof(prm.RefExt), prm.RefExt); + + // Name. + if (!StringUtil.IsEmpty(prm.Name)) filter.Add(nameof(prm.Name), prm.Name); + if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add(nameof(prm.NamePartial), prm.NamePartial); + + // Address. + if (!StringUtil.IsEmpty(prm.Address)) filter.Add(nameof(prm.Address), prm.Address); + if (!StringUtil.IsEmpty(prm.AddressPartial)) filter.Add(nameof(prm.AddressPartial), prm.AddressPartial); + + // Postcode. + if (!StringUtil.IsEmpty(prm.Postcode)) filter.Add(nameof(prm.Postcode), prm.Postcode); + if (!StringUtil.IsEmpty(prm.PostcodePartial)) filter.Add(nameof(prm.PostcodePartial), prm.PostcodePartial); + + // Phone. + if (!StringUtil.IsEmpty(prm.Phone)) filter.Add(nameof(prm.Phone), prm.Phone); + if (!StringUtil.IsEmpty(prm.PhonePartial)) filter.Add(nameof(prm.PhonePartial), prm.PhonePartial); + + // Account manager code. + if (!StringUtil.IsEmpty(prm.AccountManagerCode)) filter.Add(nameof(prm.AccountManagerCode), prm.AccountManagerCode); + + // Account handler code. + if (!StringUtil.IsEmpty(prm.AccountHandlerCode)) filter.Add(nameof(prm.AccountHandlerCode), prm.AccountHandlerCode); + + // Contact area code. + if (!StringUtil.IsEmpty(prm.ContactAreaCode)) filter.Add(nameof(prm.ContactAreaCode), prm.ContactAreaCode); + + // Contact handler code. + if (!StringUtil.IsEmpty(prm.ContactHandlerCode)) filter.Add(nameof(prm.ContactHandlerCode), prm.ContactHandlerCode); + + // Delivery type code. + if (!StringUtil.IsEmpty(prm.DeliveryTypeCode)) filter.Add(nameof(prm.DeliveryTypeCode), prm.DeliveryTypeCode); + + // Delivery book in code. + if (!StringUtil.IsEmpty(prm.DeliveryBookInCode)) filter.Add(nameof(prm.DeliveryBookInCode), prm.DeliveryBookInCode); + + // Primary only. + if (prm.PrimaryOnly != false) filter.Add(nameof(prm.PrimaryOnly), prm.PrimaryOnly.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Address sort columns. + public List GetAddressSortColumns (SbmAddress.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Address count. + public override long GetAddressCount (SbmAddress.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Address list. + public override List GetAddressList (SbmAddress.Params prm) + { + List addresses = new List(); + throw new NotImplementedException(); + } + public async Task> GetAddressList_Mobile (SbmAddress.Params prmAddress, SacsTaskData taskData) + { + ClearErrorState(); + List addresses = new List(); + String fn = GetType().Name + ".GetAddressList_Mobile"; + + // Address columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteAddressQuery_Mobile(columns, prmAddress, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + // TODO - Find correct columns to use: + SysId id = itemData.GetIdValue(SbmAddress.Column.Id); + //Sbm.ItemType itemType = EnumUtil.ParseEnum(itemData.GetValue(SbmAddress.Column.ItemType), Sbm.ItemType.Unknown); + SysId itemId = new SysId(); + //Sbm.AddressType addressType = EnumUtil.ParseEnum(itemData.GetValue(SbmAddress.Column.AddressType), Sbm.AddressType.Any); + ushort flags = (ushort)itemData.GetIntValue(SbmAddress.Column.Flag); + // Create item. + SbmAddress_Mobile address = new SbmAddress_Mobile(UserContext, id, Sbm.ItemType.Unknown, itemId, Sbm.AddressType.Any, flags); + // Populate item properties. + foreach (SbmAddress.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmAddress.Column.AddressType: address.AddressType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.AddressType.Any); break; + //case SbmAddress.Column.AddressIdRef: address.AddressIdRef = itemData.GetIdValue(column); break; + case SbmAddress.Column.RefExt: address.RefExt = value; break; + case SbmAddress.Column.Name: address.Name = value; break; + case SbmAddress.Column.DescBrief: address.DescBrief = value; break; + case SbmAddress.Column.Line1: address.Line1 = value; break; + case SbmAddress.Column.Line2: address.Line2 = value; break; + case SbmAddress.Column.Line3: address.Line3 = value; break; + case SbmAddress.Column.City: address.City = value; break; + case SbmAddress.Column.Province: address.Province = value; break; + case SbmAddress.Column.Postcode: address.Postcode= value; break; + case SbmAddress.Column.Country: address.Country = value; break; + //case SbmAddress.Column.RegionIdCity: address.RegionIdCity = itemData.GetIdValue(column); break; + //case SbmAddress.Column.RegionIdProvince: address.RegionIdProvince = itemData.GetIdValue(column); break; + //case SbmAddress.Column.RegionIdCountry: address.RegionIdCountry = itemData.GetIdValue(column); break; + case SbmAddress.Column.Contact: address.Contact = value; break; + case SbmAddress.Column.Phone: address.Phone = value; break; + case SbmAddress.Column.Fax: address.Fax = value; break; + case SbmAddress.Column.Email: address.Email = value; break; + //case SbmAddress.Column.AccountHandlerCode: address.AccountHandlerCode = value; break; + //case SbmAddress.Column.ContactAreaCode: address.ContactAreaCode = value; break; + //case SbmAddress.Column.ContactHandlerCode: address.ContactHandlerCode = value; break; + //case SbmAddress.Column.DeliveryTypeCode: address.DeliveryTypeCode = value; break; + //case SbmAddress.Column.DeliveryMethodCode: address.DeliveryMethodCode = value; break; + //case SbmAddress.Column.DeliveryBookInCode: address.DeliveryBookInCode = value; break; + case SbmAddress.Column.LastVisitOn: address.LastVisitOn= itemData.GetDateTimeValue(column); break; + case SbmAddress.Column.NextVisitOn: address.NextVisitOn = itemData.GetDateTimeValue(column); break; + case SbmAddress.Column.Notes: address.Notes = value; break; + case SbmAddress.Column.Status: address.Status = SacsSystem.GetStatusForCode(value); break; + } + } + addresses.Add(address); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Addresses: " + addresses.Count); + return addresses; + } + + + //------------------------------------------------------------------- + // Address query execution. + public override DbResultSet AddressExecuteQuery (List columns, SbmAddress.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteAddressQuery_Mobile (List addressColumns, SbmAddress.Params prmAddress, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmAddress.Column column in addressColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetAddressRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetAddressQueryFilter_Mobile(prmAddress), columns, this.GetSortColumns_Mobile(prmAddress), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetAddressRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Address; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-Affiliates.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-Affiliates.cs new file mode 100644 index 0000000..a52f7f4 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-Affiliates.cs @@ -0,0 +1,364 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAccountMgr_Mobile + { + //******************************************************************* + // A f f i l i a t e s + //******************************************************************* + // Create Affiliate. + public override SbmAffiliate CreateAffiliate (Sbm.AffiliateType affiliateType) + { + ClearErrorState(); + return new SbmAffiliate_Mobile(UserContext, null, affiliateType, 0); + } + + //------------------------------------------------------------------- + // Get Affiliate. + public override SbmAffiliate GetAffiliate (SbmAffiliate.Params prmAffiliate) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Affiliate. + public override bool IsValidAffiliateData (SbmAffiliate.Data data, SbmAffiliate.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidAffiliateData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Affiliate. + public override bool InsertAffiliate (SbmAffiliate affiliate, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAffiliate(affiliate)) return false; + if (SysId.IsValid(affiliate.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Affiliate. + public override bool UpdateAffiliate (SbmAffiliate affiliate, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAffiliate(affiliate)) return false; + if (!SysId.IsValid(affiliate.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Affiliate. + public override bool AffiliateCanBeDeleted (SbmAffiliate affiliate) + { + ClearErrorState(); + if (!base.AffiliateCanBeDeleted(affiliate)) return false; + return true; + } + public override bool DeleteAffiliate (SbmAffiliate affiliate, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!AffiliateCanBeDeleted(affiliate)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement affiliateElement, SbmAffiliate affiliate, DbUpdateInfo dbUpdateInfo) + { + affiliateElement.AppendElement(nameof(affiliate.Id), SysId.ToString(affiliate.Id)); + affiliateElement.AppendElement(nameof(affiliate.AffiliateType), affiliate.AffiliateType.ToString()); + affiliateElement.AppendElement(nameof(affiliate.PhoneMain), affiliate.PhoneMain); + affiliateElement.AppendElement(nameof(affiliate.PhoneAlt), affiliate.PhoneAlt); + affiliateElement.AppendElement(nameof(affiliate.PhoneFax), affiliate.PhoneFax); + affiliateElement.AppendElement(nameof(affiliate.Email), affiliate.Email); + affiliateElement.AppendElement(nameof(affiliate.Website), affiliate.Website); + // Organisation + affiliateElement.AppendElement(nameof(affiliate.AffiliateIdParent), SysId.ToString(affiliate.AffiliateIdParent)); + affiliateElement.AppendElement(nameof(affiliate.Name), affiliate.Name); + affiliateElement.AppendElement(nameof(affiliate.Abbr), affiliate.Abbr); + affiliateElement.AppendElement(nameof(affiliate.Nature), affiliate.Nature); + affiliateElement.AppendElement(nameof(affiliate.Contact), affiliate.Contact); + affiliateElement.AppendElement(nameof(affiliate.CompanyNo), affiliate.CompanyNo); + affiliateElement.AppendElement(nameof(affiliate.VatReg), affiliate.VatReg); + affiliateElement.AppendElement(nameof(affiliate.PhoneDirect), affiliate.PhoneDirect); + // Individual. + affiliateElement.AppendElement(nameof(affiliate.Title), affiliate.Title); + affiliateElement.AppendElement(nameof(affiliate.Initials), affiliate.Initials); + affiliateElement.AppendElement(nameof(affiliate.LastName), affiliate.LastName); + affiliateElement.AppendElement(nameof(affiliate.FirstName), affiliate.FirstName); + affiliateElement.AppendElement(nameof(affiliate.Salutation), affiliate.Salutation); + affiliateElement.AppendElement(nameof(affiliate.PhoneMobile), affiliate.PhoneMobile); + affiliateElement.AppendElement(nameof(affiliate.BirthDay), affiliate.BirthDay.ToString("N3")); + affiliateElement.AppendElement(nameof(affiliate.BirthMonth), affiliate.BirthMonth.ToString("N3")); + affiliateElement.AppendElement(nameof(affiliate.BirthYear), affiliate.BirthYear.ToString("N3")); + affiliateElement.AppendElement(nameof(affiliate.MaritalStatus), affiliate.MaritalStatus); + affiliateElement.AppendElement(nameof(affiliate.Spouse), affiliate.Spouse); + affiliateElement.AppendElement(nameof(affiliate.Children), affiliate.Children); + affiliateElement.AppendElement(nameof(affiliate.Hometown), affiliate.Hometown); + affiliateElement.AppendElement(nameof(affiliate.UserId), SysId.ToString(affiliate.UserId)); + affiliateElement.AppendElement(nameof(affiliate.Notes), affiliate.Notes); + affiliateElement.AppendElement(nameof(affiliate.Status), SacsSystem.GetStatusCode(affiliate.Status)); + affiliateElement.AppendElement(nameof(affiliate.Flags), affiliate.Flags.ToString()); + if (!SysId.IsValid(affiliate.Id)) + { + affiliateElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + affiliateElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + affiliateElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + affiliateElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + affiliateElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + affiliateElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement affiliateElement, SbmAffiliate affiliate) + { + affiliate.Id = new SysId(StringUtil.ToInt(affiliateElement.GetChildText("Id"))); + affiliate.AffiliateType = EnumUtil.ParseEnum(affiliateElement.GetChildText(nameof(affiliate.AffiliateType)), Sbm.AffiliateType.Unknown); + affiliate.PhoneMain = affiliateElement.GetChildText(nameof(affiliate.PhoneMain)); + affiliate.PhoneAlt = affiliateElement.GetChildText(nameof(affiliate.PhoneAlt)); + affiliate.PhoneFax = affiliateElement.GetChildText(nameof(affiliate.PhoneFax)); + affiliate.Email = affiliateElement.GetChildText(nameof(affiliate.Email)); + affiliate.Website = affiliateElement.GetChildText(nameof(affiliate.Website)); + // Organisation. + affiliate.AffiliateIdParent = new SysId(StringUtil.ToInt(affiliateElement.GetChildText(nameof(affiliate.AffiliateIdParent)))); + affiliate.Name = affiliateElement.GetChildText(nameof(affiliate.Name)); + affiliate.Abbr = affiliateElement.GetChildText(nameof(affiliate.Abbr)); + affiliate.Nature = affiliateElement.GetChildText(nameof(affiliate.Nature)); + affiliate.Contact = affiliateElement.GetChildText(nameof(affiliate.Contact)); + affiliate.CompanyNo = affiliateElement.GetChildText(nameof(affiliate.CompanyNo)); + affiliate.VatReg = affiliateElement.GetChildText(nameof(affiliate.VatReg)); + affiliate.PhoneDirect = affiliateElement.GetChildText(nameof(affiliate.PhoneDirect)); + // Individual. + affiliate.Title = affiliateElement.GetChildText(nameof(affiliate.Title)); + affiliate.Initials = affiliateElement.GetChildText(nameof(affiliate.Initials)); + affiliate.LastName = affiliateElement.GetChildText(nameof(affiliate.LastName)); + affiliate.FirstName = affiliateElement.GetChildText(nameof(affiliate.FirstName)); + affiliate.Salutation = affiliateElement.GetChildText(nameof(affiliate.Salutation)); + affiliate.PhoneMobile = affiliateElement.GetChildText(nameof(affiliate.PhoneMobile)); + affiliate.BirthDay = decimal.ToByte(StringUtil.ToDecimal(affiliateElement.GetChildText(nameof(affiliate.BirthDay)))); + affiliate.BirthMonth = decimal.ToByte(StringUtil.ToDecimal(affiliateElement.GetChildText(nameof(affiliate.BirthMonth)))); + affiliate.BirthYear = StringUtil.ToShort(affiliateElement.GetChildText(nameof(affiliate.BirthYear))); + affiliate.MaritalStatus = affiliateElement.GetChildText(nameof(affiliate.MaritalStatus)); + affiliate.Spouse = affiliateElement.GetChildText(nameof(affiliate.Spouse)); + affiliate.Children = affiliateElement.GetChildText(nameof(affiliate.Children)); + affiliate.Hometown = affiliateElement.GetChildText(nameof(affiliate.Hometown)); + affiliate.UserId = new SysId(StringUtil.ToInt(affiliateElement.GetChildText(nameof(affiliate.UserId)))); + affiliate.Notes = affiliateElement.GetChildText(nameof(affiliate.Notes)); + affiliate.Status = SacsSystem.GetStatusForCode(affiliateElement.GetChildText(nameof(affiliate.Status))); + affiliate.SetCreateStamp(DateUtil.ParseXmlDateTime(affiliateElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(affiliateElement.GetChildText("CreateBy"))), affiliateElement.GetChildText("CreateHost")); + affiliate.SetUpdateStamp(DateUtil.ParseXmlDateTime(affiliateElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(affiliateElement.GetChildText("UpdateBy"))), affiliateElement.GetChildText("UpdateHost")); + affiliate.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Affiliate column definitions. + public override ColumnDfn GetAffiliateColumnDfn (SbmAffiliate.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Affiliate query filter. + public override List GetAffiliateQueryFilter (SbmAffiliate.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetAffiliateQueryFilter_Mobile (SbmAffiliate.Params prm) + { + Dictionary filter = new Dictionary(); + + // Affiliate Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Affiliate. + if ((int)prm.AffiliateType > 0) filter.Add(nameof(prm.AffiliateType), ((int)prm.AffiliateType).ToString()); + if (SysId.IsValid(prm.AffiliateIdParent)) filter.Add(nameof(prm.AffiliateIdParent), SysId.ToString(prm.AffiliateIdParent)); + if (SysId.IsValid(prm.UserId)) filter.Add(nameof(prm.UserId), SysId.ToString(prm.UserId)); + if (!StringUtil.IsEmpty(prm.Name)) filter.Add(nameof(prm.Name), prm.Name); + if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add(nameof(prm.NamePartial), prm.NamePartial); + if (!StringUtil.IsEmpty(prm.PhonePartial)) filter.Add(nameof(prm.PhonePartial), prm.PhonePartial); + if (!StringUtil.IsEmpty(prm.EmailPartial)) filter.Add(nameof(prm.EmailPartial), prm.EmailPartial); + if (!StringUtil.IsEmpty(prm.PostcodePartial)) filter.Add(nameof(prm.PostcodePartial), prm.PostcodePartial); + if (!StringUtil.IsEmpty(prm.AddressPartial)) filter.Add(nameof(prm.AddressPartial), prm.AddressPartial); + if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add(nameof(prm.NotesPartial), prm.NotesPartial); + + // Restrict to affiliates with associations with the following. + if (SysId.IsValid(prm.AffiliateIdAssocOwner)) filter.Add(nameof(prm.AffiliateIdAssocOwner), SysId.ToString(prm.AffiliateIdAssocOwner)); + if (SysId.IsValid(prm.AffiliateIdAssocTarget)) filter.Add(nameof(prm.AffiliateIdAssocTarget), SysId.ToString(prm.AffiliateIdAssocTarget)); + if (SysId.IsValid(prm.AffiliateIdExcludeTargetsOf)) filter.Add(nameof(prm.AffiliateIdExcludeTargetsOf), SysId.ToString(prm.AffiliateIdExcludeTargetsOf)); + if ((int)prm.AssociationType > 0) filter.Add(nameof(prm.AssociationType), ((int)prm.AssociationType).ToString()); + if ((int)prm.AssociationTypeExclude > 0) filter.Add(nameof(prm.AssociationTypeExclude), ((int)prm.AssociationTypeExclude).ToString()); + if (DateUtil.IsValid(prm.AssociationEffectiveOn)) filter.Add(nameof(prm.AssociationEffectiveOn), DateUtil.FormatXmlDate(prm.AssociationEffectiveOn)); + + // Current associations. Default: True [only relevant when association filter specified]. + if (prm.CurrentAssociationsOnly != false) filter.Add(nameof(prm.CurrentAssociationsOnly), prm.CurrentAssociationsOnly.ToString()); + + // Supervised associations - in combination with the owner/target above: + if ((int)prm.OwnerSupervised > 0) filter.Add(nameof(prm.OwnerSupervised), ((int)prm.OwnerSupervised).ToString()); + if ((int)prm.TargetSupervised > 0) filter.Add(nameof(prm.TargetSupervised), ((int)prm.TargetSupervised).ToString()); + + // Interfaces. + if (SysId.IsValid(prm.InterfaceIdExcludeSystemUsers)) filter.Add(nameof(prm.InterfaceIdExcludeSystemUsers), SysId.ToString(prm.InterfaceIdExcludeSystemUsers)); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Affiliate sort columns. + public List GetAffiliateSortColumns (SbmAffiliate.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Affiliate count. + public override long GetAffiliateCount (SbmAffiliate.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Affiliate list. + public override List GetAffiliateList (SbmAffiliate.Params prm) + { + List affiliates = new List(); + throw new NotImplementedException(); + } + public async Task> GetAffiliateList_Mobile (SbmAffiliate.Params prmAffiliate, SacsTaskData taskData) + { + ClearErrorState(); + List affiliates = new List(); + String fn = GetType().Name + ".GetAffiliateList_Mobile"; + + // Affiliate columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteAffiliateQuery_Mobile(columns, prmAffiliate, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + // TODO - Find correct columns to use: + SysId id = itemData.GetIdValue(SbmAffiliate.Column.Id); + Sbm.AffiliateType affiliateType = EnumUtil.ParseEnum(itemData.GetValue(SbmAffiliate.Column.Type_Desc), Sbm.AffiliateType.Unknown); + ushort flags = (ushort)itemData.GetIntValue(SbmAffiliate.Column.Flag); + // Create item. + SbmAffiliate_Mobile affiliate = new SbmAffiliate_Mobile(UserContext, id, affiliateType, flags); + // Populate item properties. + foreach (SbmAffiliate.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmAffiliate.Column.Type_Desc: affiliate.AffiliateType= EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.AffiliateType.Any); break; + case SbmAffiliate.Column.PhoneMain: affiliate.PhoneMain = value; break; + case SbmAffiliate.Column.PhoneAlt: affiliate.PhoneAlt = value; break; + case SbmAffiliate.Column.PhoneFax: affiliate.PhoneFax = value; break; + case SbmAffiliate.Column.Email: affiliate.Email = value; break; + case SbmAffiliate.Column.Website: affiliate.Website = value; break; + // Organisation. + //case SbmAffiliate.Column.AffiliateIdParent: affiliate.AffiliateIdParent = itemData.GetIdValue(column); break; + case SbmAffiliate.Column.Name: affiliate.Name = value; break; + case SbmAffiliate.Column.Abbrev: affiliate.Abbr = value; break; + case SbmAffiliate.Column.Nature: affiliate.Nature = value; break; + case SbmAffiliate.Column.Contact: affiliate.Contact = value; break; + case SbmAffiliate.Column.CompanyNo: affiliate.CompanyNo = value; break; + case SbmAffiliate.Column.VatReg: affiliate.VatReg = value; break; + case SbmAffiliate.Column.PhoneDirect: affiliate.PhoneDirect = value; break; + // Individual. + case SbmAffiliate.Column.Title: affiliate.Title = value; break; + case SbmAffiliate.Column.Initials: affiliate.Initials = value; break; + case SbmAffiliate.Column.LastName: affiliate.LastName = value; break; + case SbmAffiliate.Column.FirstName: affiliate.FirstName = value; break; + case SbmAffiliate.Column.Salutation: affiliate.Salutation = value; break; + case SbmAffiliate.Column.PhoneMobile: affiliate.PhoneMobile = value; break; + //case SbmAffiliate.Column.BirthDay: affiliate.BirthYear = decimal.ToByte(itemData.GetDecimalValue(column)); break; + //case SbmAffiliate.Column.BirthMonth: affiliate.BirthMonth = decimal.ToByte(itemData.GetDecimalValue(column)); break; + //case SbmAffiliate.Column.BirthYear: affiliate.BirthYear = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + //case SbmAffiliate.Column.MaritalStatus: affiliate.MaritalStatus = value; break; + //case SbmAffiliate.Column.Spouse: affiliate.Spouse = value; break; + //case SbmAffiliate.Column.Children: affiliate.Children = value; break; + //case SbmAffiliate.Column.Hometown: affiliate.Hometown = value; break; + //case SbmAffiliate.Column.UserId: affiliate.UserId = itemData.GetIdValue(column); break; + case SbmAffiliate.Column.Notes: affiliate.Notes = value; break; + case SbmAffiliate.Column.Status: affiliate.Status = SacsSystem.GetStatusForCode(value); break; + } + } + affiliates.Add(affiliate); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Affiliates: " + affiliates.Count); + return affiliates; + } + + + //------------------------------------------------------------------- + // Affiliate query execution. + public override DbResultSet ExecuteAffiliateQuery (List columns, SbmAffiliate.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteAffiliateQuery_Mobile (List affiliateColumns, SbmAffiliate.Params prmAffiliate, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmAffiliate.Column column in affiliateColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetAffiliateRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetAffiliateQueryFilter_Mobile(prmAffiliate), columns, this.GetSortColumns_Mobile(prmAffiliate), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetAffiliateRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Affiliate; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-Associations.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-Associations.cs new file mode 100644 index 0000000..e0c4c15 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-Associations.cs @@ -0,0 +1,416 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAccountMgr_Mobile + { + //******************************************************************* + // A s s o c i a t i o n s + //******************************************************************* + // Create Association. + public override SbmAssociation CreateAssociation (SysId affiliateIdOwner, Sbm.AssociationType associationType, SysId affiliateIdTarget) + { + ClearErrorState(); + return new SbmAssociation_Mobile(UserContext, null, affiliateIdOwner, associationType, affiliateIdTarget, 0); + } + + //------------------------------------------------------------------- + // Get Association. + public override SbmAssociation GetAssociation (SbmAssociation.Params prmAssociation) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Association. + public override bool IsValidAssociationData (SbmAssociation.Data data, SbmAssociation.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidAssociationData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Association. + public override bool InsertAssociation (SbmAssociation berthing, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAssociation(berthing)) return false; + if (SysId.IsValid(berthing.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Association. + public override bool UpdateAssociation (SbmAssociation berthing, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAssociation(berthing)) return false; + if (!SysId.IsValid(berthing.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Association. + public override bool AssociationCanBeDeleted (SbmAssociation berthing) + { + ClearErrorState(); + if (!base.AssociationCanBeDeleted(berthing)) return false; + return true; + } + public override bool DeleteAssociation (SbmAssociation berthing, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!AssociationCanBeDeleted(berthing)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement berthingElement, SbmAssociation berthing, DbUpdateInfo dbUpdateInfo) + { + berthingElement.AppendElement(nameof(berthing.Id), SysId.ToString(berthing.Id)); + berthingElement.AppendElement(nameof(berthing.AffiliateIdOwner), SysId.ToString(berthing.AffiliateIdOwner)); + berthingElement.AppendElement(nameof(berthing.AffiliateIdTarget), SysId.ToString(berthing.AffiliateIdTarget)); + berthingElement.AppendElement(nameof(berthing.AssociationType), berthing.AssociationType.ToString()); + berthingElement.AppendElement(nameof(berthing.Code), berthing.Code); + berthingElement.AppendElement(nameof(berthing.RefExt), berthing.RefExt); + berthingElement.AppendElement(nameof(berthing.Location), berthing.Location); + berthingElement.AppendElement(nameof(berthing.Role), berthing.Role); + berthingElement.AppendElement(nameof(berthing.PhoneMain), berthing.PhoneMain); + berthingElement.AppendElement(nameof(berthing.Email), berthing.Email); + berthingElement.AppendElement(nameof(berthing.Group), berthing.Group); + berthingElement.AppendElement(nameof(berthing.DescDetail), berthing.DescDetail); + berthingElement.AppendElement(nameof(berthing.DefaultNominalCode), berthing.DefaultNominalCode); + // Account. + berthingElement.AppendElement(nameof(berthing.AccountManagerCode), berthing.AccountManagerCode); + berthingElement.AppendElement(nameof(berthing.AccountHandlerCode), berthing.AccountHandlerCode); + berthingElement.AppendElement(nameof(berthing.AccountTypeCode), berthing.AccountTypeCode); + berthingElement.AppendElement(nameof(berthing.AccountRatingCode), berthing.AccountRatingCode); + // Contact. + berthingElement.AppendElement(nameof(berthing.ContactAreaCode), berthing.ContactAreaCode); + berthingElement.AppendElement(nameof(berthing.ContactHandlerCode), berthing.ContactHandlerCode); + berthingElement.AppendElement(nameof(berthing.ContactMethodCode), berthing.ContactMethodCode); + berthingElement.AppendElement(nameof(berthing.ContactCallCycleCode), berthing.ContactCallCycleCode); + berthingElement.AppendElement(nameof(berthing.CallsPerYear), berthing.CallsPerYear.ToString("N3")); + berthingElement.AppendElement(nameof(berthing.LastCall), DateUtil.FormatXmlDateTime(berthing.LastCall)); + // Customer. + berthingElement.AppendElement(nameof(berthing.OrderLeadTimeCode), berthing.OrderLeadTimeCode); + berthingElement.AppendElement(nameof(berthing.DeliveryTypeCode), berthing.DeliveryTypeCode); + berthingElement.AppendElement(nameof(berthing.DeliveryMethodCode), berthing.DeliveryMethodCode); + berthingElement.AppendElement(nameof(berthing.DeliveryCourierCode), berthing.DeliveryCourierCode); + berthingElement.AppendElement(nameof(berthing.DeliveryBookInCode), berthing.DeliveryBookInCode); + // Transactions. + berthingElement.AppendElement(nameof(berthing.AmountTransMax), berthing.AmountTransMax.ToString("N3")); + berthingElement.AppendElement(nameof(berthing.AnnualSalesTarget), berthing.AnnualSalesTarget.ToString("N3")); + berthingElement.AppendElement(nameof(berthing.CreditLimit), berthing.CreditLimit.ToString("N3")); + berthingElement.AppendElement(nameof(berthing.AccountBalance), berthing.AccountBalance.ToString("N3")); + berthingElement.AppendElement(nameof(berthing.DiscountType), berthing.DiscountType.ToString());; + berthingElement.AppendElement(nameof(berthing.DiscountRate), berthing.DiscountRate.ToString("N3")); + berthingElement.AppendElement(nameof(berthing.PriceSetId), SysId.ToString(berthing.PriceSetId)); + berthingElement.AppendElement(nameof(berthing.TaxCodeId), SysId.ToString(berthing.TaxCodeId)); + berthingElement.AppendElement(nameof(berthing.PaymentTerms), berthing.PaymentTerms.ToString("N3")); + berthingElement.AppendElement(nameof(berthing.InvoiceDesc), berthing.InvoiceDesc); ; + berthingElement.AppendElement(nameof(berthing.Terminated), DateUtil.FormatXmlDateTime(berthing.Terminated)); + berthingElement.AppendElement(nameof(berthing.Notes), berthing.Notes); + berthingElement.AppendElement(nameof(berthing.Status), SacsSystem.GetStatusCode(berthing.Status)); + berthingElement.AppendElement(nameof(berthing.Flags), berthing.Flags.ToString()); + if (!SysId.IsValid(berthing.Id)) + { + berthingElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + berthingElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + berthingElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + berthingElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + berthingElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + berthingElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement berthingElement, SbmAssociation berthing) + { + berthing.Id = new SysId(StringUtil.ToInt(berthingElement.GetChildText("Id"))); + berthing.AffiliateIdOwner = new SysId(StringUtil.ToInt(berthingElement.GetChildText(nameof(berthing.AffiliateIdOwner)))); + berthing.AffiliateIdTarget = new SysId(StringUtil.ToInt(berthingElement.GetChildText(nameof(berthing.AffiliateIdTarget)))); + berthing.AssociationType = EnumUtil.ParseEnum(berthingElement.GetChildText(nameof(berthing.AssociationType)), Sbm.AssociationType.Unknown); + berthing.Code = berthingElement.GetChildText(nameof(berthing.Code)); + berthing.RefExt = berthingElement.GetChildText(nameof(berthing.RefExt)); + berthing.Location = berthingElement.GetChildText(nameof(berthing.Location)); + berthing.Role = berthingElement.GetChildText(nameof(berthing.Role)); + berthing.PhoneMain = berthingElement.GetChildText(nameof(berthing.PhoneMain)); + berthing.Email = berthingElement.GetChildText(nameof(berthing.Email)); + berthing.Group = berthingElement.GetChildText(nameof(berthing.Group)); + berthing.DescDetail = berthingElement.GetChildText(nameof(berthing.DescDetail)); + berthing.DefaultNominalCode = berthingElement.GetChildText(nameof(berthing.DefaultNominalCode)); + // Account. + berthing.AccountManagerCode = berthingElement.GetChildText(nameof(berthing.AccountManagerCode)); + berthing.AccountHandlerCode = berthingElement.GetChildText(nameof(berthing.AccountHandlerCode)); + berthing.AccountTypeCode = berthingElement.GetChildText(nameof(berthing.AccountTypeCode)); + berthing.AccountRatingCode = berthingElement.GetChildText(nameof(berthing.AccountRatingCode)); + // Contact. + berthing.ContactAreaCode = berthingElement.GetChildText(nameof(berthing.ContactAreaCode)); + berthing.ContactHandlerCode = berthingElement.GetChildText(nameof(berthing.ContactHandlerCode)); + berthing.ContactMethodCode = berthingElement.GetChildText(nameof(berthing.ContactMethodCode)); + berthing.ContactCallCycleCode = berthingElement.GetChildText(nameof(berthing.ContactCallCycleCode)); + berthing.CallsPerYear = StringUtil.ToInt(berthingElement.GetChildText(nameof(berthing.CallsPerYear))); + berthing.LastCall = DateUtil.ParseXmlDateTime(berthingElement.GetChildText(nameof(berthing.LastCall))); + // Customer. + berthing.OrderLeadTimeCode = berthingElement.GetChildText(nameof(berthing.OrderLeadTimeCode)); + berthing.DeliveryTypeCode = berthingElement.GetChildText(nameof(berthing.DeliveryTypeCode)); + berthing.DeliveryMethodCode = berthingElement.GetChildText(nameof(berthing.DeliveryMethodCode)); + berthing.DeliveryCourierCode = berthingElement.GetChildText(nameof(berthing.DeliveryCourierCode)); + berthing.DeliveryBookInCode = berthingElement.GetChildText(nameof(berthing.DeliveryBookInCode)); + // Transactions. + berthing.AmountTransMax = StringUtil.ToDecimal(berthingElement.GetChildText(nameof(berthing.AmountTransMax))); + berthing.AnnualSalesTarget = StringUtil.ToDecimal(berthingElement.GetChildText(nameof(berthing.AnnualSalesTarget))); + berthing.CreditLimit = StringUtil.ToDecimal(berthingElement.GetChildText(nameof(berthing.CreditLimit))); + berthing.AccountBalance = StringUtil.ToDecimal(berthingElement.GetChildText(nameof(berthing.AccountBalance))); + berthing.DiscountType = EnumUtil.ParseEnum(berthingElement.GetChildText(nameof(berthing.DiscountType)), Sbm.DiscountType.NoDiscount); + berthing.DiscountRate = StringUtil.ToDecimal(berthingElement.GetChildText(nameof(berthing.DiscountRate))); + berthing.PriceSetId = new SysId(StringUtil.ToInt(berthingElement.GetChildText(nameof(berthing.PriceSetId)))); + berthing.TaxCodeId = new SysId(StringUtil.ToInt(berthingElement.GetChildText(nameof(berthing.TaxCodeId)))); + berthing.PaymentTerms = StringUtil.ToShort(berthingElement.GetChildText(nameof(berthing.PaymentTerms))); + berthing.InvoiceDesc = berthingElement.GetChildText(nameof(berthing.InvoiceDesc)); + berthing.Terminated = DateUtil.ParseXmlDateTime(berthingElement.GetChildText(nameof(berthing.Terminated))); + berthing.Notes = berthingElement.GetChildText(nameof(berthing.Notes)); + berthing.Status = SacsSystem.GetStatusForCode(berthingElement.GetChildText(nameof(berthing.Status))); + berthing.SetCreateStamp(DateUtil.ParseXmlDateTime(berthingElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(berthingElement.GetChildText("CreateBy"))), berthingElement.GetChildText("CreateHost")); + berthing.SetUpdateStamp(DateUtil.ParseXmlDateTime(berthingElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(berthingElement.GetChildText("UpdateBy"))), berthingElement.GetChildText("UpdateHost")); + berthing.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Association column definitions. + public override ColumnDfn GetAssociationColumnDfn (SbmAssociation.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Association query filter. + public override List GetAssociationQueryFilter (SbmAssociation.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetAssociationQueryFilter_Mobile (SbmAssociation.Params prm) + { + Dictionary filter = new Dictionary(); + + // Association Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Association. + if ((int)prm.AssociationType > 0) filter.Add(nameof(prm.AssociationType), ((int)prm.AssociationType).ToString()); + if (SysId.IsValid(prm.AffiliateIdOwner)) filter.Add(nameof(prm.AffiliateIdOwner), SysId.ToString(prm.AffiliateIdOwner)); + if (SysId.IsValid(prm.AffiliateIdTarget)) filter.Add(nameof(prm.AffiliateIdTarget), SysId.ToString(prm.AffiliateIdTarget)); + if (SysId.IsValid(prm.PriceSetId)) filter.Add(nameof(prm.PriceSetId), SysId.ToString(prm.PriceSetId)); + if (SysId.IsValid(prm.AffiliateIdContactGroup)) filter.Add(nameof(prm.AffiliateIdContactGroup), SysId.ToString(prm.AffiliateIdContactGroup)); + if (!StringUtil.IsEmpty(prm.Code)) filter.Add(nameof(prm.Code), prm.Code); + if (!StringUtil.IsEmpty(prm.CodePartial)) filter.Add(nameof(prm.CodePartial), prm.CodePartial); + if (!StringUtil.IsEmpty(prm.NameTargetFull)) filter.Add(nameof(prm.NameTargetFull), prm.NameTargetFull); + if (!StringUtil.IsEmpty(prm.NameTargetPartial)) filter.Add(nameof(prm.NameTargetPartial), prm.NameTargetPartial); + if (!StringUtil.IsEmpty(prm.GroupFull)) filter.Add(nameof(prm.GroupFull), prm.GroupFull); + if (!StringUtil.IsEmpty(prm.GroupPartial)) filter.Add(nameof(prm.GroupPartial), prm.GroupPartial); + if (!StringUtil.IsEmpty(prm.AddressPartial)) filter.Add(nameof(prm.AddressPartial), prm.AddressPartial); + if (!StringUtil.IsEmpty(prm.PostcodePartial)) filter.Add(nameof(prm.PostcodePartial), prm.PostcodePartial); + + if (!StringUtil.IsEmpty(prm.DefaultNominalCodeFull)) filter.Add(nameof(prm.DefaultNominalCodeFull), prm.DefaultNominalCodeFull); + if (!StringUtil.IsEmpty(prm.DefaultNominalCodePartial)) filter.Add(nameof(prm.DefaultNominalCodePartial), prm.DefaultNominalCodePartial); + if (prm.AccountManagerCodes.Count > 0) filter.Add(nameof(prm.AccountManagerCodes), prm.AccountManagerCodes.Concat(",")); + if (prm.AccountHandlerCodes.Count > 0) filter.Add(nameof(prm.AccountHandlerCodes), prm.AccountHandlerCodes.Concat(",")); + if (prm.AccountTypeCodes.Count > 0) filter.Add(nameof(prm.AccountTypeCodes), prm.AccountTypeCodes.Concat(",")); + if (prm.AccountRatingCodes.Count > 0) filter.Add(nameof(prm.AccountRatingCodes), prm.AccountRatingCodes.Concat(",")); + if (prm.ContactAreaCodes.Count > 0) filter.Add(nameof(prm.ContactAreaCodes), prm.ContactAreaCodes.Concat(",")); + if (prm.ContactHandlerCodes.Count > 0) filter.Add(nameof(prm.ContactHandlerCodes), prm.ContactHandlerCodes.Concat(",")); + if (prm.ContactMethodCodes.Count > 0) filter.Add(nameof(prm.ContactMethodCodes), prm.ContactMethodCodes.Concat(",")); + if (prm.ContactCallCycleCodes.Count > 0) filter.Add(nameof(prm.ContactCallCycleCodes), prm.ContactCallCycleCodes.Concat(",")); + if (prm.OrderLeadTimeCodes.Count > 0) filter.Add(nameof(prm.OrderLeadTimeCodes), prm.OrderLeadTimeCodes.Concat(",")); + if (prm.DeliveryTypeCodes.Count > 0) filter.Add(nameof(prm.DeliveryTypeCodes), prm.DeliveryTypeCodes.Concat(",")); + if (prm.DeliveryMethodCodes.Count > 0) filter.Add(nameof(prm.DeliveryMethodCodes), prm.DeliveryMethodCodes.Concat(",")); + if (prm.DeliveryCourierCodes.Count > 0) filter.Add(nameof(prm.DeliveryCourierCodes), prm.DeliveryCourierCodes.Concat(",")); + if (prm.DeliveryBookInCodes.Count > 0) filter.Add(nameof(prm.DeliveryBookInCodes), prm.DeliveryBookInCodes.Concat(",")); + + // Association must have a transaction active at some time between the specified dates (one date can be specified for open ended period). + if ((int)prm.TransactionStatusCat > 0) filter.Add(nameof(prm.TransactionStatusCat), ((int)prm.TransactionStatusCat).ToString()); + if (DateUtil.IsValid(prm.TransActiveFrom)) filter.Add(nameof(prm.TransActiveFrom), DateUtil.FormatXmlDate(prm.TransActiveFrom)); + if (DateUtil.IsValid(prm.TransActiveTo)) filter.Add(nameof(prm.TransActiveTo), DateUtil.FormatXmlDate(prm.TransActiveTo)); + if (SysId.IsValid(prm.InterfaceIdExcludeSystemAccounts)) filter.Add(nameof(prm.InterfaceIdExcludeSystemAccounts), SysId.ToString(prm.InterfaceIdExcludeSystemAccounts)); + + if (prm.Supervised > 0) filter.Add(nameof(prm.Supervised), ((int)prm.Supervised).ToString()); + if (prm.PrimaryOnly != false) filter.Add(nameof(prm.PrimaryOnly), prm.PrimaryOnly.ToString()); + if (DateUtil.IsValid(prm.ApplicableFrom)) filter.Add(nameof(prm.ApplicableFrom), DateUtil.FormatXmlDate(prm.ApplicableFrom)); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + if (!StringUtil.IsEmpty(prm.SeasonalCategoryCode)) filter.Add(nameof(prm.SeasonalCategoryCode), prm.SeasonalCategoryCode); + + if (prm.AddressContext > 0) filter.Add(nameof(prm.AddressContext), ((int)prm.AddressContext).ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Association sort columns. + public List GetAssociationSortColumns (SbmAssociation.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Association count. + public override long GetAssociationCount (SbmAssociation.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Association list. + public override List GetAssociationList (SbmAssociation.Params prm) + { + List associations = new List(); + throw new NotImplementedException(); + } + public async Task> GetAssociationList_Mobile (SbmAssociation.Params prmAssociation, SacsTaskData taskData) + { + ClearErrorState(); + List associations = new List(); + String fn = GetType().Name + ".GetAssociationList_Mobile"; + + // Association columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteAssociationQuery_Mobile(columns, prmAssociation, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmAssociation.Column.Id); + SysId affiliateIdOwner = itemData.GetIdValue(SbmAssociation.Column.AffIdOwner); + //Sbm.AssociationType associationType = EnumUtil.ParseEnum(itemData.GetValue(SbmAssociation.Column.AssociationType), Sbm.AssociationType.Unknown); + SysId affiliateIdTarget = itemData.GetIdValue(SbmAssociation.Column.AffIdTarget); + ushort flags = (ushort)itemData.GetIntValue(SbmAssociation.Column.Flag); + // Create item. + SbmAssociation_Mobile berthing = new SbmAssociation_Mobile(UserContext, id, affiliateIdOwner, Sbm.AssociationType.Unknown, affiliateIdTarget, flags); + // Populate item properties. + foreach (SbmAssociation.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmAssociation.Column.AffIdOwner: berthing.AffiliateIdOwner = itemData.GetIdValue(column); break; + case SbmAssociation.Column.AffIdTarget: berthing.AffiliateIdTarget = itemData.GetIdValue(column); break; + case SbmAssociation.Column.Type: berthing.AssociationType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.AssociationType.Unknown); break; + case SbmAssociation.Column.Code: berthing.Code = value; break; + case SbmAssociation.Column.ExtRef: berthing.RefExt = value; break; + case SbmAssociation.Column.Location: berthing.Location = value; break; + case SbmAssociation.Column.Role: berthing.Role = value; break; + case SbmAssociation.Column.PhoneMain: berthing.PhoneMain = value; break; + case SbmAssociation.Column.Email: berthing.Email = value; break; + case SbmAssociation.Column.Group: berthing.Group = value; break; + case SbmAssociation.Column.DescDetail: berthing.DescDetail = value; break; + case SbmAssociation.Column.DefaultNominalCode: berthing.DefaultNominalCode = value; break; + // Account. + case SbmAssociation.Column.AccountManagerCode: berthing.AccountManagerCode = value; break; + case SbmAssociation.Column.AccountHandlerCode: berthing.AccountHandlerCode = value; break; + case SbmAssociation.Column.AccountTypeCode: berthing.AccountTypeCode = value; break; + case SbmAssociation.Column.AccountRatingCode: berthing.AccountRatingCode = value; break; + // Contact. + case SbmAssociation.Column.ContactAreaCode: berthing.ContactAreaCode = value; break; + case SbmAssociation.Column.ContactHandlerCode: berthing.ContactHandlerCode = value; break; + case SbmAssociation.Column.ContactMethodCode: berthing.ContactMethodCode = value; break; + case SbmAssociation.Column.ContactCallCycleCode: berthing.ContactCallCycleCode = value; break; + case SbmAssociation.Column.CallsPerYear: berthing.CallsPerYear = itemData.GetIntValue(column); break; + case SbmAssociation.Column.LastCall: berthing.LastCall = itemData.GetDateTimeValue(column); break; + // Customer. + case SbmAssociation.Column.OrderLeadTimeCode: berthing.OrderLeadTimeCode = value; break; + case SbmAssociation.Column.DeliveryTypeCode: berthing.DeliveryTypeCode = value; break; + case SbmAssociation.Column.DeliveryMethodCode: berthing.DeliveryMethodCode = value; break; + //case SbmAssociation.Column.DeliveryCourierCode: berthing.DeliveryCourierCode = value; break; + case SbmAssociation.Column.DeliveryBookInCode: berthing.DeliveryBookInCode = value; break; + // Transactions. + case SbmAssociation.Column.AmountTransMax: berthing.AmountTransMax = itemData.GetDecimalValue(column); break; + case SbmAssociation.Column.AnnualSalesTarget: berthing.AnnualSalesTarget = itemData.GetDecimalValue(column); break; + case SbmAssociation.Column.CreditLimit: berthing.CreditLimit = itemData.GetDecimalValue(column); break; + case SbmAssociation.Column.AccountBalance: berthing.AccountBalance = itemData.GetDecimalValue(column); break; + case SbmAssociation.Column.DiscountType: berthing.DiscountType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.DiscountType.NoDiscount); break; + case SbmAssociation.Column.DiscountRate: berthing.DiscountRate = itemData.GetDecimalValue(column); break; + case SbmAssociation.Column.PriceSetId: berthing.PriceSetId = itemData.GetIdValue(column); break; + case SbmAssociation.Column.TaxCodeId: berthing.TaxCodeId = itemData.GetIdValue(column); break; + case SbmAssociation.Column.PaymentTerms: berthing.PaymentTerms = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmAssociation.Column.InvoiceDesc: berthing.InvoiceDesc = value; break; + case SbmAssociation.Column.Terminated: berthing.Terminated = itemData.GetDateTimeValue(column); break; + case SbmAssociation.Column.Notes: berthing.Notes = value; break; + case SbmAssociation.Column.Status: berthing.Status = SacsSystem.GetStatusForCode(value); break; + } + } + associations.Add(berthing); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Associations: " + associations.Count); + return associations; + } + + + //------------------------------------------------------------------- + // Association query execution. + public override DbResultSet ExecuteAssociationQuery (List columns, SbmAssociation.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteAssociationQuery_Mobile (List berthingColumns, SbmAssociation.Params prmAssociation, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmAssociation.Column column in berthingColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetAssociationRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetAssociationQueryFilter_Mobile(prmAssociation), columns, this.GetSortColumns_Mobile(prmAssociation), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetAssociationRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Association; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SysParams.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SysParams.cs new file mode 100644 index 0000000..8a39fbf --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SysParams.cs @@ -0,0 +1,279 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAccountMgr_Mobile + { + //******************************************************************* + // S y s P a r a m s + //******************************************************************* + // Create SysParam. + public override SbmSysParam CreateSysParam (Sbm.SysParamCategory category, string name) + { + ClearErrorState(); + return new SbmSysParam_Mobile(UserContext, null, category, name, 0); + } + + //------------------------------------------------------------------- + // Get SysParam. + public override SbmSysParam GetSysParam (SbmSysParam.Params prmSysParam) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate SysParam. + public override bool IsValidSysParamData (SbmSysParam.Data data, SbmSysParam.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidSysParamData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert SysParam. + public override bool InsertSysParam (SbmSysParam sysParam, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidSysParam(sysParam)) return false; + if (SysId.IsValid(sysParam.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update SysParam. + public override bool UpdateSysParam (SbmSysParam sysParam, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidSysParam(sysParam)) return false; + if (!SysId.IsValid(sysParam.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete SysParam. + public override bool SysParamCanBeDeleted (SbmSysParam sysParam) + { + ClearErrorState(); + if (!base.SysParamCanBeDeleted(sysParam)) return false; + return true; + } + public override bool DeleteSysParam (SbmSysParam sysParam, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!SysParamCanBeDeleted(sysParam)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement sysParamElement, SbmSysParam sysParam, DbUpdateInfo dbUpdateInfo) + { + sysParamElement.AppendElement(nameof(sysParam.Id), SysId.ToString(sysParam.Id)); + sysParamElement.AppendElement(nameof(sysParam.Category), sysParam.Category.ToString()); + sysParamElement.AppendElement(nameof(sysParam.Name), sysParam.Name); + sysParamElement.AppendElement(nameof(sysParam.Value), sysParam.Value); + sysParamElement.AppendElement(nameof(sysParam.AffiliateIdOwner), SysId.ToString(sysParam.AffiliateIdOwner)); + sysParamElement.AppendElement(nameof(sysParam.AffiliateIdTarget), SysId.ToString(sysParam.AffiliateIdTarget)); + sysParamElement.AppendElement(nameof(sysParam.AssociationId), SysId.ToString(sysParam.AssociationId)); + sysParamElement.AppendElement(nameof(sysParam.Notes), sysParam.Notes); + sysParamElement.AppendElement(nameof(sysParam.Status), SacsSystem.GetStatusCode(sysParam.Status)); + sysParamElement.AppendElement(nameof(sysParam.Flags), sysParam.Flags.ToString()); + if (!SysId.IsValid(sysParam.Id)) + { + sysParamElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + sysParamElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + sysParamElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + sysParamElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + sysParamElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + sysParamElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement sysParamElement, SbmSysParam sysParam) + { + //sysParam.Id = new SysId(StringUtil.ToInt(sysParamElement.GetChildText("Id"))); + sysParam.Category = EnumUtil.ParseEnum(sysParamElement.GetChildText(nameof(sysParam.Category)), Sbm.SysParamCategory.Any); + sysParam.Name = sysParamElement.GetChildText(nameof(sysParam.Name)); + sysParam.Value = sysParamElement.GetChildText(nameof(sysParam.Value)); + sysParam.AffiliateIdOwner = new SysId(StringUtil.ToInt(sysParamElement.GetChildText(nameof(sysParam.AffiliateIdOwner)))); + sysParam.AffiliateIdTarget = new SysId(StringUtil.ToInt(sysParamElement.GetChildText(nameof(sysParam.AffiliateIdTarget)))); + sysParam.AssociationId = new SysId(StringUtil.ToInt(sysParamElement.GetChildText(nameof(sysParam.AssociationId)))); + sysParam.Notes = sysParamElement.GetChildText(nameof(sysParam.Notes)); + sysParam.Status = SacsSystem.GetStatusForCode(sysParamElement.GetChildText(nameof(sysParam.Status))); + sysParam.SetCreateStamp(DateUtil.ParseXmlDateTime(sysParamElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(sysParamElement.GetChildText("CreateBy"))), sysParamElement.GetChildText("CreateHost")); + sysParam.SetUpdateStamp(DateUtil.ParseXmlDateTime(sysParamElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(sysParamElement.GetChildText("UpdateBy"))), sysParamElement.GetChildText("UpdateHost")); + sysParam.AcceptChanges(); + } + + //------------------------------------------------------------------- + // SysParam column definitions. + public override ColumnDfn GetSysParamColumnDfn (SbmSysParam.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // SysParam query filter. + public override List GetSysParamQueryFilter (SbmSysParam.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetSysParamQueryFilter_Mobile (SbmSysParam.Params prm) + { + Dictionary filter = new Dictionary(); + + // Category. + if ((int)prm.Category > 0) filter.Add(nameof(prm.Category), ((int)prm.Category).ToString()); + + // SysParam Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Name. + if (!StringUtil.IsEmpty(prm.Name)) filter.Add(nameof(prm.Name), prm.Name); + if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add(nameof(prm.NamePartial), prm.NamePartial); + + // AffIdOwner. + if (SysId.IsValid(prm.AffIdOwner)) filter.Add(nameof(prm.AffIdOwner), SysId.ToString(prm.AffIdOwner)); + + // AffIdTarget. + if (SysId.IsValid(prm.AffIdTarget)) filter.Add(nameof(prm.AffIdTarget), SysId.ToString(prm.AffIdTarget)); + + // Assoc Id. + if (SysId.IsValid(prm.AssocId)) filter.Add(nameof(prm.AssocId), SysId.ToString(prm.AssocId)); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // SysParam sort columns. + public List GetSysParamSortColumns (SbmSysParam.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // SysParam count. + public override long GetSysParamCount (SbmSysParam.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // SysParam list. + public override List GetSysParamList (SbmSysParam.Params prm) + { + List sysParams = new List(); + throw new NotImplementedException(); + } + public async Task> GetSysParamList_Mobile (SbmSysParam.Params prmSysParam, SacsTaskData taskData) + { + ClearErrorState(); + List sysParams = new List(); + String fn = GetType().Name + ".GetSysParamList_Mobile"; + + // SysParam columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteSysParamQuery_Mobile(columns, prmSysParam, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmSysParam.Column.Id); + Sbm.SysParamCategory category = EnumUtil.ParseEnum(itemData.GetValue(SbmSysParam.Column.Category), Sbm.SysParamCategory.Any); + string name = itemData.GetValue(SbmSysParam.Column.Name); + ushort flags = (ushort)itemData.GetIntValue(SbmSysParam.Column.Flag); + // Create item. + SbmSysParam_Mobile sysParam = new SbmSysParam_Mobile(UserContext, id, category, name, flags); + // Populate item properties. + foreach (SbmSysParam.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmSysParam.Column.Category: sysParam.Category = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.SysParamCategory.Any); break; + case SbmSysParam.Column.Name: sysParam.Name = value; break; + case SbmSysParam.Column.Value: sysParam.Value = value; break; + case SbmSysParam.Column.AffIdOwner: sysParam.AffiliateIdOwner = itemData.GetIdValue(column); break; + case SbmSysParam.Column.AffIdTarget: sysParam.AffiliateIdTarget = itemData.GetIdValue(column); break; + case SbmSysParam.Column.AssocId: sysParam.AssociationId = itemData.GetIdValue(column); break; + case SbmSysParam.Column.Notes: sysParam.Notes = value; break; + case SbmSysParam.Column.Status: sysParam.Status = SacsSystem.GetStatusForCode(value); break; + } + } + sysParams.Add(sysParam); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " SysParams: " + sysParams.Count); + return sysParams; + } + + + //------------------------------------------------------------------- + // SysParam query execution. + public override DbResultSet ExecuteSysParamQuery (List columns, SbmSysParam.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteSysParamQuery_Mobile (List sysParamColumns, SbmSysParam.Params prmSysParam, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmSysParam.Column column in sysParamColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetSysParamRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetSysParamQueryFilter_Mobile(prmSysParam), columns, this.GetSortColumns_Mobile(prmSysParam), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetSysParamRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.SysParam; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SystemAccountUsers.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SystemAccountUsers.cs new file mode 100644 index 0000000..3113cbc --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SystemAccountUsers.cs @@ -0,0 +1,268 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAccountMgr_Mobile + { + //******************************************************************* + // S y s t e m A c c o u n t U s e r s + //******************************************************************* + // Create SystemAccountUser. + public override SbmSystemAccountUser CreateSystemAccountUser (SysId accountId, SysId userId) + { + ClearErrorState(); + return new SbmSystemAccountUser_Mobile(UserContext, accountId, userId, 0); + } + + //------------------------------------------------------------------- + // Get SystemAccountUser. + public override SbmSystemAccountUser GetSystemAccountUser (SbmSystemAccountUser.Params prmSystemAccountUser) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate SystemAccountUser. + public override bool IsValidSystemAccountUserData (SbmSystemAccountUser.Data data, SbmSystemAccountUser.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidSystemAccountUserData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert SystemAccountUser. + public override bool InsertSystemAccountUser (SbmSystemAccountUser systemAccountUser, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidSystemAccountUser(systemAccountUser)) return false; + if (SysId.IsValid(systemAccountUser.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update SystemAccountUser. + public override bool UpdateSystemAccountUser (SbmSystemAccountUser systemAccountUser, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidSystemAccountUser(systemAccountUser)) return false; + if (!SysId.IsValid(systemAccountUser.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete SystemAccountUser. + public override bool SystemAccountUserCanBeDeleted (SbmSystemAccountUser systemAccountUser) + { + ClearErrorState(); + if (!base.SystemAccountUserCanBeDeleted(systemAccountUser)) return false; + return true; + } + public override bool DeleteSystemAccountUser (SbmSystemAccountUser systemAccountUser, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!SystemAccountUserCanBeDeleted(systemAccountUser)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement systemAccountUserElement, SbmSystemAccountUser systemAccountUser, DbUpdateInfo dbUpdateInfo) + { + systemAccountUserElement.AppendElement(nameof(systemAccountUser.Id), SysId.ToString(systemAccountUser.Id)); + systemAccountUserElement.AppendElement(nameof(systemAccountUser.AccountId), SysId.ToString(systemAccountUser.AccountId)); + systemAccountUserElement.AppendElement(nameof(systemAccountUser.UserId), SysId.ToString(systemAccountUser.UserId)); + systemAccountUserElement.AppendElement(nameof(systemAccountUser.Notes), systemAccountUser.Notes); + systemAccountUserElement.AppendElement(nameof(systemAccountUser.Status), SacsSystem.GetStatusCode(systemAccountUser.Status)); + systemAccountUserElement.AppendElement(nameof(systemAccountUser.Flags), systemAccountUser.Flags.ToString()); + if (!SysId.IsValid(systemAccountUser.Id)) + { + systemAccountUserElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + systemAccountUserElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + systemAccountUserElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + systemAccountUserElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + systemAccountUserElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + systemAccountUserElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement systemAccountUserElement, SbmSystemAccountUser systemAccountUser) + { + //systemAccountUser.Id = new SysId(StringUtil.ToInt(systemAccountUserElement.GetChildText("Id"))); + systemAccountUser.AccountId = new SysId(StringUtil.ToInt(systemAccountUserElement.GetChildText(nameof(systemAccountUser.AccountId)))); + systemAccountUser.UserId = new SysId(StringUtil.ToInt(systemAccountUserElement.GetChildText(nameof(systemAccountUser.UserId)))); + systemAccountUser.Notes = systemAccountUserElement.GetChildText(nameof(systemAccountUser.Notes)); + systemAccountUser.Status = SacsSystem.GetStatusForCode(systemAccountUserElement.GetChildText(nameof(systemAccountUser.Status))); + systemAccountUser.SetCreateStamp(DateUtil.ParseXmlDateTime(systemAccountUserElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(systemAccountUserElement.GetChildText("CreateBy"))), systemAccountUserElement.GetChildText("CreateHost")); + systemAccountUser.SetUpdateStamp(DateUtil.ParseXmlDateTime(systemAccountUserElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(systemAccountUserElement.GetChildText("UpdateBy"))), systemAccountUserElement.GetChildText("UpdateHost")); + systemAccountUser.AcceptChanges(); + } + + //------------------------------------------------------------------- + // SystemAccountUser column definitions. + public override ColumnDfn GetSystemAccountUserColumnDfn (SbmSystemAccountUser.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // SystemAccountUser query filter. + public override List GetSystemAccountUserQueryFilter (SbmSystemAccountUser.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetSystemAccountUserQueryFilter_Mobile (SbmSystemAccountUser.Params prm) + { + Dictionary filter = new Dictionary(); + + // SystemAccountUser Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Interface Id. + if (SysId.IsValid(prm.InterfaceId)) filter.Add(nameof(prm.InterfaceId), SysId.ToString(prm.InterfaceId)); + + // Account Id. + if (SysId.IsValid(prm.AccountId)) filter.Add(nameof(prm.AccountId), SysId.ToString(prm.AccountId)); + + // Assoc Id. + if (SysId.IsValid(prm.AssocId)) filter.Add(nameof(prm.AssocId), SysId.ToString(prm.AssocId)); + + // User Id. + if (SysId.IsValid(prm.UserId)) filter.Add(nameof(prm.UserId), SysId.ToString(prm.UserId)); + + // Affiliate Id. + if (SysId.IsValid(prm.AffiliateId)) filter.Add(nameof(prm.AffiliateId), SysId.ToString(prm.AffiliateId)); + + // Restrict to active. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // SystemAccountUser sort columns. + public List GetSystemAccountUserSortColumns (SbmSystemAccountUser.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // SystemAccountUser count. + public override long GetSystemAccountUserCount (SbmSystemAccountUser.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // SystemAccountUser list. + public override List GetSystemAccountUserList (SbmSystemAccountUser.Params prm) + { + List systemAccountUsers = new List(); + throw new NotImplementedException(); + } + public async Task> GetSystemAccountUserList_Mobile (SbmSystemAccountUser.Params prmSystemAccountUser, SacsTaskData taskData) + { + ClearErrorState(); + List systemAccountUsers = new List(); + String fn = GetType().Name + ".GetSystemAccountUserList_Mobile"; + + // SystemAccountUser columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteSystemAccountUserQuery_Mobile(columns, prmSystemAccountUser, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId accountId = itemData.GetIdValue(SbmSystemAccountUser.Column.AccountId); + SysId userId = itemData.GetIdValue(SbmSystemAccountUser.Column.UserId); + ushort flags = (ushort)itemData.GetIntValue(SbmSystemAccountUser.Column.Flag); + // Create item. + SbmSystemAccountUser_Mobile systemAccountUser = new SbmSystemAccountUser_Mobile(UserContext, accountId, userId, flags); + // Populate item properties. + foreach (SbmSystemAccountUser.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmSystemAccountUser.Column.AccountId: systemAccountUser.AccountId = itemData.GetIdValue(column); break; + case SbmSystemAccountUser.Column.UserId: systemAccountUser.UserId = itemData.GetIdValue(column); break; + case SbmSystemAccountUser.Column.Notes: systemAccountUser.Notes = value; break; + case SbmSystemAccountUser.Column.Status: systemAccountUser.Status = SacsSystem.GetStatusForCode(value); break; + } + } + systemAccountUsers.Add(systemAccountUser); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " SystemAccountUsers: " + systemAccountUsers.Count); + return systemAccountUsers; + } + + + //------------------------------------------------------------------- + // SystemAccountUser query execution. + public override DbResultSet SystemAccountUserExecuteQuery (List columns, SbmSystemAccountUser.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteSystemAccountUserQuery_Mobile (List systemAccountUserColumns, SbmSystemAccountUser.Params prmSystemAccountUser, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmSystemAccountUser.Column column in systemAccountUserColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetSystemAccountUserRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetSystemAccountUserQueryFilter_Mobile(prmSystemAccountUser), columns, this.GetSortColumns_Mobile(prmSystemAccountUser), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetSystemAccountUserRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.SystemAccountUser; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SystemAccounts.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SystemAccounts.cs new file mode 100644 index 0000000..b9101b9 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SystemAccounts.cs @@ -0,0 +1,291 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAccountMgr_Mobile + { + //******************************************************************* + // S y s t e m A c c o u n t + //******************************************************************* + // Create SystemAccount. + public override SbmSystemAccount CreateSystemAccount (Sbm.SystemAccountType systemAccountType, SysId interfaceId, SysId assocId) + { + ClearErrorState(); + return new SbmSystemAccount_Mobile(UserContext, null, null, systemAccountType, interfaceId, assocId, 0); + } + + //------------------------------------------------------------------- + // Get SystemAccount. + public override SbmSystemAccount GetSystemAccount (SbmSystemAccount.Params prmSystemAccount) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate SystemAccount. + public override bool IsValidSystemAccountData (SbmSystemAccount.Data data, SbmSystemAccount.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidSystemAccountData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert SystemAccount. + public override bool InsertSystemAccount (SbmSystemAccount systemAccount, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidSystemAccount(systemAccount)) return false; + if (SysId.IsValid(systemAccount.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update SystemAccount. + public override bool UpdateSystemAccount (SbmSystemAccount systemAccount, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidSystemAccount(systemAccount)) return false; + if (!SysId.IsValid(systemAccount.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete SystemAccount. + public override bool SystemAccountCanBeDeleted (SbmSystemAccount systemAccount) + { + ClearErrorState(); + if (!base.SystemAccountCanBeDeleted(systemAccount)) return false; + return true; + } + public override bool DeleteSystemAccount (SbmSystemAccount systemAccount, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!SystemAccountCanBeDeleted(systemAccount)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement systemAccountElement, SbmSystemAccount systemAccount, DbUpdateInfo dbUpdateInfo) + { + systemAccountElement.AppendElement(nameof(systemAccount.Id), SysId.ToString(systemAccount.Id)); + systemAccountElement.AppendElement(nameof(systemAccount.AffiliateIdOwner), SysId.ToString(systemAccount.AffiliateIdOwner)); + systemAccountElement.AppendElement(nameof(systemAccount.SystemAccountType), systemAccount.SystemAccountType.ToString()); + systemAccountElement.AppendElement(nameof(systemAccount.InterfaceId), SysId.ToString(systemAccount.InterfaceId)); + systemAccountElement.AppendElement(nameof(systemAccount.AssociationId), SysId.ToString(systemAccount.AssociationId)); + systemAccountElement.AppendElement(nameof(systemAccount.Code), systemAccount.Code); + systemAccountElement.AppendElement(nameof(systemAccount.Name), systemAccount.Name); + systemAccountElement.AppendElement(nameof(systemAccount.AuthCodeEnc), systemAccount.AuthCodeEnc); + systemAccountElement.AppendElement(nameof(systemAccount.Notes), systemAccount.Notes); + systemAccountElement.AppendElement(nameof(systemAccount.Status), SacsSystem.GetStatusCode(systemAccount.Status)); + systemAccountElement.AppendElement(nameof(systemAccount.Flags), systemAccount.Flags.ToString()); + if (!SysId.IsValid(systemAccount.Id)) + { + systemAccountElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + systemAccountElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + systemAccountElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + systemAccountElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + systemAccountElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + systemAccountElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement systemAccountElement, SbmSystemAccount systemAccount) + { + //systemAccount.Id = new SysId(StringUtil.ToInt(systemAccountElement.GetChildText("Id"))); + systemAccount.AffiliateIdOwner = new SysId(StringUtil.ToInt(systemAccountElement.GetChildText(nameof(systemAccount.AffiliateIdOwner)))); + systemAccount.SystemAccountType = EnumUtil.ParseEnum(systemAccountElement.GetChildText(nameof(systemAccount.SystemAccountType)), Sbm.SystemAccountType.Unknown); + systemAccount.InterfaceId = new SysId(StringUtil.ToInt(systemAccountElement.GetChildText(nameof(systemAccount.InterfaceId)))); + systemAccount.AssociationId = new SysId(StringUtil.ToInt(systemAccountElement.GetChildText(nameof(systemAccount.AssociationId)))); + systemAccount.Code = systemAccountElement.GetChildText(nameof(systemAccount.Code)); + systemAccount.Name = systemAccountElement.GetChildText(nameof(systemAccount.Name)); + systemAccount.AuthCodeEnc = systemAccountElement.GetChildText(nameof(systemAccount.AuthCodeEnc)); + systemAccount.Notes = systemAccountElement.GetChildText(nameof(systemAccount.Notes)); + systemAccount.Status = SacsSystem.GetStatusForCode(systemAccountElement.GetChildText(nameof(systemAccount.Status))); + systemAccount.SetCreateStamp(DateUtil.ParseXmlDateTime(systemAccountElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(systemAccountElement.GetChildText("CreateBy"))), systemAccountElement.GetChildText("CreateHost")); + systemAccount.SetUpdateStamp(DateUtil.ParseXmlDateTime(systemAccountElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(systemAccountElement.GetChildText("UpdateBy"))), systemAccountElement.GetChildText("UpdateHost")); + systemAccount.AcceptChanges(); + } + + //------------------------------------------------------------------- + // SystemAccount column definitions. + public override ColumnDfn GetSystemAccountColumnDfn (SbmSystemAccount.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // SystemAccount query filter. + public override List GetSystemAccountQueryFilter (SbmSystemAccount.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetSystemAccountQueryFilter_Mobile (SbmSystemAccount.Params prm) + { + Dictionary filter = new Dictionary(); + + // SystemAccount Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // System account type. + if ((int)prm.Type > 0) filter.Add(nameof(prm.Type), ((int)prm.Type).ToString()); + + // Interface Id. + if (SysId.IsValid(prm.InterfaceId)) filter.Add(nameof(prm.InterfaceId), SysId.ToString(prm.InterfaceId)); + + // Assoc Id. + if (SysId.IsValid(prm.AssocId)) filter.Add(nameof(prm.AssocId), SysId.ToString(prm.AssocId)); + + // Affiliate exclude Id user accounts. + if (SysId.IsValid(prm.AffiliateExcludeIdUserAccounts)) filter.Add(nameof(prm.AffiliateExcludeIdUserAccounts), SysId.ToString(prm.AffiliateExcludeIdUserAccounts)); + + // Code. + if (!StringUtil.IsEmpty(prm.Code)) filter.Add(nameof(prm.Code), prm.Code); + if (!StringUtil.IsEmpty(prm.CodePartial)) filter.Add(nameof(prm.CodePartial), prm.CodePartial); + + // Name. + if (!StringUtil.IsEmpty(prm.Name)) filter.Add(nameof(prm.Name), prm.Name); + if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add(nameof(prm.NamePartial), prm.NamePartial); + + // Has items. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // SystemAccount sort columns. + public List GetSystemAccountSortColumns (SbmSystemAccount.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // SystemAccount count. + public override long GetSystemAccountCount (SbmSystemAccount.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // SystemAccount list. + public override List GetSystemAccountList (SbmSystemAccount.Params prm) + { + List systemAccounts = new List(); + throw new NotImplementedException(); + } + public async Task> GetSystemAccountList_Mobile (SbmSystemAccount.Params prmSystemAccount, SacsTaskData taskData) + { + ClearErrorState(); + List systemAccounts = new List(); + String fn = GetType().Name + ".GetSystemAccountList_Mobile"; + + // SystemAccount columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteSystemAccountQuery_Mobile(columns, prmSystemAccount, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmSystemAccount.Column.Id); + SysId affIdOwner = new SysId(); + //Sbm.SystemAccountType systemAccountType = EnumUtil.ParseEnum(itemData.GetValue(SbmSystemAccount.Column.SystemAccountType), Sbm.SystemAccountType.Unknown); + SysId interfaceId = new SysId(); + SysId assocId = new SysId(); + ushort flags = (ushort)itemData.GetIntValue(SbmSystemAccount.Column.Flag); + // Create item. + SbmSystemAccount_Mobile systemAccount = new SbmSystemAccount_Mobile(UserContext, id, affIdOwner, Sbm.SystemAccountType.Unknown, interfaceId, assocId, flags); + // Populate item properties. + foreach (SbmSystemAccount.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmSystemAccount.Column.AffIdOwner: systemAccount.AffIdOwner = itemData.GetIdValue(column); break; + //case SbmSystemAccount.Column.SystemAccountType: systemAccount.SystemAccountType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.SystemAccountType.Unknown); break; + //case SbmSystemAccount.Column.InterfaceId: systemAccount.InterfaceId = itemData.GetIdValue(column); break; + //case SbmSystemAccount.Column.AssocId: systemAccount.AssocId = itemData.GetIdValue(column); break; + case SbmSystemAccount.Column.Code: systemAccount.Code = value; break; + case SbmSystemAccount.Column.Name: systemAccount.Name = value; break; + //case SbmSystemAccount.Column.AuthCodeEnc: systemAccount.AuthCodeEnc = value; break; + case SbmSystemAccount.Column.Notes: systemAccount.Notes = value; break; + case SbmSystemAccount.Column.Status: systemAccount.Status = SacsSystem.GetStatusForCode(value); break; + } + } + systemAccounts.Add(systemAccount); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " SystemAccounts: " + systemAccounts.Count); + return systemAccounts; + } + + + //------------------------------------------------------------------- + // SystemAccount query execution. + public override DbResultSet SystemAccountExecuteQuery (List columns, SbmSystemAccount.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteSystemAccountQuery_Mobile (List systemAccountColumns, SbmSystemAccount.Params prmSystemAccount, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmSystemAccount.Column column in systemAccountColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetSystemAccountRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetSystemAccountQueryFilter_Mobile(prmSystemAccount), columns, this.GetSortColumns_Mobile(prmSystemAccount), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetSystemAccountRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.SystemAccount; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SystemUsers.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SystemUsers.cs new file mode 100644 index 0000000..c43fc38 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile-SystemUsers.cs @@ -0,0 +1,281 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAccountMgr_Mobile + { + //******************************************************************* + // S y s t e m U s e r s + //******************************************************************* + // Create SystemUser. + public override SbmSystemUser CreateSystemUser (SysId interfaceId, SysId affiliateId) + { + ClearErrorState(); + return new SbmSystemUser_Mobile(UserContext, null, null, interfaceId, affiliateId, 0); + } + + //------------------------------------------------------------------- + // Get SystemUser. + public override SbmSystemUser GetSystemUser (SbmSystemUser.Params prmSystemUser) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate SystemUser. + public override bool IsValidSystemUserData (SbmSystemUser.Data data, SbmSystemUser.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidSystemUserData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert SystemUser. + public override bool InsertSystemUser (SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidSystemUser(systemUser)) return false; + if (SysId.IsValid(systemUser.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update SystemUser. + public override bool UpdateSystemUser (SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidSystemUser(systemUser)) return false; + if (!SysId.IsValid(systemUser.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete SystemUser. + public override bool SystemUserCanBeDeleted (SbmSystemUser systemUser) + { + ClearErrorState(); + if (!base.SystemUserCanBeDeleted(systemUser)) return false; + return true; + } + public override bool DeleteSystemUser (SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!SystemUserCanBeDeleted(systemUser)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement systemUserElement, SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo) + { + systemUserElement.AppendElement(nameof(systemUser.Id), SysId.ToString(systemUser.Id)); + systemUserElement.AppendElement(nameof(systemUser.AffiliateIdOwner), SysId.ToString(systemUser.AffiliateIdOwner)); + systemUserElement.AppendElement(nameof(systemUser.InterfaceId), SysId.ToString(systemUser.InterfaceId)); + systemUserElement.AppendElement(nameof(systemUser.AffiliateId), SysId.ToString(systemUser.AffiliateId)); + systemUserElement.AppendElement(nameof(systemUser.Code), systemUser.Code); + systemUserElement.AppendElement(nameof(systemUser.AuthCodeEnc), systemUser.AuthCodeEnc); + systemUserElement.AppendElement(nameof(systemUser.Notes), systemUser.Notes); + systemUserElement.AppendElement(nameof(systemUser.Status), SacsSystem.GetStatusCode(systemUser.Status)); + systemUserElement.AppendElement(nameof(systemUser.Flags), systemUser.Flags.ToString()); + if (!SysId.IsValid(systemUser.Id)) + { + systemUserElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + systemUserElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + systemUserElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + systemUserElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + systemUserElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + systemUserElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement systemUserElement, SbmSystemUser systemUser) + { + //systemUser.Id = new SysId(StringUtil.ToInt(systemUserElement.GetChildText("Id"))); + systemUser.AffiliateIdOwner = new SysId(StringUtil.ToInt(systemUserElement.GetChildText(nameof(systemUser.AffiliateIdOwner)))); + systemUser.InterfaceId = new SysId(StringUtil.ToInt(systemUserElement.GetChildText(nameof(systemUser.InterfaceId)))); + systemUser.AffiliateId = new SysId(StringUtil.ToInt(systemUserElement.GetChildText(nameof(systemUser.AffiliateId)))); + systemUser.Code = systemUserElement.GetChildText(nameof(systemUser.Code)); + systemUser.AuthCodeEnc = systemUserElement.GetChildText(nameof(systemUser.AuthCodeEnc)); + systemUser.Notes = systemUserElement.GetChildText(nameof(systemUser.Notes)); + systemUser.Status = SacsSystem.GetStatusForCode(systemUserElement.GetChildText(nameof(systemUser.Status))); + systemUser.SetCreateStamp(DateUtil.ParseXmlDateTime(systemUserElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(systemUserElement.GetChildText("CreateBy"))), systemUserElement.GetChildText("CreateHost")); + systemUser.SetUpdateStamp(DateUtil.ParseXmlDateTime(systemUserElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(systemUserElement.GetChildText("UpdateBy"))), systemUserElement.GetChildText("UpdateHost")); + systemUser.AcceptChanges(); + } + + //------------------------------------------------------------------- + // SystemUser column definitions. + public override ColumnDfn GetSystemUserColumnDfn (SbmSystemUser.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // SystemUser query filter. + public override List GetSystemUserQueryFilter (SbmSystemUser.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetSystemUserQueryFilter_Mobile (SbmSystemUser.Params prm) + { + Dictionary filter = new Dictionary(); + + // SystemUser Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Aff Id owner. + if (SysId.IsValid(prm.AffIdOwner)) filter.Add(nameof(prm.AffIdOwner), SysId.ToString(prm.AffIdOwner)); + + // Interface Id. + if (SysId.IsValid(prm.InterfaceId)) filter.Add(nameof(prm.InterfaceId), SysId.ToString(prm.InterfaceId)); + + // Affiliate Id. + if (SysId.IsValid(prm.AffiliateId)) filter.Add(nameof(prm.AffiliateId), SysId.ToString(prm.AffiliateId)); + + // Association exclude Id user accounts. + if (SysId.IsValid(prm.AssocationExcludeIdUserAccounts)) filter.Add(nameof(prm.AssocationExcludeIdUserAccounts), SysId.ToString(prm.AssocationExcludeIdUserAccounts)); + + // Code. + if (!StringUtil.IsEmpty(prm.Code)) filter.Add(nameof(prm.Code), prm.Code); + if (!StringUtil.IsEmpty(prm.CodePartial)) filter.Add(nameof(prm.CodePartial), prm.CodePartial); + + // Email. + if (!StringUtil.IsEmpty(prm.Email)) filter.Add(nameof(prm.Email), prm.Email); + if (!StringUtil.IsEmpty(prm.EmailPartial)) filter.Add(nameof(prm.EmailPartial), prm.EmailPartial); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // SystemUser sort columns. + public List GetSystemUserSortColumns (SbmSystemUser.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // SystemUser count. + public override long GetSystemUserCount (SbmSystemUser.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // SystemUser list. + public override List GetSystemUserList (SbmSystemUser.Params prm) + { + List systemUsers = new List(); + throw new NotImplementedException(); + } + public async Task> GetSystemUserList_Mobile (SbmSystemUser.Params prmSystemUser, SacsTaskData taskData) + { + ClearErrorState(); + List systemUsers = new List(); + String fn = GetType().Name + ".GetSystemUserList_Mobile"; + + // SystemUser columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteSystemUserQuery_Mobile(columns, prmSystemUser, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmSystemUser.Column.Id); + SysId affIdOwner = new SysId(); + SysId interfaceId = new SysId(); + SysId affiliateId = new SysId(); + ushort flags = (ushort)itemData.GetIntValue(SbmSystemUser.Column.Flag); + // Create item. + SbmSystemUser_Mobile systemUser = new SbmSystemUser_Mobile(UserContext, id, affIdOwner, interfaceId, affiliateId,flags); + // Populate item properties. + foreach (SbmSystemUser.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmSystemUser.Column.AffIdOwner: systemUser.AffIdOwner = itemData.GetIdValue(column); break; + //case SbmSystemUser.Column.InterfaceId: systemUser.InterfaceId = itemData.GetIdValue(column); break; + //case SbmSystemUser.Column.AffiliateId: systemUser.AffiliateId = itemData.GetIdValue(column); break; + case SbmSystemUser.Column.Code: systemUser.Code = value; break; + //case SbmSystemUser.Column.AuthCodeEnc: systemUser.AuthCodeEnc = value; break; + case SbmSystemUser.Column.Notes: systemUser.Notes = value; break; + case SbmSystemUser.Column.Status: systemUser.Status = SacsSystem.GetStatusForCode(value); break; + } + } + systemUsers.Add(systemUser); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " SystemUsers: " + systemUsers.Count); + return systemUsers; + } + + + //------------------------------------------------------------------- + // SystemUser query execution. + public override DbResultSet SystemUserExecuteQuery (List columns, SbmSystemUser.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteSystemUserQuery_Mobile (List systemUserColumns, SbmSystemUser.Params prmSystemUser, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmSystemUser.Column column in systemUserColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetSystemUserRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetSystemUserQueryFilter_Mobile(prmSystemUser), columns, this.GetSortColumns_Mobile(prmSystemUser), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetSystemUserRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.SystemUser; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile.cs new file mode 100644 index 0000000..d5d2bbb --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAccountMgr_Mobile.cs @@ -0,0 +1,138 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.Mgr; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + public partial class SbmAccountMgr_Mobile : SbmAccountMgr, ISbmItemMgr_Mobile + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + + //------------------------------------------------------------------- + // Construction. + public SbmAccountMgr_Mobile (SbmUserContext userContext) : + base(userContext) + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + public String UserCode { get; } + public String EmailAddress { get; } + + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool SystemAccountDatabaseIsValid => throw new NotImplementedException(); + + public override string GetAffiliateName (SysId affiliateId) + { + throw new NotImplementedException(); + } + + public override SysId GetAssociationAffIdTarget (SysId idAssoc) + { + throw new NotImplementedException(); + } + + public override string GetAssociationCode (SysId idAssoc) + { + throw new NotImplementedException(); + } + + public override string GetAssociationOwnerName (SysId associationIdOwner) + { + throw new NotImplementedException(); + } + + public override string GetAssociationTargetName (SysId associationIdTarget) + { + throw new NotImplementedException(); + } + + public override List GetAssocIdsForTargets (SysId affiliateIdOwner, Sbm.AssociationType associationType, List affiliateIdsTarget) + { + throw new NotImplementedException(); + } + + public override List GetCustomerAssocIdsForTargets (List affiliateIdsTarget) + { + throw new NotImplementedException(); + } + + public override List GetCustomerTargetIds (List affiliateIdsInclude, List affiliateIdsExclude) + { + throw new NotImplementedException(); + } + + public override SbmDbDfn.ColumnIdx GetDbCol (SbmAssociation.Column column) + { + throw new NotImplementedException(); + } + + public override List GetMemberTargetIds (SysId affiliateIdOwner) + { + throw new NotImplementedException(); + } + + public override long OwnerAssociationCount (SysId id, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true) + { + throw new NotImplementedException(); + } + + public override bool OwnerHasAssociations (SysId id, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true) + { + throw new NotImplementedException(); + } + + public override bool OwnerHasAssociationsWith (SysId ownerId, SysId affiliateIdTarget, bool activeOnly = true) + { + throw new NotImplementedException(); + } + + public override long OwnerTargetAssociationCount (SysId ownerId, SysId affiliateIdTarget, bool activeOnly = true) + { + throw new NotImplementedException(); + } + + public override long TargetAssociationCount (SysId id, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true) + { + throw new NotImplementedException(); + } + + public override bool TargetHasAssociations (SysId id, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true) + { + throw new NotImplementedException(); + } + + public override bool VerifyAsPrimaryAddress (SbmAddress addressPrimary) + { + throw new NotImplementedException(); + } + + public override List GetAssociationTypesInUse () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-AssetCategories.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-AssetCategories.cs new file mode 100644 index 0000000..05b3f43 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-AssetCategories.cs @@ -0,0 +1,304 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAssetMgr_Mobile + { + //******************************************************************* + // A s s e t C a t e g o r y + //******************************************************************* + // Create AssetCategory. + public override SbmAssetCategory CreateAssetCategory (Sbm.AssetType assetType) + { + ClearErrorState(); + return new SbmAssetCategory_Mobile(UserContext, null, 0); + } + + //------------------------------------------------------------------- + // Get AssetCategory. + public override SbmAssetCategory GetAssetCategory (SbmAssetCategory.Params prmAssetCategory) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate AssetCategory. + public override bool IsValidAssetCategoryData (SbmAssetCategory.Data data, SbmAssetCategory.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidAssetCategoryData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert AssetCategory. + public override bool InsertAssetCategory (SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAssetCategory(assetCategory)) return false; + if (SysId.IsValid(assetCategory.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update AssetCategory. + public override bool UpdateAssetCategory (SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAssetCategory(assetCategory)) return false; + if (!SysId.IsValid(assetCategory.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete AssetCategory. + public override bool AssetCategoryCanBeDeleted (SbmAssetCategory assetCategory) + { + ClearErrorState(); + if (!base.AssetCategoryCanBeDeleted(assetCategory)) return false; + return true; + } + public override bool DeleteAssetCategory (SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!AssetCategoryCanBeDeleted(assetCategory)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement assetCategoryElement, SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo) + { + assetCategoryElement.AppendElement(nameof(assetCategory.Id), SysId.ToString(assetCategory.Id)); + assetCategoryElement.AppendElement(nameof(assetCategory.AffIdOwner), SysId.ToString(assetCategory.AffIdOwner)); + assetCategoryElement.AppendElement(nameof(assetCategory.AssetType), assetCategory.AssetType.ToString()); + assetCategoryElement.AppendElement(nameof(assetCategory.Code), assetCategory.Code); + assetCategoryElement.AppendElement(nameof(assetCategory.DescBrief), assetCategory.DescBrief); + assetCategoryElement.AppendElement(nameof(assetCategory.IncomeType), assetCategory.IncomeType.ToString()); + assetCategoryElement.AppendElement(nameof(assetCategory.AssocIdSupplier), SysId.ToString(assetCategory.AssocIdSupplier)); + assetCategoryElement.AppendElement(nameof(assetCategory.PaymentTerms), assetCategory.PaymentTerms.ToString("N3")); + assetCategoryElement.AppendElement(nameof(assetCategory.TaxCodeIdPurchase), SysId.ToString(assetCategory.TaxCodeIdPurchase)); + assetCategoryElement.AppendElement(nameof(assetCategory.AssocIdCustomer), SysId.ToString(assetCategory.AssocIdCustomer)); + assetCategoryElement.AppendElement(nameof(assetCategory.TaxCodeIdSell), SysId.ToString(assetCategory.TaxCodeIdSell)); + assetCategoryElement.AppendElement(nameof(assetCategory.TaxCodeIdProfit), SysId.ToString(assetCategory.TaxCodeIdProfit)); + assetCategoryElement.AppendElement(nameof(assetCategory.DisposeCode), assetCategory.DisposeCode); + assetCategoryElement.AppendElement(nameof(assetCategory.UomIdRentalCost), SysId.ToString(assetCategory.UomIdRentalCost)); + assetCategoryElement.AppendElement(nameof(assetCategory.TaxCodeIdRentalCost), SysId.ToString(assetCategory.TaxCodeIdRentalCost)); + assetCategoryElement.AppendElement(nameof(assetCategory.UomIdRentalPrice), SysId.ToString(assetCategory.UomIdRentalPrice)); + assetCategoryElement.AppendElement(nameof(assetCategory.TaxCodeIdRentalPrice), SysId.ToString(assetCategory.TaxCodeIdRentalPrice)); + assetCategoryElement.AppendElement(nameof(assetCategory.Notes), assetCategory.Notes); + assetCategoryElement.AppendElement(nameof(assetCategory.Status), SacsSystem.GetStatusCode(assetCategory.Status)); + assetCategoryElement.AppendElement(nameof(assetCategory.Flags), assetCategory.Flags.ToString()); + if (!SysId.IsValid(assetCategory.Id)) + { + assetCategoryElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + assetCategoryElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + assetCategoryElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + assetCategoryElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + assetCategoryElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + assetCategoryElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement assetCategoryElement, SbmAssetCategory assetCategory) + { + assetCategory.Id = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText("Id"))); + assetCategory.AffIdOwner = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.AffIdOwner)))); + assetCategory.AssetType = EnumUtil.ParseEnum(assetCategoryElement.GetChildText(nameof(assetCategory.AssetType)), Sbm.AssetType.Unknown); + assetCategory.Code = assetCategoryElement.GetChildText(nameof(assetCategory.Code)); + assetCategory.DescBrief = assetCategoryElement.GetChildText(nameof(assetCategory.DescBrief)); + assetCategory.IncomeType = EnumUtil.ParseEnum(assetCategoryElement.GetChildText(nameof(assetCategory.IncomeType)), Sbm.AssetIncomeType.Unknown); + assetCategory.AssocIdSupplier = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.AssocIdSupplier)))); + assetCategory.PaymentTerms = StringUtil.ToShort(assetCategoryElement.GetChildText(nameof(assetCategory.PaymentTerms))); + assetCategory.TaxCodeIdPurchase = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.TaxCodeIdPurchase)))); + assetCategory.AssocIdCustomer = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.AssocIdCustomer)))); + assetCategory.TaxCodeIdSell = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.TaxCodeIdSell)))); + assetCategory.TaxCodeIdProfit = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.TaxCodeIdProfit)))); + assetCategory.DisposeCode = assetCategoryElement.GetChildText(nameof(assetCategory.DisposeCode)); + assetCategory.UomIdRentalCost = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.UomIdRentalCost)))); + assetCategory.TaxCodeIdRentalCost = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.TaxCodeIdRentalCost)))); + assetCategory.UomIdRentalPrice = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.UomIdRentalPrice)))); + assetCategory.TaxCodeIdRentalPrice = new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText(nameof(assetCategory.TaxCodeIdRentalPrice)))); + assetCategory.Notes = assetCategoryElement.GetChildText(nameof(assetCategory.Notes)); + assetCategory.Status = SacsSystem.GetStatusForCode(assetCategoryElement.GetChildText(nameof(assetCategory.Status))); + assetCategory.SetCreateStamp(DateUtil.ParseXmlDateTime(assetCategoryElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText("CreateBy"))), assetCategoryElement.GetChildText("CreateHost")); + assetCategory.SetUpdateStamp(DateUtil.ParseXmlDateTime(assetCategoryElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(assetCategoryElement.GetChildText("UpdateBy"))), assetCategoryElement.GetChildText("UpdateHost")); + assetCategory.AcceptChanges(); + } + + //------------------------------------------------------------------- + // AssetCategory column definitions. + public override ColumnDfn GetAssetCategoryColumnDfn (SbmAssetCategory.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // AssetCategory query filter. + public override List GetAssetCategoryQueryFilter (SbmAssetCategory.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetAssetCategoryQueryFilter_Mobile (SbmAssetCategory.Params prm) + { + Dictionary filter = new Dictionary(); + + // AssetCategory Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Asset type. + if ((int)prm.AssetType > 0) filter.Add(nameof(prm.AssetType), ((int)prm.AssetType).ToString()); + + // Code. + if (!StringUtil.IsEmpty(prm.Code)) filter.Add(nameof(prm.Code), prm.Code); + if (!StringUtil.IsEmpty(prm.CodePartial)) filter.Add(nameof(prm.CodePartial), prm.CodePartial); + + // Desc brief. + if (!StringUtil.IsEmpty(prm.DescBrief)) filter.Add(nameof(prm.DescBrief), prm.DescBrief); + if (!StringUtil.IsEmpty(prm.DescBriefPartial)) filter.Add(nameof(prm.DescBriefPartial), prm.DescBriefPartial); + + // Restrict to active. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // AssetCategory sort columns. + public List GetAssetCategorySortColumns (SbmAssetCategory.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // AssetCategory count. + public override long GetAssetCategoryCount (SbmAssetCategory.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // AssetCategory list. + public override List GetAssetCategoryList (SbmAssetCategory.Params prm) + { + List assetCategories = new List(); + throw new NotImplementedException(); + } + public async Task> GetAssetCategoryList_Mobile (SbmAssetCategory.Params prmAssetCategory, SacsTaskData taskData) + { + ClearErrorState(); + List assetCategories = new List(); + String fn = GetType().Name + ".GetAssetCategoryList_Mobile"; + + // AssetCategory columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteAssetCategoryQuery_Mobile(columns, prmAssetCategory, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmAssetCategory.Column.Id); + ushort flags = (ushort)itemData.GetIntValue(SbmAssetCategory.Column.Flag); + // Create item. + SbmAssetCategory_Mobile assetCategory = new SbmAssetCategory_Mobile(UserContext, id, flags); + // Populate item properties. + foreach (SbmAssetCategory.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmAssetCategory.Column.AffIdOwner: assetCategory.AffIdOwner = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.AssetType: assetCategory.AssetType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.AssetType.Unknown); break; + case SbmAssetCategory.Column.Code: assetCategory.Code = value; break; + case SbmAssetCategory.Column.DescBrief: assetCategory.DescBrief = value; break; + case SbmAssetCategory.Column.IncomeType: assetCategory.IncomeType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.AssetIncomeType.Unknown); break; + case SbmAssetCategory.Column.AssocIdSupplier: assetCategory.AssocIdSupplier = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.PaymentTerms: assetCategory.PaymentTerms = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmAssetCategory.Column.TaxCodeIdPurchase: assetCategory.TaxCodeIdPurchase = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.AssocIdCustomer: assetCategory.AssocIdCustomer = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.TaxCodeIdSell: assetCategory.TaxCodeIdSell = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.TaxCodeIdProfit: assetCategory.TaxCodeIdProfit = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.DisposeCode: assetCategory.DisposeCode = value; break; + case SbmAssetCategory.Column.UomIdRentalCost: assetCategory.UomIdRentalCost = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.TaxCodeIdRentalCost: assetCategory.TaxCodeIdRentalCost = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.UomIdRentalPrice: assetCategory.UomIdRentalPrice = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.TaxCodeIdRentalPrice: assetCategory.TaxCodeIdRentalPrice = itemData.GetIdValue(column); break; + case SbmAssetCategory.Column.Notes: assetCategory.Notes = value; break; + case SbmAssetCategory.Column.Status: assetCategory.Status = SacsSystem.GetStatusForCode(value); break; + } + } + assetCategories.Add(assetCategory); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " AssetCategories: " + assetCategories.Count); + return assetCategories; + } + + + //------------------------------------------------------------------- + // AssetCategory query execution. + public override DbResultSet ExecuteAssetCategoryQuery (List columns, SbmAssetCategory.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteAssetCategoryQuery_Mobile (List assetCategoryColumns, SbmAssetCategory.Params prmAssetCategory, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmAssetCategory.Column column in assetCategoryColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetAssetCategoryRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetAssetCategoryQueryFilter_Mobile(prmAssetCategory), columns, this.GetSortColumns_Mobile(prmAssetCategory), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetAssetCategoryRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.AssetCategory; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-AssetProcesses.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-AssetProcesses.cs new file mode 100644 index 0000000..401bd04 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-AssetProcesses.cs @@ -0,0 +1,274 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAssetMgr_Mobile + { + //******************************************************************* + // A s s e t P r o c e s s e s + //******************************************************************* + // Create AssetProcess. + public override SbmAssetProcess CreateAssetProcess (Sbm.AssetType assetType) + { + ClearErrorState(); + return new SbmAssetProcess_Mobile(UserContext, null, null, null, 0); + } + + //------------------------------------------------------------------- + // Get AssetProcess. + public override SbmAssetProcess GetAssetProcess (SbmAssetProcess.Params prmAssetProcess) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate AssetProcess. + public override bool IsValidAssetProcessData (SbmAssetProcess.Data data, SbmAssetProcess.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidAssetProcessData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert AssetProcess. + public override bool InsertAssetProcess (SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAssetProcess(assetProcess)) return false; + if (SysId.IsValid(assetProcess.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update AssetProcess. + public override bool UpdateAssetProcess (SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAssetProcess(assetProcess)) return false; + if (!SysId.IsValid(assetProcess.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete AssetProcess. + public override bool AssetProcessCanBeDeleted (SbmAssetProcess assetProcess) + { + ClearErrorState(); + if (!base.AssetProcessCanBeDeleted(assetProcess)) return false; + return true; + } + public override bool DeleteAssetProcess (SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!AssetProcessCanBeDeleted(assetProcess)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement assetProcessElement, SbmAssetProcess assetProcess, DbUpdateInfo dbUpdateInfo) + { + assetProcessElement.AppendElement(nameof(assetProcess.Id), SysId.ToString(assetProcess.Id)); + assetProcessElement.AppendElement(nameof(assetProcess.AssetId), SysId.ToString(assetProcess.AssetId)); + assetProcessElement.AppendElement(nameof(assetProcess.Seq), assetProcess.Seq); + assetProcessElement.AppendElement(nameof(assetProcess.ProcessId), SysId.ToString(assetProcess.ProcessId)); + assetProcessElement.AppendElement(nameof(assetProcess.RequiredOn), DateUtil.FormatXmlDateTime(assetProcess.RequiredOn)); + assetProcessElement.AppendElement(nameof(assetProcess.ExpectedOn), DateUtil.FormatXmlDateTime(assetProcess.ExpectedOn)); + assetProcessElement.AppendElement(nameof(assetProcess.ProcessedOn), DateUtil.FormatXmlDateTime(assetProcess.ProcessedOn)); + assetProcessElement.AppendElement(nameof(assetProcess.Notes), assetProcess.Notes); + assetProcessElement.AppendElement(nameof(assetProcess.Status), SacsSystem.GetStatusCode(assetProcess.Status)); + assetProcessElement.AppendElement(nameof(assetProcess.Flags), assetProcess.Flags.ToString()); + if (!SysId.IsValid(assetProcess.Id)) + { + assetProcessElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + assetProcessElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + assetProcessElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + assetProcessElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + assetProcessElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + assetProcessElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement assetProcessElement, SbmAssetProcess assetProcess) + { + //assetProcess.Id = new SysId(StringUtil.ToInt(assetProcessElement.GetChildText("Id"))); + assetProcess.AssetId = new SysId(StringUtil.ToInt(assetProcessElement.GetChildText(nameof(assetProcess.AssetId)))); + assetProcess.Seq = assetProcessElement.GetChildText(nameof(assetProcess.Seq)); + assetProcess.ProcessId = new SysId(StringUtil.ToInt(assetProcessElement.GetChildText(nameof(assetProcess.ProcessId)))); + assetProcess.RequiredOn = DateUtil.ParseXmlDateTime(assetProcessElement.GetChildText(nameof(assetProcess.RequiredOn))); + assetProcess.ExpectedOn = DateUtil.ParseXmlDateTime(assetProcessElement.GetChildText(nameof(assetProcess.ExpectedOn))); + assetProcess.ProcessedOn = DateUtil.ParseXmlDateTime(assetProcessElement.GetChildText(nameof(assetProcess.ProcessedOn))); + assetProcess.Notes = assetProcessElement.GetChildText(nameof(assetProcess.Notes)); + assetProcess.Status = SacsSystem.GetStatusForCode(assetProcessElement.GetChildText(nameof(assetProcess.Status))); + assetProcess.SetCreateStamp(DateUtil.ParseXmlDateTime(assetProcessElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(assetProcessElement.GetChildText("CreateBy"))), assetProcessElement.GetChildText("CreateHost")); + assetProcess.SetUpdateStamp(DateUtil.ParseXmlDateTime(assetProcessElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(assetProcessElement.GetChildText("UpdateBy"))), assetProcessElement.GetChildText("UpdateHost")); + assetProcess.AcceptChanges(); + } + + //------------------------------------------------------------------- + // AssetProcess column definitions. + public override ColumnDfn GetAssetProcessColumnDfn (SbmAssetProcess.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // AssetProcess query filter. + public override List GetAssetProcessQueryFilter (SbmAssetProcess.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetAssetProcessQueryFilter_Mobile (SbmAssetProcess.Params prm) + { + Dictionary filter = new Dictionary(); + + // AssetProcess Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Asset Id. + if (SysId.IsValid(prm.AssetId)) filter.Add(nameof(prm.AssetId), SysId.ToString(prm.AssetId)); + + // Process Id. + if (SysId.IsValid(prm.ProcessId)) filter.Add(nameof(prm.ProcessId), SysId.ToString(prm.ProcessId)); + + // Seq. + if (!StringUtil.IsEmpty(prm.Seq)) filter.Add(nameof(prm.Seq), prm.Seq); + + // Restrict to active. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // AssetProcess sort columns. + public List GetAssetProcessSortColumns (SbmAssetProcess.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // AssetProcess count. + public override long GetAssetProcessCount (SbmAssetProcess.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // AssetProcess list. + public override List GetAssetProcessList (SbmAssetProcess.Params prm) + { + List assetProcesses = new List(); + throw new NotImplementedException(); + } + public async Task> GetAssetProcessList_Mobile (SbmAssetProcess.Params prmAssetProcess, SacsTaskData taskData) + { + ClearErrorState(); + List assetProcesses = new List(); + String fn = GetType().Name + ".GetAssetProcessList_Mobile"; + + // AssetProcess columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteAssetProcessQuery_Mobile(columns, prmAssetProcess, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmAssetProcess.Column.Id); + SysId assetId = itemData.GetIdValue(SbmAssetProcess.Column.AssetId); + SysId processId = itemData.GetIdValue(SbmAssetProcess.Column.ProcessId); + ushort flags = (ushort)itemData.GetIntValue(SbmAssetProcess.Column.Flag); + // Create item. + SbmAssetProcess_Mobile assetProcess = new SbmAssetProcess_Mobile(UserContext, id, assetId, processId, flags); + // Populate item properties. + foreach (SbmAssetProcess.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmAssetProcess.Column.AssetId: assetProcess.AssetId = itemData.GetIdValue(column); break; + case SbmAssetProcess.Column.Seq: assetProcess.Seq = value; break; + case SbmAssetProcess.Column.ProcessId: assetProcess.ProcessId = itemData.GetIdValue(column); break; + case SbmAssetProcess.Column.RequiredOn: assetProcess.RequiredOn = itemData.GetDateTimeValue(column); break; + case SbmAssetProcess.Column.ExpectedOn: assetProcess.ExpectedOn = itemData.GetDateTimeValue(column); break; + case SbmAssetProcess.Column.ProcessedOn: assetProcess.ProcessedOn = itemData.GetDateTimeValue(column); break; + case SbmAssetProcess.Column.Notes: assetProcess.Notes = value; break; + case SbmAssetProcess.Column.Status: assetProcess.Status = SacsSystem.GetStatusForCode(value); break; + } + } + assetProcesses.Add(assetProcess); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " AssetProcesses: " + assetProcesses.Count); + return assetProcesses; + } + + + //------------------------------------------------------------------- + // AssetProcess query execution. + public override DbResultSet ExecuteAssetProcessQuery (List columns, SbmAssetProcess.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteAssetProcessQuery_Mobile (List assetProcessColumns, SbmAssetProcess.Params prmAssetProcess, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmAssetProcess.Column column in assetProcessColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetAssetProcessRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetAssetProcessQueryFilter_Mobile(prmAssetProcess), columns, this.GetSortColumns_Mobile(prmAssetProcess), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetAssetProcessRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.AssetProcess; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-Assets.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-Assets.cs new file mode 100644 index 0000000..feee454 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-Assets.cs @@ -0,0 +1,370 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAssetMgr_Mobile + { + //******************************************************************* + // A s s e t s + //******************************************************************* + // Create Asset. + public override SbmAsset CreateAsset (SysId assetCatId) + { + ClearErrorState(); + return new SbmAsset_Mobile(UserContext, null, assetCatId, 0); + } + + //------------------------------------------------------------------- + // Get Asset. + public override SbmAsset GetAsset (SbmAsset.Params prmAsset) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Asset. + public override bool IsValidAssetData (SbmAsset.Data data, SbmAsset.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidAssetData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Asset. + public override bool InsertAsset (SbmAsset asset, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAsset(asset)) return false; + if (SysId.IsValid(asset.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Asset. + public override bool UpdateAsset (SbmAsset asset, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidAsset(asset)) return false; + if (!SysId.IsValid(asset.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Asset. + public override bool AssetCanBeDeleted (SbmAsset asset) + { + ClearErrorState(); + if (!base.AssetCanBeDeleted(asset)) return false; + return true; + } + public override bool DeleteAsset (SbmAsset asset, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!AssetCanBeDeleted(asset)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement assetElement, SbmAsset asset, DbUpdateInfo dbUpdateInfo) + { + assetElement.AppendElement(nameof(asset.Id), SysId.ToString(asset.Id)); + assetElement.AppendElement(nameof(asset.AssetCategoryId), SysId.ToString(asset.AssetCategoryId)); + assetElement.AppendElement(nameof(asset.SerialNumber), asset.SerialNumber); + assetElement.AppendElement(nameof(asset.RefExt), asset.RefExt); + assetElement.AppendElement(nameof(asset.DescBrief), asset.DescBrief); + assetElement.AppendElement(nameof(asset.ItemId), asset.ItemId.ToString()); + assetElement.AppendElement(nameof(asset.PurchaseOn), DateUtil.FormatXmlDateTime(asset.PurchaseOn)); + assetElement.AppendElement(nameof(asset.AssocIdSupplier), SysId.ToString(asset.AssocIdSupplier)); + assetElement.AppendElement(nameof(asset.PurchaseInvoiceRef), asset.PurchaseInvoiceRef); + assetElement.AppendElement(nameof(asset.PaymentTerms), asset.PaymentTerms.ToString("N3")); + assetElement.AppendElement(nameof(asset.AmountPurchase), asset.AmountPurchase.ToString("N3")); + assetElement.AppendElement(nameof(asset.TaxCodeIdPurchase), SysId.ToString(asset.TaxCodeIdPurchase)); + assetElement.AppendElement(nameof(asset.AmountPurchaseGross), asset.AmountPurchaseGross.ToString("N3")); + assetElement.AppendElement(nameof(asset.AmountSettlementGross), asset.AmountSettlementGross.ToString("N3")); + assetElement.AppendElement(nameof(asset.AmountEnhancementGross), asset.AmountEnhancementGross.ToString("N3")); + assetElement.AppendElement(nameof(asset.AssocIdCustomer), SysId.ToString(asset.AssocIdCustomer)); + assetElement.AppendElement(nameof(asset.SellCategoryCode), asset.SellCategoryCode); + assetElement.AppendElement(nameof(asset.AmountSell), asset.AmountSell.ToString("N3")); + assetElement.AppendElement(nameof(asset.TaxCodeIdSell), SysId.ToString(asset.TaxCodeIdSell)); + assetElement.AppendElement(nameof(asset.AmountSellGross), asset.AmountSellGross.ToString("N3")); + assetElement.AppendElement(nameof(asset.TaxCodeIdProfit), SysId.ToString(asset.TaxCodeIdProfit)); + assetElement.AppendElement(nameof(asset.SoldOn), DateUtil.FormatXmlDateTime(asset.SoldOn)); + assetElement.AppendElement(nameof(asset.AmountSold), asset.AmountSold.ToString("N3")); + assetElement.AppendElement(nameof(asset.AmountSoldGross), asset.AmountSoldGross.ToString("N3")); + assetElement.AppendElement(nameof(asset.DisposeCode), asset.DisposeCode); + assetElement.AppendElement(nameof(asset.DisposeOn), DateUtil.FormatXmlDateTime(asset.DisposeOn)); + assetElement.AppendElement(nameof(asset.DueBackOn), DateUtil.FormatXmlDateTime(asset.DueBackOn)); + assetElement.AppendElement(nameof(asset.AmountRentalCost), asset.AmountRentalCost.ToString("N3")); + assetElement.AppendElement(nameof(asset.UomIdRentalCost), SysId.ToString(asset.UomIdRentalCost)); + assetElement.AppendElement(nameof(asset.TaxCodeIdRentalCost), SysId.ToString(asset.TaxCodeIdRentalCost)); + assetElement.AppendElement(nameof(asset.AmountRentalPrice), asset.AmountRentalPrice.ToString("N3")); + assetElement.AppendElement(nameof(asset.UomIdRentalPrice), SysId.ToString(asset.UomIdRentalPrice)); + assetElement.AppendElement(nameof(asset.TaxCodeIdRentalPrice), SysId.ToString(asset.TaxCodeIdRentalPrice)); + assetElement.AppendElement(nameof(asset.ProcessIdNext), SysId.ToString(asset.ProcessIdNext)); + assetElement.AppendElement(nameof(asset.Notes), asset.Notes); + assetElement.AppendElement(nameof(asset.Status), SacsSystem.GetStatusCode(asset.Status)); + assetElement.AppendElement(nameof(asset.Flags), asset.Flags.ToString()); + if (!SysId.IsValid(asset.Id)) + { + assetElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + assetElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + assetElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + assetElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + assetElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + assetElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement assetElement, SbmAsset asset) + { + asset.Id = new SysId(StringUtil.ToInt(assetElement.GetChildText("Id"))); + asset.AssetCategoryId = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.AssetCategoryId)))); + asset.SerialNumber = assetElement.GetChildText(nameof(asset.SerialNumber)); + asset.RefExt = assetElement.GetChildText(nameof(asset.RefExt)); + asset.DescBrief = assetElement.GetChildText(nameof(asset.DescBrief)); + Sbm.ItemType itemType = EnumUtil.ParseEnum(assetElement.GetChildText("ItemType"), Sbm.ItemType.Unknown); + SysId itemId = new SysId(StringUtil.ToInt(assetElement.GetChildText("ItemId"))); + asset.ItemId = new ItemId((short)itemType, itemId); + asset.PurchaseOn = DateUtil.ParseXmlDateTime(assetElement.GetChildText(nameof(asset.PurchaseOn))); + asset.AssocIdSupplier = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.AssocIdSupplier)))); + asset.PurchaseInvoiceRef = assetElement.GetChildText(nameof(asset.PurchaseInvoiceRef)); + asset.PaymentTerms = StringUtil.ToShort(assetElement.GetChildText(nameof(asset.PaymentTerms))); + asset.AmountPurchase = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountPurchase))); + asset.TaxCodeIdPurchase = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.TaxCodeIdPurchase)))); + asset.AmountPurchaseGross = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountPurchaseGross))); + asset.AmountSettlementGross = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountSettlementGross))); + asset.AmountEnhancementGross = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountEnhancementGross))); + asset.AssocIdCustomer = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.AssocIdCustomer)))); + asset.SellCategoryCode = assetElement.GetChildText(nameof(asset.SellCategoryCode)); + asset.AmountSell = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountSell))); + asset.TaxCodeIdSell = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.TaxCodeIdSell)))); + asset.AmountSellGross = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountSellGross))); + asset.TaxCodeIdProfit = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.TaxCodeIdProfit)))); + asset.SoldOn = DateUtil.ParseXmlDateTime(assetElement.GetChildText(nameof(asset.SoldOn))); + asset.AmountSold = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountSold))); + asset.AmountSoldGross = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountSoldGross))); + asset.DisposeCode = assetElement.GetChildText(nameof(asset.DisposeCode)); + asset.DisposeOn = DateUtil.ParseXmlDateTime(assetElement.GetChildText(nameof(asset.DisposeOn))); + asset.DueBackOn = DateUtil.ParseXmlDateTime(assetElement.GetChildText(nameof(asset.DueBackOn))); + asset.AmountRentalCost = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountRentalCost))); + asset.UomIdRentalCost = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.UomIdRentalCost)))); + asset.TaxCodeIdRentalCost = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.TaxCodeIdRentalCost)))); + asset.AmountRentalPrice = StringUtil.ToDecimal(assetElement.GetChildText(nameof(asset.AmountRentalPrice))); + asset.UomIdRentalPrice = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.UomIdRentalPrice)))); + asset.TaxCodeIdRentalPrice = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.TaxCodeIdRentalPrice)))); + asset.ProcessIdNext = new SysId(StringUtil.ToInt(assetElement.GetChildText(nameof(asset.ProcessIdNext)))); + asset.Notes = assetElement.GetChildText(nameof(asset.Notes)); + asset.Status = SacsSystem.GetStatusForCode(assetElement.GetChildText(nameof(asset.Status))); + asset.SetCreateStamp(DateUtil.ParseXmlDateTime(assetElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(assetElement.GetChildText("CreateBy"))), assetElement.GetChildText("CreateHost")); + asset.SetUpdateStamp(DateUtil.ParseXmlDateTime(assetElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(assetElement.GetChildText("UpdateBy"))), assetElement.GetChildText("UpdateHost")); + asset.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Asset column definitions. + public override ColumnDfn GetAssetColumnDfn (SbmAsset.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Asset query filter. + public override List GetAssetQueryFilter (SbmAsset.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetAssetQueryFilter_Mobile (SbmAsset.Params prm) + { + Dictionary filter = new Dictionary(); + + // Asset Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Vessel Id. + if (SysId.IsValid(prm.AssetCatId)) filter.Add(nameof(prm.AssetCatId), SysId.ToString(prm.AssetCatId)); + + // Item type. + if ((int)prm.ItemType > 0) filter.Add(nameof(prm.ItemType), ((int)prm.ItemType).ToString()); + + // Serial number. + if (!StringUtil.IsEmpty(prm.SerialNumber)) filter.Add(nameof(prm.SerialNumber), prm.SerialNumber); + if (!StringUtil.IsEmpty(prm.SerialNumberPartial)) filter.Add(nameof(prm.SerialNumberPartial), prm.SerialNumberPartial); + + // Desc brief partial. + if (!StringUtil.IsEmpty(prm.DescBriefPartial)) filter.Add(nameof(prm.DescBriefPartial), prm.DescBriefPartial); + + // Item Id. + if (SysId.IsValid(prm.ItemId.Id)) filter.Add(nameof(prm.ItemId.Id), SysId.ToString(prm.ItemId.Id)); + + // Process Id next. + if (SysId.IsValid(prm.ProcessIdNext)) filter.Add(nameof(prm.ProcessIdNext), SysId.ToString(prm.ProcessIdNext)); + + // Process Id active. + if (SysId.IsValid(prm.ProcessIdActive)) filter.Add(nameof(prm.ProcessIdActive), SysId.ToString(prm.ProcessIdActive)); + + // Restrict to active. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Asset sort columns. + public List GetAssetSortColumns (SbmAsset.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Asset count. + public override long GetAssetCount (SbmAsset.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Asset list. + public override List GetAssetList (SbmAsset.Params prm) + { + List assets = new List(); + throw new NotImplementedException(); + } + public async Task> GetAssetList_Mobile (SbmAsset.Params prmAsset, SacsTaskData taskData) + { + ClearErrorState(); + List assets = new List(); + String fn = GetType().Name + ".GetAssetList_Mobile"; + + // Asset columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteAssetQuery_Mobile(columns, prmAsset, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmAsset.Column.Id); + SysId assetCatId = itemData.GetIdValue(SbmAsset.Column.AssetCategoryId); + ushort flags = (ushort)itemData.GetIntValue(SbmAsset.Column.Flag); + // Create item. + SbmAsset_Mobile asset = new SbmAsset_Mobile(UserContext, id, assetCatId, flags); + // Populate item properties. + foreach (SbmAsset.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmAsset.Column.AssetCategoryId: asset.AssetCategoryId = itemData.GetIdValue(column); break; + case SbmAsset.Column.SerialNumber: asset.SerialNumber = value; break; + //case SbmAsset.Column.RefExt: asset.RefExt = value; break; + case SbmAsset.Column.DescBrief: asset.DescBrief = value; break; + //case SbmAsset.Column.ItemId: asset.ItemId = EnumUtil.ParseEnum(itemData.GetValue(column), new ItemId()); break; + case SbmAsset.Column.PurchaseOn: asset.PurchaseOn = itemData.GetDateTimeValue(column); break; + //case SbmAsset.Column.AssocIdSupplier: asset.AssocIdSupplier = itemData.GetIdValue(column); break; + //case SbmAsset.Column.PurchaseInvoiceRef: asset.PurchaseInvoiceRef = value; break; + //case SbmAsset.Column.PaymentTerms: asset.PaymentTerms = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmAsset.Column.AmountPurchase: asset.AmountPurchase = itemData.GetDecimalValue(column); break; + //case SbmAsset.Column.TaxCodeIdPurchase: asset.TaxCodeIdPurchase = itemData.GetIdValue(column); break; + case SbmAsset.Column.AmountPurchaseGross: asset.AmountPurchaseGross = itemData.GetDecimalValue(column); break; + //case SbmAsset.Column.AmountSettlementGross: asset.AmountSettlementGross = itemData.GetDecimalValue(column); break; + //case SbmAsset.Column.AmountEnhancementGross: asset.AmountEnhancementGross = itemData.GetDecimalValue(column); break; + //case SbmAsset.Column.AssocIdCustomer: asset.AssocIdCustomer = itemData.GetIdValue(column); break; + //case SbmAsset.Column.SellCategoryCode: asset.SellCategoryCode = value; break; + case SbmAsset.Column.AmountSell: asset.AmountSell = itemData.GetDecimalValue(column); break; + //case SbmAsset.Column.TaxCodeIdSell: asset.TaxCodeIdSell = itemData.GetIdValue(column); break; + case SbmAsset.Column.AmountSellGross: asset.AmountSellGross = itemData.GetDecimalValue(column); break; + //case SbmAsset.Column.TaxCodeIdProfit: asset.TaxCodeIdProfit = itemData.GetIdValue(column); break; + case SbmAsset.Column.SoldOn: asset.SoldOn = itemData.GetDateTimeValue(column); break; + case SbmAsset.Column.AmountSold: asset.AmountSold = itemData.GetDecimalValue(column); break; + //case SbmAsset.Column.AmountSoldGross: asset.AmountSoldGross = itemData.GetDecimalValue(column); break; + case SbmAsset.Column.DisposeCode: asset.DisposeCode = value; break; + case SbmAsset.Column.DisposeOn: asset.DisposeOn = itemData.GetDateTimeValue(column); break; + case SbmAsset.Column.DueBackOn: asset.DueBackOn = itemData.GetDateTimeValue(column); break; + case SbmAsset.Column.AmountRentalCost: asset.AmountRentalCost = itemData.GetDecimalValue(column); break; + case SbmAsset.Column.UomRentalCost_Id: asset.UomIdRentalCost = itemData.GetIdValue(column); break; + //case SbmAsset.Column.TaxCodeIdRentalCost: asset.TaxCodeIdRentalCost = itemData.GetIdValue(column); break; + case SbmAsset.Column.AmountRentalPrice: asset.AmountRentalPrice = itemData.GetDecimalValue(column); break; + case SbmAsset.Column.UomRentalPrice_Id: asset.UomIdRentalPrice = itemData.GetIdValue(column); break; + //case SbmAsset.Column.TaxCodeIdRentalPrice: asset.TaxCodeIdRentalPrice = itemData.GetIdValue(column); break; + case SbmAsset.Column.ProcessIdNext: asset.ProcessIdNext = itemData.GetIdValue(column); break; + case SbmAsset.Column.Notes: asset.Notes = value; break; + case SbmAsset.Column.Status: asset.Status = SacsSystem.GetStatusForCode(value); break; + } + } + assets.Add(asset); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Assets: " + assets.Count); + return assets; + } + + + //------------------------------------------------------------------- + // Asset query execution. + public override DbResultSet ExecuteAssetQuery (List columns, SbmAsset.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteAssetQuery_Mobile (List assetColumns, SbmAsset.Params prmAsset, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmAsset.Column column in assetColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetAssetRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetAssetQueryFilter_Mobile(prmAsset), columns, this.GetSortColumns_Mobile(prmAsset), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetAssetRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Asset; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-VehicleClasses.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-VehicleClasses.cs new file mode 100644 index 0000000..5680604 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-VehicleClasses.cs @@ -0,0 +1,317 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAssetMgr_Mobile + { + //******************************************************************* + // V e h i c l e C l a s s e s + //******************************************************************* + // Create VehicleClass. + public override SbmVehicleClass CreateVehicleClass () + { + ClearErrorState(); + return new SbmVehicleClass_Mobile(UserContext, null, 0); + } + + //------------------------------------------------------------------- + // Get VehicleClass. + public override SbmVehicleClass GetVehicleClass (SbmVehicleClass.Params prmVehicleClass) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate VehicleClass. + public override bool IsValidVehicleClassData (SbmVehicleClass.Data data, SbmVehicleClass.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidVehicleClassData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert VehicleClass. + public override bool InsertVehicleClass (SbmVehicleClass vehicleClass, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidVehicleClass(vehicleClass)) return false; + if (SysId.IsValid(vehicleClass.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update VehicleClass. + public override bool UpdateVehicleClass (SbmVehicleClass vehicleClass, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidVehicleClass(vehicleClass)) return false; + if (!SysId.IsValid(vehicleClass.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete VehicleClass. + public override bool VehicleClassCanBeDeleted (SbmVehicleClass vehicleClass) + { + ClearErrorState(); + if (!base.VehicleClassCanBeDeleted(vehicleClass)) return false; + return true; + } + public override bool DeleteVehicleClass (SbmVehicleClass vehicleClass, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!VehicleClassCanBeDeleted(vehicleClass)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement vehicleClassElement, SbmVehicleClass vehicleClass, DbUpdateInfo dbUpdateInfo) + { + vehicleClassElement.AppendElement(nameof(vehicleClass.Id), SysId.ToString(vehicleClass.Id)); + vehicleClassElement.AppendElement(nameof(vehicleClass.MakeCode), vehicleClass.MakeCode); + vehicleClassElement.AppendElement(nameof(vehicleClass.Model), vehicleClass.Model); + vehicleClassElement.AppendElement(nameof(vehicleClass.Derivative), vehicleClass.Derivative); + vehicleClassElement.AppendElement(nameof(vehicleClass.DescBrief), vehicleClass.DescBrief); + vehicleClassElement.AppendElement(nameof(vehicleClass.VehicleType), vehicleClass.VehicleType.ToString()); + vehicleClassElement.AppendElement(nameof(vehicleClass.VehicleCategoryCode), vehicleClass.VehicleCategoryCode); + vehicleClassElement.AppendElement(nameof(vehicleClass.FuelType), vehicleClass.FuelType.ToString()); + vehicleClassElement.AppendElement(nameof(vehicleClass.OdometerUnits), vehicleClass.OdometerUnits.ToString()); + vehicleClassElement.AppendElement(nameof(vehicleClass.Seats), vehicleClass.Seats.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.Weight), vehicleClass.Weight.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.InsuranceCode), vehicleClass.InsuranceCode); + vehicleClassElement.AppendElement(nameof(vehicleClass.FirstServiceOdo), vehicleClass.FirstServiceOdo.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.ServiceOdo), vehicleClass.ServiceOdo.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.ServiceWeeks), vehicleClass.ServiceWeeks.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.AmountRentalCost), vehicleClass.AmountRentalCost.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.UomIdRentalCost), SysId.ToString(vehicleClass.UomIdRentalCost)); + vehicleClassElement.AppendElement(nameof(vehicleClass.AmountRentalPrice), vehicleClass.AmountRentalPrice.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.UomIdRentalPrice), SysId.ToString(vehicleClass.UomIdRentalPrice)); + vehicleClassElement.AppendElement(nameof(vehicleClass.Notes), vehicleClass.Notes); + vehicleClassElement.AppendElement(nameof(vehicleClass.Status), SacsSystem.GetStatusCode(vehicleClass.Status)); + vehicleClassElement.AppendElement(nameof(vehicleClass.Flags), vehicleClass.Flags.ToString()); + if (!SysId.IsValid(vehicleClass.Id)) + { + vehicleClassElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + vehicleClassElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + vehicleClassElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + vehicleClassElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + vehicleClassElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + vehicleClassElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement vehicleClassElement, SbmVehicleClass vehicleClass) + { + vehicleClass.Id = new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText("Id"))); + vehicleClass.MakeCode = vehicleClassElement.GetChildText(nameof(vehicleClass.MakeCode)); + vehicleClass.Model = vehicleClassElement.GetChildText(nameof(vehicleClass.Model)); + vehicleClass.Derivative = vehicleClassElement.GetChildText(nameof(vehicleClass.Derivative)); + vehicleClass.DescBrief = vehicleClassElement.GetChildText(nameof(vehicleClass.DescBrief)); + vehicleClass.VehicleType = EnumUtil.ParseEnum(vehicleClassElement.GetChildText(nameof(vehicleClass.VehicleType)), Sbm.VehicleType.Unknown); + vehicleClass.VehicleCategoryCode = vehicleClassElement.GetChildText(nameof(vehicleClass.VehicleCategoryCode)); + vehicleClass.FuelType = EnumUtil.ParseEnum(vehicleClassElement.GetChildText(nameof(vehicleClass.FuelType)), Sbm.VehicleFuelType.Unknown); + vehicleClass.OdometerUnits = EnumUtil.ParseEnum(vehicleClassElement.GetChildText(nameof(vehicleClass.OdometerUnits)), Sbm.VehicleOdometerUnits.OdoUnits_Unknown); + vehicleClass.Seats = StringUtil.ToShort(vehicleClassElement.GetChildText(nameof(vehicleClass.Seats))); + vehicleClass.Weight = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.Weight))); + vehicleClass.InsuranceCode = vehicleClassElement.GetChildText(nameof(vehicleClass.InsuranceCode)); + vehicleClass.FirstServiceOdo = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.FirstServiceOdo))); + vehicleClass.ServiceOdo = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.ServiceOdo))); + vehicleClass.ServiceWeeks = StringUtil.ToShort(vehicleClassElement.GetChildText(nameof(vehicleClass.ServiceWeeks))); + vehicleClass.AmountRentalCost = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.AmountRentalCost))); + vehicleClass.UomIdRentalCost = new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText(nameof(vehicleClass.UomIdRentalCost)))); + vehicleClass.AmountRentalPrice = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.AmountRentalPrice))); + vehicleClass.UomIdRentalPrice = new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText(nameof(vehicleClass.UomIdRentalPrice)))); + vehicleClass.Notes = vehicleClassElement.GetChildText(nameof(vehicleClass.Notes)); + vehicleClass.Status = SacsSystem.GetStatusForCode(vehicleClassElement.GetChildText(nameof(vehicleClass.Status))); + vehicleClass.SetCreateStamp(DateUtil.ParseXmlDateTime(vehicleClassElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText("CreateBy"))), vehicleClassElement.GetChildText("CreateHost")); + vehicleClass.SetUpdateStamp(DateUtil.ParseXmlDateTime(vehicleClassElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText("UpdateBy"))), vehicleClassElement.GetChildText("UpdateHost")); + vehicleClass.AcceptChanges(); + } + + //------------------------------------------------------------------- + // VehicleClass column definitions. + public override ColumnDfn GetVehicleClassColumnDfn (SbmVehicleClass.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // VehicleClass query filter. + public override List GetVehicleClassQueryFilter (SbmVehicleClass.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetVehicleClassQueryFilter_Mobile (SbmVehicleClass.Params prm) + { + Dictionary filter = new Dictionary(); + + // VehicleClass Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Make code. + if (!StringUtil.IsEmpty(prm.MakeCode)) filter.Add(nameof(prm.MakeCode), prm.MakeCode); + + // Model. + if (!StringUtil.IsEmpty(prm.Model)) filter.Add(nameof(prm.Model), prm.Model); + if (!StringUtil.IsEmpty(prm.ModelPartial)) filter.Add(nameof(prm.ModelPartial), prm.ModelPartial); + + // Desc brief. + if (!StringUtil.IsEmpty(prm.DescBrief)) filter.Add(nameof(prm.DescBrief), prm.DescBrief); + if (!StringUtil.IsEmpty(prm.DescBriefPartial)) filter.Add(nameof(prm.DescBriefPartial), prm.DescBriefPartial); + + // Derivative. + if (!StringUtil.IsEmpty(prm.Derivative)) filter.Add(nameof(prm.Derivative), prm.Derivative); + + // Vehicle category code. + if (!StringUtil.IsEmpty(prm.VehicleCategoryCode)) filter.Add(nameof(prm.VehicleCategoryCode), prm.VehicleCategoryCode); + + // Restrict to active. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // VehicleClass sort columns. + public List GetVehicleClassSortColumns (SbmVehicleClass.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // VehicleClass count. + public override long GetVehicleClassCount (SbmVehicleClass.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // VehicleClass list. + public override List GetVehicleClassList (SbmVehicleClass.Params prm) + { + List vehicleClasses = new List(); + throw new NotImplementedException(); + } + public async Task> GetVehicleClassList_Mobile (SbmVehicleClass.Params prmVehicleClass, SacsTaskData taskData) + { + ClearErrorState(); + List vehicleClasses = new List(); + String fn = GetType().Name + ".GetVehicleClassList_Mobile"; + + // VehicleClass columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteVehicleClassQuery_Mobile(columns, prmVehicleClass, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmVehicleClass.Column.Id); + ushort flags = (ushort)itemData.GetIntValue(SbmVehicleClass.Column.Flag); + // Create item. + SbmVehicleClass_Mobile vehicleClass = new SbmVehicleClass_Mobile(UserContext, id, flags); + // Populate item properties. + foreach (SbmVehicleClass.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmVehicleClass.Column.MakeCode: vehicleClass.MakeCode = value; break; + case SbmVehicleClass.Column.Model: vehicleClass.Model = value; break; + case SbmVehicleClass.Column.Derivative: vehicleClass.Derivative = value; break; + case SbmVehicleClass.Column.DescBrief: vehicleClass.DescBrief = value; break; + case SbmVehicleClass.Column.VehicleType: vehicleClass.VehicleType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.VehicleType.Any); break; + case SbmVehicleClass.Column.VehicleCategoryCode: vehicleClass.VehicleCategoryCode = value; break; + case SbmVehicleClass.Column.FuelTypeDesc: vehicleClass.FuelType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.VehicleFuelType.Unknown); break; + case SbmVehicleClass.Column.OdometerUnitsDesc: vehicleClass.OdometerUnits = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.VehicleOdometerUnits.OdoUnits_Unknown); break; + case SbmVehicleClass.Column.Seats: vehicleClass.Seats = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmVehicleClass.Column.Weight: vehicleClass.Weight = itemData.GetDecimalValue(column); break; + case SbmVehicleClass.Column.InsuranceCode: vehicleClass.InsuranceCode = value; break; + case SbmVehicleClass.Column.FirstServiceOdo: vehicleClass.FirstServiceOdo = itemData.GetDecimalValue(column); break; + case SbmVehicleClass.Column.ServiceOdo: vehicleClass.ServiceOdo = itemData.GetDecimalValue(column); break; + case SbmVehicleClass.Column.ServiceWeeks: vehicleClass.ServiceWeeks = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmVehicleClass.Column.AmountRentalCost: vehicleClass.AmountRentalCost = itemData.GetDecimalValue(column); break; + case SbmVehicleClass.Column.RentalCostUomDesc: vehicleClass.UomIdRentalCost = itemData.GetIdValue(column); break; + case SbmVehicleClass.Column.AmountRentalPrice: vehicleClass.AmountRentalPrice = itemData.GetDecimalValue(column); break; + case SbmVehicleClass.Column.RentalPriceUomDesc: vehicleClass.UomIdRentalPrice = itemData.GetIdValue(column); break; + case SbmVehicleClass.Column.Notes: vehicleClass.Notes = value; break; + case SbmVehicleClass.Column.Status: vehicleClass.Status = SacsSystem.GetStatusForCode(value); break; + } + } + vehicleClasses.Add(vehicleClass); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " VehicleClasses: " + vehicleClasses.Count); + return vehicleClasses; + } + + + //------------------------------------------------------------------- + // VehicleClass query execution. + public override DbResultSet ExecuteVehicleClassQuery (List columns, SbmVehicleClass.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteVehicleClassQuery_Mobile (List vehicleClassColumns, SbmVehicleClass.Params prmVehicleClass, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmVehicleClass.Column column in vehicleClassColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetVehicleClassRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetVehicleClassQueryFilter_Mobile(prmVehicleClass), columns, this.GetSortColumns_Mobile(prmVehicleClass), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetVehicleClassRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.VehicleClass; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-VehicleEvents.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-VehicleEvents.cs new file mode 100644 index 0000000..6f48baa --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-VehicleEvents.cs @@ -0,0 +1,292 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAssetMgr_Mobile + { + //******************************************************************* + // V e h i c l e E v e n t s + //******************************************************************* + // Create VehicleEvent. + public override SbmVehicleEvent CreateVehicleEvent (SysId vehicleId, Sbm.VehicleEventType vehicleEventType) + { + ClearErrorState(); + return new SbmVehicleEvent_Mobile(UserContext, vehicleId, vehicleEventType, 0); + } + + //------------------------------------------------------------------- + // Get VehicleEvent. + public override SbmVehicleEvent GetVehicleEvent (SbmVehicleEvent.Params prmVehicleEvent) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate VehicleEvent. + public override bool IsValidVehicleEventData (SbmVehicleEvent.Data data, SbmVehicleEvent.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidVehicleEventData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert VehicleEvent. + public override bool InsertVehicleEvent (SbmVehicleEvent vehicleClass, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidVehicleEvent(vehicleClass)) return false; + if (SysId.IsValid(vehicleClass.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update VehicleEvent. + public override bool UpdateVehicleEvent (SbmVehicleEvent vehicleClass, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidVehicleEvent(vehicleClass)) return false; + if (!SysId.IsValid(vehicleClass.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete VehicleEvent. + public override bool VehicleEventCanBeDeleted (SbmVehicleEvent vehicleClass) + { + ClearErrorState(); + if (!base.VehicleEventCanBeDeleted(vehicleClass)) return false; + return true; + } + public override bool DeleteVehicleEvent (SbmVehicleEvent vehicleClass, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!VehicleEventCanBeDeleted(vehicleClass)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement vehicleClassElement, SbmVehicleEvent vehicleClass, DbUpdateInfo dbUpdateInfo) + { + vehicleClassElement.AppendElement(nameof(vehicleClass.Id), SysId.ToString(vehicleClass.Id)); + vehicleClassElement.AppendElement(nameof(vehicleClass.VehicleId), SysId.ToString(vehicleClass.VehicleId)); + vehicleClassElement.AppendElement(nameof(vehicleClass.VehicleEventType), vehicleClass.VehicleEventType.ToString()); + vehicleClassElement.AppendElement(nameof(vehicleClass.StartOn), DateUtil.FormatXmlDateTime(vehicleClass.StartOn)); + vehicleClassElement.AppendElement(nameof(vehicleClass.FinishOn), DateUtil.FormatXmlDateTime(vehicleClass.FinishOn)); + vehicleClassElement.AppendElement(nameof(vehicleClass.Odometer), vehicleClass.Odometer.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.DescBrief), vehicleClass.DescBrief); + vehicleClassElement.AppendElement(nameof(vehicleClass.DescDetail), vehicleClass.DescDetail); + vehicleClassElement.AppendElement(nameof(vehicleClass.AmountNet), vehicleClass.AmountNet.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.TaxCodeId), SysId.ToString(vehicleClass.TaxCodeId)); + vehicleClassElement.AppendElement(nameof(vehicleClass.TaxRate), vehicleClass.TaxRate.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.AmountTax), vehicleClass.AmountTax.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.AmountTot), vehicleClass.AmountTot.ToString("N3")); + vehicleClassElement.AppendElement(nameof(vehicleClass.Notes), vehicleClass.Notes); + vehicleClassElement.AppendElement(nameof(vehicleClass.Status), SacsSystem.GetStatusCode(vehicleClass.Status)); + vehicleClassElement.AppendElement(nameof(vehicleClass.Flags), vehicleClass.Flags.ToString()); + if (!SysId.IsValid(vehicleClass.Id)) + { + vehicleClassElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + vehicleClassElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + vehicleClassElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + vehicleClassElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + vehicleClassElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + vehicleClassElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement vehicleClassElement, SbmVehicleEvent vehicleClass) + { + vehicleClass.Id = new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText("Id"))); + vehicleClass.VehicleId = new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText(nameof(vehicleClass.VehicleId)))); + vehicleClass.VehicleEventType = EnumUtil.ParseEnum(vehicleClassElement.GetChildText(nameof(vehicleClass.VehicleEventType)), Sbm.VehicleEventType.Any); + vehicleClass.StartOn = DateUtil.ParseXmlDateTime(vehicleClassElement.GetChildText(nameof(vehicleClass.StartOn))); + vehicleClass.FinishOn = DateUtil.ParseXmlDateTime(vehicleClassElement.GetChildText(nameof(vehicleClass.FinishOn))); + vehicleClass.Odometer = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.Odometer))); + vehicleClass.DescBrief = vehicleClassElement.GetChildText(nameof(vehicleClass.DescBrief)); + vehicleClass.DescDetail = vehicleClassElement.GetChildText(nameof(vehicleClass.DescDetail)); + vehicleClass.AmountNet = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.AmountNet))); + vehicleClass.TaxCodeId = new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText(nameof(vehicleClass.TaxCodeId)))); + vehicleClass.TaxRate = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.TaxRate))); + vehicleClass.AmountTax = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.AmountTax))); + vehicleClass.AmountTot = StringUtil.ToDecimal(vehicleClassElement.GetChildText(nameof(vehicleClass.AmountTot))); + vehicleClass.Notes = vehicleClassElement.GetChildText(nameof(vehicleClass.Notes)); + vehicleClass.Status = SacsSystem.GetStatusForCode(vehicleClassElement.GetChildText(nameof(vehicleClass.Status))); + vehicleClass.SetCreateStamp(DateUtil.ParseXmlDateTime(vehicleClassElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText("CreateBy"))), vehicleClassElement.GetChildText("CreateHost")); + vehicleClass.SetUpdateStamp(DateUtil.ParseXmlDateTime(vehicleClassElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(vehicleClassElement.GetChildText("UpdateBy"))), vehicleClassElement.GetChildText("UpdateHost")); + vehicleClass.AcceptChanges(); + } + + //------------------------------------------------------------------- + // VehicleEvent column definitions. + public override ColumnDfn GetVehicleEventColumnDfn (SbmVehicleEvent.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // VehicleEvent query filter. + public override List GetVehicleEventQueryFilter (SbmVehicleEvent.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetVehicleEventQueryFilter_Mobile (SbmVehicleEvent.Params prm) + { + Dictionary filter = new Dictionary(); + + // VehicleEvent Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Vehicle Id. + if (SysId.IsValid(prm.VehicleId)) filter.Add(nameof(prm.VehicleId), SysId.ToString(prm.VehicleId)); + + // Vehicle event type. + if ((int)prm.VehicleEventType > 0) filter.Add(nameof(prm.VehicleEventType), ((int)prm.VehicleEventType).ToString()); + + // Event on. + if (DateUtil.IsValid(prm.EventOn)) filter.Add(nameof(prm.EventOn), DateUtil.FormatXmlDate(prm.EventOn)); + + // Restrict to active. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // VehicleEvent sort columns. + public List GetVehicleEventSortColumns (SbmVehicleEvent.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // VehicleEvent count. + public override long GetVehicleEventCount (SbmVehicleEvent.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // VehicleEvent list. + public override List GetVehicleEventList (SbmVehicleEvent.Params prm) + { + List vehicleClasses = new List(); + throw new NotImplementedException(); + } + public async Task> GetVehicleEventList_Mobile (SbmVehicleEvent.Params prmVehicleEvent, SacsTaskData taskData) + { + ClearErrorState(); + List vehicleClasses = new List(); + String fn = GetType().Name + ".GetVehicleEventList_Mobile"; + + // VehicleEvent columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteVehicleEventQuery_Mobile(columns, prmVehicleEvent, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId vehicleId = itemData.GetIdValue(SbmVehicleEvent.Column.VehicleId); + Sbm.VehicleEventType vehicleEventType = EnumUtil.ParseEnum(itemData.GetValue(SbmVehicleEvent.Column.EventTypeDesc), Sbm.VehicleEventType.Unknown); + ushort flags = (ushort)itemData.GetIntValue(SbmVehicleEvent.Column.Flag); + // Create item. + SbmVehicleEvent_Mobile vehicleClass = new SbmVehicleEvent_Mobile(UserContext, vehicleId, vehicleEventType, flags); + // Populate item properties. + foreach (SbmVehicleEvent.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmVehicleEvent.Column.VehicleId: vehicleClass.VehicleId = itemData.GetIdValue(column); break; + case SbmVehicleEvent.Column.EventTypeDesc: vehicleClass.VehicleEventType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.VehicleEventType.Unknown); break; + case SbmVehicleEvent.Column.StartOnDateTime: vehicleClass.StartOn = itemData.GetDateTimeValue(column); break; + case SbmVehicleEvent.Column.FinishOnDateTime: vehicleClass.FinishOn = itemData.GetDateTimeValue(column); break; + case SbmVehicleEvent.Column.Odometer: vehicleClass.Odometer = itemData.GetDecimalValue(column); break; + case SbmVehicleEvent.Column.DescBrief: vehicleClass.DescBrief = value; break; + case SbmVehicleEvent.Column.DescDetail: vehicleClass.DescDetail = value; break; + case SbmVehicleEvent.Column.AmountNet: vehicleClass.AmountNet = itemData.GetDecimalValue(column); break; + case SbmVehicleEvent.Column.TaxCodeId: vehicleClass.TaxCodeId = itemData.GetIdValue(column); break; + case SbmVehicleEvent.Column.TaxRate: vehicleClass.TaxRate = itemData.GetDecimalValue(column); break; + case SbmVehicleEvent.Column.AmountTax: vehicleClass.AmountTax = itemData.GetDecimalValue(column); break; + case SbmVehicleEvent.Column.AmountTot: vehicleClass.AmountTot = itemData.GetDecimalValue(column); break; + case SbmVehicleEvent.Column.Notes: vehicleClass.Notes = value; break; + case SbmVehicleEvent.Column.Status: vehicleClass.Status = SacsSystem.GetStatusForCode(value); break; + } + } + vehicleClasses.Add(vehicleClass); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " VehicleEventes: " + vehicleClasses.Count); + return vehicleClasses; + } + + + //------------------------------------------------------------------- + // VehicleEvent query execution. + public override DbResultSet VehicleEventExecuteQuery (List columns, SbmVehicleEvent.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteVehicleEventQuery_Mobile (List vehicleClassColumns, SbmVehicleEvent.Params prmVehicleEvent, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmVehicleEvent.Column column in vehicleClassColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetVehicleEventRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetVehicleEventQueryFilter_Mobile(prmVehicleEvent), columns, this.GetSortColumns_Mobile(prmVehicleEvent), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetVehicleEventRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.VehicleEvent; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-VehicleFeatures.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-VehicleFeatures.cs new file mode 100644 index 0000000..0219b1b --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-VehicleFeatures.cs @@ -0,0 +1,283 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAssetMgr_Mobile + { + //******************************************************************* + // V e h i c l e F e a t u r e s + //******************************************************************* + // Create VehicleFeature. + public override SbmVehicleFeature CreateVehicleFeature (SbmVehicleFeature.SbmVehicleFeature_Id vehicleFeature_Id) + { + ClearErrorState(); + return new SbmVehicleFeature_Mobile(UserContext, null, Sbm.VehicleFeatureSource.Unknown, Sbm.VehicleFeatureType.Unknown, 0); + } + + //------------------------------------------------------------------- + // Get VehicleFeature. + public override SbmVehicleFeature GetVehicleFeature (SbmVehicleFeature.Params prmVehicleFeature) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate VehicleFeature. + public override bool IsValidVehicleFeatureData (SbmVehicleFeature.Data data, SbmVehicleFeature.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidVehicleFeatureData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert VehicleFeature. + public override bool InsertVehicleFeature (SbmVehicleFeature vehicleFeature, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidVehicleFeature(vehicleFeature)) return false; + if (SysId.IsValid(vehicleFeature.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update VehicleFeature. + public override bool UpdateVehicleFeature (SbmVehicleFeature vehicleFeature, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidVehicleFeature(vehicleFeature)) return false; + if (!SysId.IsValid(vehicleFeature.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete VehicleFeature. + public override bool VehicleFeatureCanBeDeleted (SbmVehicleFeature vehicleFeature) + { + ClearErrorState(); + if (!base.VehicleFeatureCanBeDeleted(vehicleFeature)) return false; + return true; + } + public override bool DeleteVehicleFeature (SbmVehicleFeature vehicleFeature, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!VehicleFeatureCanBeDeleted(vehicleFeature)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement vehicleFeatureElement, SbmVehicleFeature vehicleFeature, DbUpdateInfo dbUpdateInfo) + { + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.Id), SysId.ToString(vehicleFeature.Id)); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.VehicleId), SysId.ToString(vehicleFeature.VehicleId)); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.VehicleFeatureSource), vehicleFeature.VehicleFeatureSource.ToString()); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.VehicleFeatureType), vehicleFeature.VehicleFeatureType.ToString()); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.CategoryCode), vehicleFeature.CategoryCode); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.CategoryDesc), vehicleFeature.CategoryDesc); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.FeatureCode), vehicleFeature.FeatureCode); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.FeatureDesc), vehicleFeature.FeatureDesc); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.Notes), vehicleFeature.Notes); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.Status), SacsSystem.GetStatusCode(vehicleFeature.Status)); + vehicleFeatureElement.AppendElement(nameof(vehicleFeature.Flags), vehicleFeature.Flags.ToString()); + if (!SysId.IsValid(vehicleFeature.Id)) + { + vehicleFeatureElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + vehicleFeatureElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + vehicleFeatureElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + vehicleFeatureElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + vehicleFeatureElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + vehicleFeatureElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement vehicleFeatureElement, SbmVehicleFeature vehicleFeature) + { + vehicleFeature.Id = new SysId(StringUtil.ToInt(vehicleFeatureElement.GetChildText("Id"))); + vehicleFeature.VehicleId = new SysId(StringUtil.ToInt(vehicleFeatureElement.GetChildText(nameof(vehicleFeature.VehicleId)))); + vehicleFeature.VehicleFeatureSource = EnumUtil.ParseEnum(vehicleFeatureElement.GetChildText(nameof(vehicleFeature.VehicleFeatureSource)), Sbm.VehicleFeatureSource.Any); + vehicleFeature.VehicleFeatureType = EnumUtil.ParseEnum(vehicleFeatureElement.GetChildText(nameof(vehicleFeature.VehicleFeatureType)), Sbm.VehicleFeatureType.Any); + vehicleFeature.CategoryCode = vehicleFeatureElement.GetChildText(nameof(vehicleFeature.CategoryCode)); + vehicleFeature.CategoryDesc = vehicleFeatureElement.GetChildText(nameof(vehicleFeature.CategoryDesc)); + vehicleFeature.FeatureCode = vehicleFeatureElement.GetChildText(nameof(vehicleFeature.FeatureCode)); + vehicleFeature.FeatureDesc = vehicleFeatureElement.GetChildText(nameof(vehicleFeature.FeatureDesc)); + vehicleFeature.Notes = vehicleFeatureElement.GetChildText(nameof(vehicleFeature.Notes)); + vehicleFeature.Status = SacsSystem.GetStatusForCode(vehicleFeatureElement.GetChildText(nameof(vehicleFeature.Status))); + vehicleFeature.SetCreateStamp(DateUtil.ParseXmlDateTime(vehicleFeatureElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(vehicleFeatureElement.GetChildText("CreateBy"))), vehicleFeatureElement.GetChildText("CreateHost")); + vehicleFeature.SetUpdateStamp(DateUtil.ParseXmlDateTime(vehicleFeatureElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(vehicleFeatureElement.GetChildText("UpdateBy"))), vehicleFeatureElement.GetChildText("UpdateHost")); + vehicleFeature.AcceptChanges(); + } + + //------------------------------------------------------------------- + // VehicleFeature column definitions. + public override ColumnDfn GetVehicleFeatureColumnDfn (SbmVehicleFeature.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // VehicleFeature query filter. + public override List GetVehicleFeatureQueryFilter (SbmVehicleFeature.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetVehicleFeatureQueryFilter_Mobile (SbmVehicleFeature.Params prm) + { + Dictionary filter = new Dictionary(); + + // VehicleFeature Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Vehicle Id. + if (SysId.IsValid(prm.VehicleId)) filter.Add(nameof(prm.VehicleId), SysId.ToString(prm.VehicleId)); + + // Vehicle feature source. + if ((int)prm.VehicleFeatureSource > 0) filter.Add(nameof(prm.VehicleFeatureSource), ((int)prm.VehicleFeatureSource).ToString()); + + // Vehicle feature type. + if ((int)prm.VehicleFeatureType > 0) filter.Add(nameof(prm.VehicleFeatureType), ((int)prm.VehicleFeatureType).ToString()); + + // Category code. + if (!StringUtil.IsEmpty(prm.CategoryCode)) filter.Add(nameof(prm.CategoryCode), prm.CategoryCode); + + // Feature code. + if (!StringUtil.IsEmpty(prm.FeatureCode)) filter.Add(nameof(prm.FeatureCode), prm.FeatureCode); + + // Full feature Id. + if (prm.FullFeatureId != false) filter.Add(nameof(prm.FullFeatureId), prm.FullFeatureId.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // VehicleFeature sort columns. + public List GetVehicleFeatureSortColumns (SbmVehicleFeature.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // VehicleFeature count. + public override long GetVehicleFeatureCount (SbmVehicleFeature.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // VehicleFeature list. + public override List GetVehicleFeatureList (SbmVehicleFeature.Params prm) + { + List vehicleFeatures = new List(); + throw new NotImplementedException(); + } + public async Task> GetVehicleFeatureList_Mobile (SbmVehicleFeature.Params prmVehicleFeature, SacsTaskData taskData) + { + ClearErrorState(); + List vehicleFeatures = new List(); + String fn = GetType().Name + ".GetVehicleFeatureList_Mobile"; + + // VehicleFeature columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteVehicleFeatureQuery_Mobile(columns, prmVehicleFeature, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId vehicleId = itemData.GetIdValue(SbmVehicleFeature.Column.VehicleId); + Sbm.VehicleFeatureSource vehicleFeatureSource = EnumUtil.ParseEnum(itemData.GetValue(SbmVehicleFeature.Column.FeatureSourceDesc), Sbm.VehicleFeatureSource.Unknown); + Sbm.VehicleFeatureType vehicleFeatureType = EnumUtil.ParseEnum(itemData.GetValue(SbmVehicleFeature.Column.FeatureTypeDesc), Sbm.VehicleFeatureType.Unknown); + ushort flags = (ushort)itemData.GetIntValue(SbmVehicleFeature.Column.Flag); + // Create item. + SbmVehicleFeature_Mobile vehicleFeature = new SbmVehicleFeature_Mobile(UserContext, vehicleId , vehicleFeatureSource, vehicleFeatureType, flags); + // Populate item properties. + foreach (SbmVehicleFeature.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmVehicleFeature.Column.VehicleId: vehicleFeature.VehicleId = itemData.GetIdValue(column); break; + case SbmVehicleFeature.Column.FeatureSourceDesc: vehicleFeature.VehicleFeatureSource = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.VehicleFeatureSource.Unknown); break; + case SbmVehicleFeature.Column.FeatureTypeDesc: vehicleFeature.VehicleFeatureType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.VehicleFeatureType.Any); break; + case SbmVehicleFeature.Column.CategoryCode: vehicleFeature.CategoryCode = value; break; + case SbmVehicleFeature.Column.CategoryDesc: vehicleFeature.CategoryDesc = value; break; + case SbmVehicleFeature.Column.FeatureCode: vehicleFeature.FeatureCode = value; break; + case SbmVehicleFeature.Column.FeatureDesc: vehicleFeature.FeatureDesc = value; break; + case SbmVehicleFeature.Column.Notes: vehicleFeature.Notes = value; break; + case SbmVehicleFeature.Column.Status: vehicleFeature.Status = SacsSystem.GetStatusForCode(value); break; + } + } + vehicleFeatures.Add(vehicleFeature); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " VehicleFeatures: " + vehicleFeatures.Count); + return vehicleFeatures; + } + + + //------------------------------------------------------------------- + // VehicleFeature query execution. + public override DbResultSet VehicleFeatureExecuteQuery (List columns, SbmVehicleFeature.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteVehicleFeatureQuery_Mobile (List vehicleFeatureColumns, SbmVehicleFeature.Params prmVehicleFeature, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmVehicleFeature.Column column in vehicleFeatureColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetVehicleFeatureRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetVehicleFeatureQueryFilter_Mobile(prmVehicleFeature), columns, this.GetSortColumns_Mobile(prmVehicleFeature), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetVehicleFeatureRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.VehicleFeature; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-Vehicles.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-Vehicles.cs new file mode 100644 index 0000000..5403d72 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile-Vehicles.cs @@ -0,0 +1,355 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmAssetMgr_Mobile + { + //******************************************************************* + // V e h i c l e s + //******************************************************************* + // Create Vehicle. + public override SbmVehicle CreateVehicle () + { + ClearErrorState(); + return new SbmVehicle_Mobile(UserContext, null, 0); + } + + //------------------------------------------------------------------- + // Get Vehicle. + public override SbmVehicle GetVehicle (SbmVehicle.Params prmVehicle) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Vehicle. + public override bool IsValidVehicleData (SbmVehicle.Data data, SbmVehicle.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidVehicleData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Vehicle. + public override bool InsertVehicle (SbmVehicle vehicle, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidVehicle(vehicle)) return false; + if (SysId.IsValid(vehicle.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Vehicle. + public override bool UpdateVehicle (SbmVehicle vehicle, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidVehicle(vehicle)) return false; + if (!SysId.IsValid(vehicle.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Vehicle. + public override bool VehicleCanBeDeleted (SbmVehicle vehicle) + { + ClearErrorState(); + if (!base.VehicleCanBeDeleted(vehicle)) return false; + return true; + } + public override bool DeleteVehicle (SbmVehicle vehicle, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!VehicleCanBeDeleted(vehicle)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement vehicleElement, SbmVehicle vehicle, DbUpdateInfo dbUpdateInfo) + { + vehicleElement.AppendElement(nameof(vehicle.Id), SysId.ToString(vehicle.Id)); + vehicleElement.AppendElement(nameof(vehicle.AssetSerial), vehicle.AssetSerial); + vehicleElement.AppendElement(nameof(vehicle.VehicleClassId), SysId.ToString(vehicle.VehicleClassId)); + vehicleElement.AppendElement(nameof(vehicle.RegNumber), vehicle.RegNumber); + vehicleElement.AppendElement(nameof(vehicle.Vin), vehicle.Vin); + vehicleElement.AppendElement(nameof(vehicle.CapCode), vehicle.CapCode); + vehicleElement.AppendElement(nameof(vehicle.KeyNumber), vehicle.KeyNumber); + vehicleElement.AppendElement(nameof(vehicle.KeyLocation), vehicle.KeyLocation); + vehicleElement.AppendElement(nameof(vehicle.EngineNumber), vehicle.EngineNumber); + vehicleElement.AppendElement(nameof(vehicle.EngineCapacity), vehicle.EngineCapacity.ToString("N3")); + vehicleElement.AppendElement(nameof(vehicle.Seats), vehicle.Seats.ToString("N3")); + vehicleElement.AppendElement(nameof(vehicle.Weight), vehicle.Weight.ToString("N3")); + vehicleElement.AppendElement(nameof(vehicle.ManufactureYear), vehicle.ManufactureYear.ToString("N3")); + vehicleElement.AppendElement(nameof(vehicle.BuildOn), DateUtil.FormatXmlDateTime(vehicle.BuildOn)); + vehicleElement.AppendElement(nameof(vehicle.FirstRegisterOn), DateUtil.FormatXmlDateTime(vehicle.FirstRegisterOn)); + vehicleElement.AppendElement(nameof(vehicle.RegisterOn), DateUtil.FormatXmlDateTime(vehicle.RegisterOn)); + vehicleElement.AppendElement(nameof(vehicle.RegNumberPrev), vehicle.RegNumberPrev); + vehicleElement.AppendElement(nameof(vehicle.PurchaseOdo), vehicle.PurchaseOdo.ToString("N3")); + vehicleElement.AppendElement(nameof(vehicle.TachoCode), vehicle.TachoCode); + vehicleElement.AppendElement(nameof(vehicle.TachoId), vehicle.TachoId); + vehicleElement.AppendElement(nameof(vehicle.LastServiceOdo), vehicle.LastServiceOdo.ToString("N3")); + vehicleElement.AppendElement(nameof(vehicle.LastServiceOn), DateUtil.FormatXmlDateTime(vehicle.LastServiceOn)); + vehicleElement.AppendElement(nameof(vehicle.NextServiceOdo), vehicle.NextServiceOdo.ToString("N3")); + vehicleElement.AppendElement(nameof(vehicle.NextServiceOn), DateUtil.FormatXmlDateTime(vehicle.NextServiceOn)); + vehicleElement.AppendElement(nameof(vehicle.MotOn), DateUtil.FormatXmlDateTime(vehicle.MotOn)); + vehicleElement.AppendElement(nameof(vehicle.MotNo), vehicle.MotNo); + vehicleElement.AppendElement(nameof(vehicle.NextTaxOn), DateUtil.FormatXmlDateTime(vehicle.NextTaxOn)); + vehicleElement.AppendElement(nameof(vehicle.LatestOdo), vehicle.LatestOdo.ToString("N3")); + vehicleElement.AppendElement(nameof(vehicle.LatestOdoOn), DateUtil.FormatXmlDateTime(vehicle.LatestOdoOn)); + vehicleElement.AppendElement(nameof(vehicle.Notes), vehicle.Notes); + vehicleElement.AppendElement(nameof(vehicle.Status), SacsSystem.GetStatusCode(vehicle.Status)); + vehicleElement.AppendElement(nameof(vehicle.Flags), vehicle.Flags.ToString()); + if (!SysId.IsValid(vehicle.Id)) + { + vehicleElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + vehicleElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + vehicleElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + vehicleElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + vehicleElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + vehicleElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement vehicleElement, SbmVehicle vehicle) + { + vehicle.Id = new SysId(StringUtil.ToInt(vehicleElement.GetChildText(nameof(vehicle.Id)))); + vehicle.AssetSerial = vehicleElement.GetChildText(nameof(vehicle.AssetSerial)); + vehicle.VehicleClassId = new SysId(StringUtil.ToInt(vehicleElement.GetChildText(nameof(vehicle.VehicleClassId)))); + vehicle.RegNumber = vehicleElement.GetChildText(nameof(vehicle.RegNumber)); + vehicle.Vin = vehicleElement.GetChildText(nameof(vehicle.Vin)); + vehicle.CapCode = vehicleElement.GetChildText(nameof(vehicle.CapCode)); + vehicle.KeyNumber = vehicleElement.GetChildText(nameof(vehicle.KeyNumber)); + vehicle.KeyLocation = vehicleElement.GetChildText(nameof(vehicle.KeyLocation)); + vehicle.EngineNumber = vehicleElement.GetChildText(nameof(vehicle.EngineNumber)); + vehicle.EngineCapacity = StringUtil.ToShort(vehicleElement.GetChildText(nameof(vehicle.EngineCapacity))); + vehicle.Seats = StringUtil.ToShort(vehicleElement.GetChildText(nameof(vehicle.Seats))); + vehicle.Weight = StringUtil.ToShort(vehicleElement.GetChildText(nameof(vehicle.Weight))); + vehicle.ManufactureYear = StringUtil.ToShort(vehicleElement.GetChildText(nameof(vehicle.ManufactureYear))); + vehicle.BuildOn = DateUtil.ParseXmlDateTime(vehicleElement.GetChildText(nameof(vehicle.BuildOn))); + vehicle.FirstRegisterOn = DateUtil.ParseXmlDateTime(vehicleElement.GetChildText(nameof(vehicle.FirstRegisterOn))); + vehicle.RegisterOn = DateUtil.ParseXmlDateTime(vehicleElement.GetChildText(nameof(vehicle.RegisterOn))); + vehicle.RegNumberPrev = vehicleElement.GetChildText(nameof(vehicle.RegNumberPrev)); + vehicle.PurchaseOdo = StringUtil.ToDecimal(vehicleElement.GetChildText(nameof(vehicle.PurchaseOdo))); + vehicle.TachoCode = vehicleElement.GetChildText(nameof(vehicle.TachoCode)); + vehicle.TachoId = vehicleElement.GetChildText(nameof(vehicle.TachoId)); + vehicle.LastServiceOdo = StringUtil.ToDecimal(vehicleElement.GetChildText(nameof(vehicle.LastServiceOdo))); + vehicle.LastServiceOn = DateUtil.ParseXmlDateTime(vehicleElement.GetChildText(nameof(vehicle.LastServiceOn))); + vehicle.NextServiceOdo = StringUtil.ToDecimal(vehicleElement.GetChildText(nameof(vehicle.NextServiceOdo))); + vehicle.NextServiceOn = DateUtil.ParseXmlDateTime(vehicleElement.GetChildText(nameof(vehicle.NextServiceOn))); + vehicle.MotOn = DateUtil.ParseXmlDateTime(vehicleElement.GetChildText(nameof(vehicle.MotOn))); + vehicle.MotNo = vehicleElement.GetChildText(nameof(vehicle.MotNo)); + vehicle.NextTaxOn = DateUtil.ParseXmlDateTime(vehicleElement.GetChildText(nameof(vehicle.NextTaxOn))); + vehicle.LatestOdo = StringUtil.ToDecimal(vehicleElement.GetChildText(nameof(vehicle.LatestOdo))); + vehicle.LatestOdoOn = DateUtil.ParseXmlDateTime(vehicleElement.GetChildText(nameof(vehicle.LatestOdoOn))); + vehicle.Notes = vehicleElement.GetChildText(nameof(vehicle.Notes)); + vehicle.Status = SacsSystem.GetStatusForCode(vehicleElement.GetChildText(nameof(vehicle.Status))); + vehicle.SetCreateStamp(DateUtil.ParseXmlDateTime(vehicleElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(vehicleElement.GetChildText("CreateBy"))), vehicleElement.GetChildText("CreateHost")); + vehicle.SetUpdateStamp(DateUtil.ParseXmlDateTime(vehicleElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(vehicleElement.GetChildText("UpdateBy"))), vehicleElement.GetChildText("UpdateHost")); + vehicle.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Vehicle column definitions. + public override ColumnDfn GetVehicleColumnDfn (SbmVehicle.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Vehicle query filter. + public override List GetVehicleQueryFilter (SbmVehicle.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetVehicleQueryFilter_Mobile (SbmVehicle.Params prm) + { + Dictionary filter = new Dictionary(); + + // Vehicle Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Vehicle class Id. + if (SysId.IsValid(prm.VehicleClassId)) filter.Add(nameof(prm.VehicleClassId), SysId.ToString(prm.VehicleClassId)); + + // Asset cat Id include. + if (SysId.IsValid(prm.AssetCatIdInclude)) filter.Add(nameof(prm.AssetCatIdInclude), SysId.ToString(prm.AssetCatIdInclude)); + + // Asset cat Id Exlucde. + if (SysId.IsValid(prm.AssetCatIdExclude)) filter.Add(nameof(prm.AssetCatIdExclude), SysId.ToString(prm.AssetCatIdExclude)); + + // Asset process Id next. + if (SysId.IsValid(prm.AssetProcessIdNext)) filter.Add(nameof(prm.AssetProcessIdNext), SysId.ToString(prm.AssetProcessIdNext)); + + // Reg number. + if (!StringUtil.IsEmpty(prm.RegNumber)) filter.Add(nameof(prm.RegNumber), prm.RegNumber); + if (!StringUtil.IsEmpty(prm.RegNumberPartial)) filter.Add(nameof(prm.RegNumberPartial), prm.RegNumberPartial); + + // Vin partial. + if (!StringUtil.IsEmpty(prm.VinPartial)) filter.Add(nameof(prm.VinPartial), prm.VinPartial); + + // Make code. + if (!StringUtil.IsEmpty(prm.MakeCode)) filter.Add(nameof(prm.MakeCode), prm.MakeCode); + + // Class desc partial. + if (!StringUtil.IsEmpty(prm.ClassDescPartial)) filter.Add(nameof(prm.ClassDescPartial), prm.ClassDescPartial); + + // Restrict to active. + if (!StringUtil.IsEmpty(prm.RestrictToActive)) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Vehicle sort columns. + public List GetVehicleSortColumns (SbmVehicle.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Vehicle count. + public override long GetVehicleCount (SbmVehicle.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Vehicle list. + public override List GetVehicleList (SbmVehicle.Params prm) + { + List vehicles = new List(); + throw new NotImplementedException(); + } + public async Task> GetVehicleList_Mobile (SbmVehicle.Params prmVehicle, SacsTaskData taskData) + { + ClearErrorState(); + List vehicles = new List(); + String fn = GetType().Name + ".GetVehicleList_Mobile"; + + // Vehicle columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteVehicleQuery_Mobile(columns, prmVehicle, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmVehicle.Column.Id); + ushort flags = (ushort)itemData.GetIntValue(SbmVehicle.Column.Flag); + // Create item. + SbmVehicle_Mobile vehicle = new SbmVehicle_Mobile(UserContext, id, flags); + // Populate item properties. + foreach (SbmVehicle.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmVehicle.Column.AssetSerial: vehicle.AssetSerial = value; break; + case SbmVehicle.Column.VehicleClass_Id: vehicle.VehicleClassId = itemData.GetIdValue(column); break; + case SbmVehicle.Column.RegNumber: vehicle.RegNumber = value; break; + case SbmVehicle.Column.Vin: vehicle.Vin = value; break; + case SbmVehicle.Column.CapCode: vehicle.CapCode = value; break; + case SbmVehicle.Column.KeyNumber: vehicle.KeyNumber = value; break; + case SbmVehicle.Column.KeyLocation: vehicle.KeyLocation = value; break; + case SbmVehicle.Column.EngineNumber: vehicle.EngineNumber= value; break; + //case SbmVehicle.Column.EngineCapacity: vehicle.EngineCapacity = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmVehicle.Column.VehicleClass_Seats: vehicle.Seats = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + //case SbmVehicle.Column.Weight: vehicle.Weight = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + //case SbmVehicle.Column.ManufactureYear: vehicle.ManufactureYear = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmVehicle.Column.BuildOn: vehicle.BuildOn = itemData.GetDateTimeValue(column); break; + case SbmVehicle.Column.FirstRegisterOn: vehicle.FirstRegisterOn= itemData.GetDateTimeValue(column); break; + case SbmVehicle.Column.RegisterOn: vehicle.RegisterOn = itemData.GetDateTimeValue(column); break; + case SbmVehicle.Column.RegNumberPrev: vehicle.RegNumberPrev = value; break; + case SbmVehicle.Column.PurchaseOdo: vehicle.PurchaseOdo = itemData.GetDecimalValue(column); break; + case SbmVehicle.Column.TachoCode: vehicle.TachoCode = value; break; + case SbmVehicle.Column.TachoId: vehicle.TachoId = value; break; + case SbmVehicle.Column.LastServiceOdo: vehicle.LastServiceOdo = itemData.GetDecimalValue(column); break; + case SbmVehicle.Column.LastServiceOn: vehicle.LastServiceOn = itemData.GetDateTimeValue(column); break; + case SbmVehicle.Column.NextServiceOdo: vehicle.NextServiceOdo = itemData.GetDecimalValue(column); break; + case SbmVehicle.Column.NextServiceOn: vehicle.NextServiceOn = itemData.GetDateTimeValue(column); break; + case SbmVehicle.Column.MotOn: vehicle.MotOn= itemData.GetDateTimeValue(column); break; + case SbmVehicle.Column.MotNo: vehicle.MotNo = value; break; + case SbmVehicle.Column.NextTaxOn: vehicle.NextTaxOn = itemData.GetDateTimeValue(column); break; + case SbmVehicle.Column.LatestOdo: vehicle.LatestOdo = itemData.GetDecimalValue(column); break; + case SbmVehicle.Column.LatestOdoOn: vehicle.LatestOdoOn = itemData.GetDateTimeValue(column); break; + case SbmVehicle.Column.Notes: vehicle.Notes = value; break; + case SbmVehicle.Column.Status: vehicle.Status = SacsSystem.GetStatusForCode(value); break; + } + } + vehicles.Add(vehicle); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Vehicles: " + vehicles.Count); + return vehicles; + } + + + //------------------------------------------------------------------- + // Vehicle query execution. + public override DbResultSet ExecuteVehicleQuery (List columns, SbmVehicle.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteVehicleQuery_Mobile (List vehicleColumns, SbmVehicle.Params prmVehicle, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmVehicle.Column column in vehicleColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetVehicleRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetVehicleQueryFilter_Mobile(prmVehicle), columns, this.GetSortColumns_Mobile(prmVehicle), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetVehicleRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Vehicle; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile.cs new file mode 100644 index 0000000..0790d45 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmAssetMgr_Mobile.cs @@ -0,0 +1,89 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + public partial class SbmAssetMgr_Mobile : SbmAssetMgr, ISbmItemMgr_Mobile + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + + //------------------------------------------------------------------- + // Construction. + public SbmAssetMgr_Mobile (SbmUserContext userContext) : + base(userContext) + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + public String UserCode { get; } + public String EmailAddress { get; } + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override List GetClassesForModel (string makeCode, string model) + { + throw new NotImplementedException(); + } + + public override List GetDerivativesForModel (string makeCode, string model) + { + throw new NotImplementedException(); + } + + public override List GetModelsForMake (string makeCode) + { + throw new NotImplementedException(); + } + + public override string GetVehicleClassDescBrief (SysId id) + { + throw new NotImplementedException(); + } + + public override List GetVehicleClasses_IdName (SbmVehicleClass.Params prm) + { + throw new NotImplementedException(); + } + + public override bool StoreVehicleFeature (SbmVehicleFeature.Data vehicleFeatureData, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + public override bool VehicleFeatureExistsByVF_Id (SbmVehicleFeature.SbmVehicleFeature_Id id) + { + throw new NotImplementedException(); + } + + public override bool VehicleFeaturesExist (SbmVehicleFeature.Params prm) + { + throw new NotImplementedException(); + } + + public override bool AssetDatabaseIsValid () + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-Commodities.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-Commodities.cs new file mode 100644 index 0000000..da76eec --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-Commodities.cs @@ -0,0 +1,633 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmCommodityMgr_Mobile + { + //******************************************************************* + // C o m m o d i t i e s + //******************************************************************* + // Create Commodity. + public override SbmCommodity CreateCommodity (SysId id, SysId affIdOwner, Sbm.CommodityType commodityType, string code) + { + ClearErrorState(); + return new SbmCommodity_Mobile(UserContext, id, affIdOwner, commodityType, code, 0); + } + + //------------------------------------------------------------------- + // Get Commodity. + public override SbmCommodity GetCommodity (SbmCommodity.Params prmCommodity) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Commodity. + public override bool IsValidCommodityData (SbmCommodity.Data data, SbmCommodity.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidCommodityData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Commodity. + public override bool InsertCommodity (SbmCommodity commodity, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidCommodity(commodity)) return false; + if (SysId.IsValid(commodity.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Commodity. + public override bool UpdateCommodity (SbmCommodity commodity, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidCommodity(commodity)) return false; + if (!SysId.IsValid(commodity.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Commodity. + public override bool CommodityCanBeDeleted (SbmCommodity commodity) + { + ClearErrorState(); + if (!base.CommodityCanBeDeleted(commodity)) return false; + return true; + } + public override bool DeleteCommodity (SbmCommodity commodity, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!CommodityCanBeDeleted(commodity)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement commodityElement, SbmCommodity commodity, DbUpdateInfo dbUpdateInfo) + { + commodityElement.AppendElement(nameof(commodity.Id), SysId.ToString(commodity.Id)); + // Commodity. + commodityElement.AppendElement(nameof(commodity.AffiliateIdOwner), SysId.ToString(commodity.AffiliateIdOwner)); + commodityElement.AppendElement(nameof(commodity.CommodityType), commodity.CommodityType.ToString()); + commodityElement.AppendElement(nameof(commodity.Code), commodity.Code); + commodityElement.AppendElement(nameof(commodity.DescBrief), commodity.DescBrief); + commodityElement.AppendElement(nameof(commodity.DescOrder), commodity.DescOrder); + commodityElement.AppendElement(nameof(commodity.DescDetail), commodity.DescDetail); + commodityElement.AppendElement(nameof(commodity.DrawingNumber), commodity.DrawingNumber); + commodityElement.AppendElement(nameof(commodity.DrawingIssue), commodity.DrawingIssue); + // TODO - give incrementDrawingIssue a parameter + //commodityElement.AppendElement(nameof(commodity.IncrementDrawingIssue), SbmCommodity.IncrementDrawingIssue()); + commodityElement.AppendElement(nameof(commodity.AssetCatId), SysId.ToString(commodity.AssetCatId)); + commodityElement.AppendElement(nameof(commodity.ImagePath), commodity.ImagePath); + commodityElement.AppendElement(nameof(commodity.Category1), commodity.Category1); + commodityElement.AppendElement(nameof(commodity.Category2), commodity.Category2); + commodityElement.AppendElement(nameof(commodity.Category3), commodity.Category3); + commodityElement.AppendElement(nameof(commodity.Location), commodity.Location); + commodityElement.AppendElement(nameof(commodity.Department), commodity.Department); + commodityElement.AppendElement(nameof(commodity.CatalogRef), commodity.CatalogRef); + //Specification + commodityElement.AppendElement(nameof(commodity.Weight), (commodity.Weight).ToString("N3")); + commodityElement.AppendElement(nameof(commodity.UomIdWeight), SysId.ToString(commodity.UomIdWeight)); + commodityElement.AppendElement(nameof(commodity.Length), (commodity.Length).ToString("N3")); + commodityElement.AppendElement(nameof(commodity.UomIdLength), SysId.ToString(commodity.UomIdLength)); + commodityElement.AppendElement(nameof(commodity.Volume), (commodity.Volume).ToString("N3")); + commodityElement.AppendElement(nameof(commodity.UomIdVolume), SysId.ToString(commodity.UomIdVolume)); + commodityElement.AppendElement(nameof(commodity.Density), (commodity.Density).ToString("N3")); + commodityElement.AppendElement(nameof(commodity.UomIdDensity), SysId.ToString(commodity.UomIdDensity)); + commodityElement.AppendElement(nameof(commodity.BoxQuantity), (commodity.BoxQuantity).ToString("N3")); + commodityElement.AppendElement(nameof(commodity.UomIdBox), SysId.ToString(commodity.UomIdBox)); + commodityElement.AppendElement(nameof(commodity.Dimensions), commodity.Dimensions); + commodityElement.AppendElement(nameof(commodity.SpecSummary), commodity.SpecSummary); + // Codings. + commodityElement.AppendElement(nameof(commodity.RangeCode), commodity.RangeCode); + commodityElement.AppendElement(nameof(commodity.ColourCode), commodity.ColourCode); + commodityElement.AppendElement(nameof(commodity.SourceCode), commodity.SourceCode); + commodityElement.AppendElement(nameof(commodity.SupplyMethodCode), commodity.SupplyMethodCode); + commodityElement.AppendElement(nameof(commodity.HandlingCode), commodity.HandlingCode); + commodityElement.AppendElement(nameof(commodity.DeliveryCode), commodity.DeliveryCode); + commodityElement.AppendElement(nameof(commodity.MaterialCode), commodity.MaterialCode); + commodityElement.AppendElement(nameof(commodity.FinishCode), commodity.FinishCode); + commodityElement.AppendElement(nameof(commodity.PromotionCode), commodity.PromotionCode); + commodityElement.AppendElement(nameof(commodity.NominalCode), commodity.NominalCode); + commodityElement.AppendElement(nameof(commodity.NominalCodePurchase), commodity.NominalCodePurchase); + commodityElement.AppendElement(nameof(commodity.ICNTariffCode), commodity.ICNTariffCode); + // Production time. + commodityElement.AppendElement(nameof(commodity.TimeProd), commodity.TimeProd.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.UomIdTimeProd), SysId.ToString(commodity.UomIdTimeProd)); + // Purchasing. + commodityElement.AppendElement(nameof(commodity.AssociationIdSupplier), SysId.ToString(commodity.AssociationIdSupplier)); + commodityElement.AppendElement(nameof(commodity.SupplierRef), commodity.SupplierRef); + commodityElement.AppendElement(nameof(commodity.CostPrice), commodity.CostPrice.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.PlaceOfOrigin), commodity.PlaceOfOrigin); + commodityElement.AppendElement(nameof(commodity.MaterialCost), commodity.MaterialCost.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.CurrencyIdMaterial), SysId.ToString(commodity.CurrencyIdMaterial)); + commodityElement.AppendElement(nameof(commodity.ExWorksCost), commodity.ExWorksCost.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.CurrencyIdExWorks), SysId.ToString(commodity.CurrencyIdExWorks)); + commodityElement.AppendElement(nameof(commodity.ReorderLevel), commodity.ReorderLevel.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.ReorderQty), commodity.ReorderQty.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.QtyOnOrder), commodity.QtyOnOrder.ToString("N3")); + // Sales. + commodityElement.AppendElement(nameof(commodity.AssociationIdCustomer), SysId.ToString(commodity.AssociationIdCustomer)); + commodityElement.AppendElement(nameof(commodity.SalesPrice), commodity.SalesPrice.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.RetailPrice), commodity.RetailPrice.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.RetailPricePlanned), commodity.RetailPricePlanned.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.UomIdSale), SysId.ToString(commodity.UomIdSale)); + commodityElement.AppendElement(nameof(commodity.CarriageCostIndicative), commodity.CarriageCostIndicative.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.MinOrderQty), commodity.MinOrderQty.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.PackQtySale), commodity.PackQtySale.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.TaxCodeId), SysId.ToString(commodity.TaxCodeId)); + commodityElement.AppendElement(nameof(commodity.LastOrderDate), DateUtil.FormatXmlDateTime(commodity.LastOrderDate)); + commodityElement.AppendElement(nameof(commodity.LastOrderQty), commodity.LastOrderQty.ToString("N3")); + // Projected sales. + commodityElement.AppendElement(nameof(commodity.TaxCodeId), SysId.ToString(commodity.TaxCodeId)); + commodityElement.AppendElement(nameof(commodity.SalesProjAnnual), commodity.SalesProjAnnual.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth01), commodity.SalesProjMonth01.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth02), commodity.SalesProjMonth02.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth03), commodity.SalesProjMonth03.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth04), commodity.SalesProjMonth04.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth05), commodity.SalesProjMonth05.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth06), commodity.SalesProjMonth06.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth07), commodity.SalesProjMonth07.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth08), commodity.SalesProjMonth08.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth09), commodity.SalesProjMonth09.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth10), commodity.SalesProjMonth10.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth11), commodity.SalesProjMonth11.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesProjMonth12), commodity.SalesProjMonth12.ToString("N3")); + // Proposed sales - budget. + commodityElement.AppendElement(nameof(commodity.SalesPropAnnual), commodity.SalesPropAnnual.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth01), commodity.SalesPropMonth01.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth02), commodity.SalesPropMonth02.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth03), commodity.SalesPropMonth03.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth04), commodity.SalesPropMonth04.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth05), commodity.SalesPropMonth05.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth06), commodity.SalesPropMonth06.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth07), commodity.SalesPropMonth07.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth08), commodity.SalesPropMonth08.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth09), commodity.SalesPropMonth09.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth10), commodity.SalesPropMonth10.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth11), commodity.SalesPropMonth11.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.SalesPropMonth12), commodity.SalesPropMonth12.ToString("N3")); + commodityElement.AppendElement(nameof(commodity.Notes), commodity.Notes); + commodityElement.AppendElement(nameof(commodity.Status), SacsSystem.GetStatusCode(commodity.Status)); + commodityElement.AppendElement(nameof(commodity.Flags), commodity.Flags.ToString()); + if (!SysId.IsValid(commodity.Id)) + { + commodityElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + commodityElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + commodityElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + commodityElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + commodityElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + commodityElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement commodityElement, SbmCommodity commodity) + { + commodity.Id = new SysId(StringUtil.ToInt(commodityElement.GetChildText("Id"))); + // Commodity. + commodity.AffiliateIdOwner = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.AffiliateIdOwner)))); + commodity.CommodityType = EnumUtil.ParseEnum(commodityElement.GetChildText(nameof(commodity.CommodityType)), Sbm.CommodityType.Unknown); + commodity.Code = commodityElement.GetChildText(nameof(commodity.Code)); + commodity.DescBrief = commodityElement.GetChildText(nameof(commodity.DescBrief)); + commodity.DescOrder = commodityElement.GetChildText(nameof(commodity.DescOrder)); + commodity.DescDetail = commodityElement.GetChildText(nameof(commodity.DescDetail)); + commodity.DrawingNumber = commodityElement.GetChildText(nameof(commodity.DrawingNumber)); + commodity.DrawingIssue = commodityElement.GetChildText(nameof(commodity.DrawingIssue)); + //SbmCommodity.IncrementDrawingIssue() = commodityElement.GetChildText(nameof(commodity.IncrementDrawingIssue)); + commodity.AssetCatId = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.AssetCatId)))); + commodity.ImagePath = commodityElement.GetChildText(nameof(commodity.ImagePath)); + commodity.Category1 = commodityElement.GetChildText(nameof(commodity.Category1)); + commodity.Category2 = commodityElement.GetChildText(nameof(commodity.Category2)); + commodity.Category3 = commodityElement.GetChildText(nameof(commodity.Category3)); + commodity.Location = commodityElement.GetChildText(nameof(commodity.Location)); + commodity.Department = commodityElement.GetChildText(nameof(commodity.Department)); + commodity.CatalogRef = commodityElement.GetChildText(nameof(commodity.CatalogRef)); + // Specification. + commodity.Weight = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.Weight))); + commodity.UomIdWeight = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.UomIdWeight)))); + commodity.Length = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.Length))); + commodity.UomIdLength = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.UomIdLength)))); + commodity.Volume = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.Volume))); + commodity.UomIdVolume = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.UomIdVolume)))); + commodity.Density = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.Density))); + commodity.UomIdDensity = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.UomIdDensity)))); + commodity.BoxQuantity = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.BoxQuantity))); + commodity.UomIdBox = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.UomIdBox)))); + commodity.Dimensions = commodityElement.GetChildText(nameof(commodity.Dimensions)); + commodity.SpecSummary = commodityElement.GetChildText(nameof(commodity.SpecSummary)); + // Codings. + commodity.RangeCode = commodityElement.GetChildText(nameof(commodity.RangeCode)); + commodity.ColourCode = commodityElement.GetChildText(nameof(commodity.ColourCode)); + commodity.SourceCode = commodityElement.GetChildText(nameof(commodity.SourceCode)); + commodity.SupplyMethodCode = commodityElement.GetChildText(nameof(commodity.SupplyMethodCode)); + commodity.HandlingCode = commodityElement.GetChildText(nameof(commodity.HandlingCode)); + commodity.DeliveryCode = commodityElement.GetChildText(nameof(commodity.DeliveryCode)); + commodity.MaterialCode = commodityElement.GetChildText(nameof(commodity.MaterialCode)); + commodity.FinishCode = commodityElement.GetChildText(nameof(commodity.FinishCode)); + commodity.PromotionCode = commodityElement.GetChildText(nameof(commodity.PromotionCode)); + commodity.NominalCode = commodityElement.GetChildText(nameof(commodity.NominalCode)); + commodity.NominalCodePurchase = commodityElement.GetChildText(nameof(commodity.NominalCodePurchase)); + commodity.ICNTariffCode = commodityElement.GetChildText(nameof(commodity.ICNTariffCode)); + // Production time. + commodity.TimeProd = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.TimeProd))); + commodity.UomIdTimeProd = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.UomIdTimeProd)))); + // Purchasing. + commodity.AssociationIdSupplier = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.AssociationIdSupplier)))); + commodity.SupplierRef = commodityElement.GetChildText(nameof(commodity.SupplierRef)); + commodity.CostPrice = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.CostPrice))); + commodity.PlaceOfOrigin = commodityElement.GetChildText(nameof(commodity.PlaceOfOrigin)); + commodity.MaterialCost = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.MaterialCost))); + commodity.CurrencyIdMaterial = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.CurrencyIdMaterial)))); + commodity.ExWorksCost = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.ExWorksCost))); + commodity.CurrencyIdExWorks = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.CurrencyIdExWorks)))); + commodity.ReorderLevel = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.ReorderLevel))); + commodity.ReorderQty = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.ReorderQty))); + commodity.QtyOnOrder = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.QtyOnOrder))); + // Sales. + commodity.AssociationIdCustomer = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.AssociationIdCustomer)))); + commodity.SalesPrice = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPrice))); + commodity.RetailPrice = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.RetailPrice))); + commodity.RetailPricePlanned = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.RetailPricePlanned))); + commodity.UomIdSale = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.UomIdSale)))); + commodity.CarriageCostIndicative = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.CarriageCostIndicative))); + commodity.MinOrderQty = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.MinOrderQty))); + commodity.PackQtySale = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.PackQtySale))); + commodity.TaxCodeId = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.TaxCodeId)))); + commodity.LastOrderDate = DateUtil.ParseXmlDateTime(commodityElement.GetChildText(nameof(commodity.LastOrderDate))); + commodity.LastOrderQty = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.LastOrderQty))); + // Stock. + commodity.QtyInStock = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.QtyInStock))); + commodity.QtyAllocated = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.QtyAllocated))); + commodity.FreeStock = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.FreeStock))); + commodity.StockTakeDate = DateUtil.ParseXmlDateTime(commodityElement.GetChildText(nameof(commodity.StockTakeDate))); + commodity.StockTakeQty = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.StockTakeQty))); + // Projected sales. + commodity.CommodityIdSalesProj = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodity.CommodityIdSalesProj)))); + commodity.SalesProjAnnual = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjAnnual))); + commodity.SalesProjMonth01 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth01))); + commodity.SalesProjMonth02 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth02))); + commodity.SalesProjMonth03 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth03))); + commodity.SalesProjMonth04 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth04))); + commodity.SalesProjMonth05 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth05))); + commodity.SalesProjMonth06 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth06))); + commodity.SalesProjMonth07 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth07))); + commodity.SalesProjMonth08 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth08))); + commodity.SalesProjMonth09 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth09))); + commodity.SalesProjMonth10 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth10))); + commodity.SalesProjMonth11 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth11))); + commodity.SalesProjMonth12 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesProjMonth12))); + // Projected sales - budget. + commodity.SalesPropAnnual = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropAnnual))); + commodity.SalesPropMonth01 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth01))); + commodity.SalesPropMonth02 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth02))); + commodity.SalesPropMonth03 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth03))); + commodity.SalesPropMonth04 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth04))); + commodity.SalesPropMonth05 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth05))); + commodity.SalesPropMonth06 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth06))); + commodity.SalesPropMonth07 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth07))); + commodity.SalesPropMonth08 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth08))); + commodity.SalesPropMonth09 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth09))); + commodity.SalesPropMonth10 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth10))); + commodity.SalesPropMonth11 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth11))); + commodity.SalesPropMonth12 = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodity.SalesPropMonth12))); + commodity.Notes = commodityElement.GetChildText(nameof(commodity.Notes)); + commodity.Status = SacsSystem.GetStatusForCode(commodityElement.GetChildText(nameof(commodity.Status))); + commodity.SetCreateStamp(DateUtil.ParseXmlDateTime(commodityElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(commodityElement.GetChildText("CreateBy"))), commodityElement.GetChildText("CreateHost")); + commodity.SetUpdateStamp(DateUtil.ParseXmlDateTime(commodityElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(commodityElement.GetChildText("UpdateBy"))), commodityElement.GetChildText("UpdateHost")); + commodity.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Commodity column definitions. + public override ColumnDfn GetCommodityColumnDfn (SbmCommodity.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Commodity query filter. + public override List GetCommodityQueryFilter (SbmCommodity.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetCommodityQueryFilter_Mobile (SbmCommodity.Params prm) + { + Dictionary filter = new Dictionary(); + + // Commodity Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Commodity. + if ((int)prm.CommodityType > 0) filter.Add(nameof(prm.CommodityType), ((int)prm.CommodityType).ToString()); + if (prm.StockItemsOnly != false) filter.Add(nameof(prm.StockItemsOnly), prm.StockItemsOnly.ToString()); + if (!StringUtil.IsEmpty(prm.CodeFull)) filter.Add(nameof(prm.CodeFull), prm.CodeFull); + if (!StringUtil.IsEmpty(prm.CodePartial)) filter.Add(nameof(prm.CodePartial), prm.CodePartial); + if (!StringUtil.IsEmpty(prm.DescBriefFull)) filter.Add(nameof(prm.DescBriefFull), prm.DescBriefFull); + if (!StringUtil.IsEmpty(prm.DescBriefPartial)) filter.Add(nameof(prm.DescBriefPartial), prm.DescBriefPartial); + if (!StringUtil.IsEmpty(prm.DrawingNoFull)) filter.Add(nameof(prm.DrawingNoFull), prm.DrawingNoFull); + if (!StringUtil.IsEmpty(prm.DrawingNoPartial)) filter.Add(nameof(prm.DrawingNoPartial), prm.DrawingNoPartial); + if (!StringUtil.IsEmpty(prm.DrawingIssueFull)) filter.Add(nameof(prm.DrawingIssueFull), prm.DrawingIssueFull); + if (!StringUtil.IsEmpty(prm.DrawingIssuePartial)) filter.Add(nameof(prm.DrawingIssuePartial), prm.DrawingIssuePartial); + + // Category. + if (!StringUtil.IsEmpty(prm.CatalogRefPartial)) filter.Add(nameof(prm.CatalogRefPartial), prm.CatalogRefPartial); + if (prm.Categories.Count > 0) filter.Add(nameof(prm.Categories), prm.Categories.Concat(",")); + + // Customer. + if (SysId.IsValid(prm.AssociationIdCustomer)) filter.Add(nameof(prm.AssociationIdCustomer), SysId.ToString(prm.AssociationIdCustomer)); + if (!StringUtil.IsEmpty(prm.CustomerName)) filter.Add(nameof(prm.CustomerName), prm.CustomerName); + if (SysId.IsValid(prm.AssociationIdCommodityCustomer)) filter.Add(nameof(prm.AssociationIdCommodityCustomer), SysId.ToString(prm.AssociationIdCommodityCustomer)); + if (!StringUtil.IsEmpty(prm.AccountCodeCommodityCustomer)) filter.Add(nameof(prm.AccountCodeCommodityCustomer), prm.AccountCodeCommodityCustomer); + + // Supplier. + if (SysId.IsValid(prm.AssociationIdSupplier)) filter.Add(nameof(prm.AssociationIdSupplier), SysId.ToString(prm.AssociationIdSupplier)); + if (!StringUtil.IsEmpty(prm.SupplierName)) filter.Add(nameof(prm.SupplierName), prm.SupplierName); + + // Order references. + if (!StringUtil.IsEmpty(prm.OrderRef)) filter.Add(nameof(prm.OrderRef), prm.OrderRef); + if (!StringUtil.IsEmpty(prm.SalesOrderRef)) filter.Add(nameof(prm.SalesOrderRef), prm.SalesOrderRef); + if (!StringUtil.IsEmpty(prm.PurchaseOrderRef)) filter.Add(nameof(prm.PurchaseOrderRef), prm.PurchaseOrderRef); + + // Codes. + if (!StringUtil.IsEmpty(prm.RangeCode)) filter.Add(nameof(prm.RangeCode), prm.RangeCode); + if (!StringUtil.IsEmpty(prm.ColourCode)) filter.Add(nameof(prm.ColourCode), prm.ColourCode); + if (!StringUtil.IsEmpty(prm.SourceCode)) filter.Add(nameof(prm.SourceCode), prm.SourceCode); + if (!StringUtil.IsEmpty(prm.SupplyMethodCode)) filter.Add(nameof(prm.SupplyMethodCode), prm.SupplyMethodCode); + if (!StringUtil.IsEmpty(prm.HandlingCode)) filter.Add(nameof(prm.HandlingCode), prm.HandlingCode); + if (!StringUtil.IsEmpty(prm.DeliveryCode)) filter.Add(nameof(prm.DeliveryCode), prm.DeliveryCode); + if (!StringUtil.IsEmpty(prm.MaterialCode)) filter.Add(nameof(prm.MaterialCode), prm.MaterialCode); + if (!StringUtil.IsEmpty(prm.FinishCode)) filter.Add(nameof(prm.FinishCode), prm.FinishCode); + if (!StringUtil.IsEmpty(prm.PromotionCode)) filter.Add(nameof(prm.PromotionCode), prm.PromotionCode); + + // Price Set. + if (prm.PriceSetIdsIncluded.Count > 0) filter.Add(nameof(prm.PriceSetIdsIncluded), prm.PriceSetIdsIncluded.Concat(",")); + if (prm.PriceSetIdsExcluded.Count > 0) filter.Add(nameof(prm.PriceSetIdsExcluded), prm.PriceSetIdsExcluded.Concat(",")); + + // Stock Control. + if ((int)prm.StockLocationFilter > 0) filter.Add(nameof(prm.StockLocationFilter), ((int)prm.StockLocationFilter).ToString()); + if (SysId.IsValid(prm.LocationIdStock)) filter.Add(nameof(prm.LocationIdStock), SysId.ToString(prm.LocationIdStock)); + if (DateUtil.IsValid(prm.StockSoldFrom)) filter.Add(nameof(prm.StockSoldFrom), DateUtil.FormatXmlDate(prm.StockSoldFrom)); + if (DateUtil.IsValid(prm.StockSoldTo)) filter.Add(nameof(prm.StockSoldTo), DateUtil.FormatXmlDate(prm.StockSoldTo)); + if (DateUtil.IsValid(prm.ProjectedSalesFrom)) filter.Add(nameof(prm.ProjectedSalesFrom), DateUtil.FormatXmlDate(prm.ProjectedSalesFrom)); + if (DateUtil.IsValid(prm.ProjectedSalesTo)) filter.Add(nameof(prm.ProjectedSalesTo), DateUtil.FormatXmlDate(prm.ProjectedSalesTo)); + + // Stock level. + if (prm.StockLevelMin > 0) filter.Add(nameof(prm.StockLevelMin), prm.StockLevelMin.ToString("N3")); + if (prm.StockLevelMax > 0) filter.Add(nameof(prm.StockLevelMax), prm.StockLevelMax.ToString("N3")); + + // Portfolio. + if (SysId.IsValid(prm.PortfolioIdInclude)) filter.Add(nameof(prm.PortfolioIdInclude), SysId.ToString(prm.PortfolioIdInclude)); + if (SysId.IsValid(prm.PortfolioIdExclude)) filter.Add(nameof(prm.PortfolioIdExclude), SysId.ToString(prm.PortfolioIdExclude)); + if (SysId.IsValid(prm.PortfolioForItemCountId)) filter.Add(nameof(prm.PortfolioForItemCountId), SysId.ToString(prm.PortfolioForItemCountId)); + + // Currency. + if (SysId.IsValid(prm.CurrencyIdMaterial)) filter.Add(nameof(prm.CurrencyIdMaterial), SysId.ToString(prm.CurrencyIdMaterial)); + if (SysId.IsValid(prm.CurrencyIdExWorks)) filter.Add(nameof(prm.CurrencyIdExWorks), SysId.ToString(prm.CurrencyIdExWorks)); + + // Price. + if (prm.SalesPrice > 0) filter.Add(nameof(prm.SalesPrice), prm.SalesPrice.ToString("N3")); + if (prm.RetailPrice > 0) filter.Add(nameof(prm.RetailPrice), prm.RetailPrice.ToString("N3")); + if (SysId.IsValid(prm.UomIdSale)) filter.Add(nameof(prm.UomIdSale), SysId.ToString(prm.UomIdSale)); + if (SysId.IsValid(prm.TaxCodeId)) filter.Add(nameof(prm.TaxCodeId), SysId.ToString(prm.TaxCodeId)); + if (DateUtil.IsValid(prm.StockTakeDate)) filter.Add(nameof(prm.StockTakeDate), DateUtil.FormatXmlDate(prm.StockTakeDate)); + if (SysId.IsValid(prm.CommodityIdSalesProj)) filter.Add(nameof(prm.CommodityIdSalesProj), SysId.ToString(prm.CommodityIdSalesProj)); + if (prm.SalesProjAnnual > 0) filter.Add(nameof(prm.SalesProjAnnual), prm.SalesProjAnnual.ToString("N3")); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Commodity sort columns. + public List GetCommoditySortColumns (SbmCommodity.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Commodity count. + public override long GetCommodityCount (SbmCommodity.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Commodity list. + public override List GetCommodityList (SbmCommodity.Params prm) + { + List commodities = new List(); + throw new NotImplementedException(); + } + public async Task> GetCommodityList_Mobile (SbmCommodity.Params prmCommodity, SacsTaskData taskData) + { + ClearErrorState(); + List commodities = new List(); + String fn = GetType().Name + ".GetCommodityList_Mobile"; + + // Commodity columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteCommodityQuery_Mobile(columns, prmCommodity, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmCommodity.Column.Id); + SysId affiliateIdOwner = new SysId(); + //Sbm.CommodityType commodityType = EnumUtil.ParseEnum(itemData.GetValue(SbmCommodity.Column.CommodityType), Sbm.CommodityType.Unknown); + string code = itemData.GetValue(SbmCommodity.Column.Code); + ushort flags = (ushort)itemData.GetIntValue(SbmCommodity.Column.Flag); + // Create item. + SbmCommodity_Mobile commodity = new SbmCommodity_Mobile(UserContext, id, affiliateIdOwner, Sbm.CommodityType.Unknown, code, flags); + // Populate item properties. + foreach (SbmCommodity.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + // Commodity. + //case SbmCommodity.Column.AffiliateIdOwner: commodity.AffiliateIdOwner = itemData.GetIdValue(column); break; + //case SbmCommodity.Column.CommodityType: commodity.CommodityType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.CommodityType.Any); break; + case SbmCommodity.Column.Code: commodity.Code = value; break; + case SbmCommodity.Column.DescBrief: commodity.DescBrief = value; break; + case SbmCommodity.Column.DescOrder: commodity.DescOrder = value; break; + case SbmCommodity.Column.DescDetail: commodity.DescDetail = value; break; + case SbmCommodity.Column.DrawingNo: commodity.DrawingNumber = value; break; + case SbmCommodity.Column.DrawingIssue: commodity.DrawingIssue = value; break; + //case SbmCommodity.Column.IncrementDrawingIssue: SbmCommodity.IncrementDrawingIssue() = value; break; + //case SbmCommodity.Column.AssetCatId: commodity.AssetCatId = itemData.GetIdValue(column); break; + case SbmCommodity.Column.ImagePath: commodity.ImagePath = value; break; + case SbmCommodity.Column.Category1Code: commodity.Category1 = value; break; + case SbmCommodity.Column.Category2Code: commodity.Category2 = value; break; + case SbmCommodity.Column.Category3Code: commodity.Category3 = value; break; + case SbmCommodity.Column.Location: commodity.Location = value; break; + case SbmCommodity.Column.Department: commodity.Department = value; break; + case SbmCommodity.Column.CatalogRef: commodity.CatalogRef = value; break; + // Specification. + case SbmCommodity.Column.Weight: commodity.Weight = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.Weight_UomId: commodity.UomIdWeight = itemData.GetIdValue(column); break; + case SbmCommodity.Column.Length: commodity.Length = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.Length_UomId: commodity.UomIdLength = itemData.GetIdValue(column); break; + case SbmCommodity.Column.Volume: commodity.Volume = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.Volume_UomId: commodity.UomIdVolume = itemData.GetIdValue(column); break; + case SbmCommodity.Column.Density: commodity.Density = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.Density_UomId: commodity.UomIdDensity = itemData.GetIdValue(column); break; + case SbmCommodity.Column.BoxQuantity: commodity.BoxQuantity = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.BoxQuantity_UomId: commodity.UomIdBox = itemData.GetIdValue(column); break; + case SbmCommodity.Column.Dimensions: commodity.Dimensions = value; break; + case SbmCommodity.Column.SpecSummary: commodity.SpecSummary = value; break; + // Codings. + case SbmCommodity.Column.RangeCode: commodity.RangeCode = value; break; + case SbmCommodity.Column.ColourCode: commodity.ColourCode = value; break; + case SbmCommodity.Column.SourceCode: commodity.SourceCode = value; break; + case SbmCommodity.Column.SupplyMethodCode: commodity.SupplyMethodCode = value; break; + case SbmCommodity.Column.HandlingCode: commodity.HandlingCode = value; break; + case SbmCommodity.Column.DeliveryCode: commodity.DeliveryCode = value; break; + case SbmCommodity.Column.MaterialCode: commodity.MaterialCode = value; break; + case SbmCommodity.Column.FinishCode: commodity.FinishCode = value; break; + case SbmCommodity.Column.PromotionCode: commodity.PromotionCode = value; break; + case SbmCommodity.Column.NominalCode: commodity.NominalCode = value; break; + case SbmCommodity.Column.NominalCodePurchase: commodity.NominalCodePurchase = value; break; + case SbmCommodity.Column.ICNTariffCode: commodity.ICNTariffCode = value; break; + // Production time. + //case SbmCommodity.Column.TimeProd: commodity.TimeProd = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.UomIdTimeProd: commodity.UomIdTimeProd = itemData.GetIdValue(column); break; + // Purchasing. + case SbmCommodity.Column.AssociationIdSupplier: commodity.AssociationIdSupplier = itemData.GetIdValue(column); break; + case SbmCommodity.Column.Supplier_Ref: commodity.SupplierRef = value; break; + case SbmCommodity.Column.CostPrice: commodity.CostPrice = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.PlaceOfOrigin: commodity.PlaceOfOrigin = value; break; + case SbmCommodity.Column.MaterialCost: commodity.MaterialCost = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.MaterialCurrencyId: commodity.CurrencyIdMaterial = itemData.GetIdValue(column); break; + case SbmCommodity.Column.ExWorksCost: commodity.ExWorksCost = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.CurrencyIdExWorks: commodity.CurrencyIdExWorks = itemData.GetIdValue(column); break; + case SbmCommodity.Column.ReorderLevel: commodity.ReorderLevel = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.ReorderQty: commodity.ReorderQty = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.QtyOnOrder: commodity.QtyOnOrder = itemData.GetDecimalValue(column); break; + // Sales. + case SbmCommodity.Column.AssociationIdCustomer: commodity.AssociationIdCustomer = itemData.GetIdValue(column); break; + case SbmCommodity.Column.SalesPrice: commodity.SalesPrice = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.RetailPrice: commodity.RetailPrice = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.RetailPricePlanned: commodity.RetailPricePlanned = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.UomIdSale: commodity.UomIdSale = itemData.GetIdValue(column); break; + case SbmCommodity.Column.CarriageCostIndicative: commodity.CarriageCostIndicative = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.MinOrderQty: commodity.MinOrderQty = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.PackQtySale: commodity.PackQtySale = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.TaxCodeId: commodity.TaxCodeId = itemData.GetIdValue(column); break; + case SbmCommodity.Column.LastOrderDate: commodity.LastOrderDate = itemData.GetDateTimeValue(column); break; + case SbmCommodity.Column.LastOrderQty: commodity.LastOrderQty = itemData.GetDecimalValue(column); break; + // Stock. + case SbmCommodity.Column.QtyInStock: commodity.QtyInStock = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.QtyAllocated: commodity.QtyAllocated = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.FreeStock: commodity.FreeStock = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.StockTakeDate: commodity.StockTakeDate = itemData.GetDateTimeValue(column); break; + case SbmCommodity.Column.StockTakeQty: commodity.StockTakeQty = itemData.GetDecimalValue(column); break; + // Projected sales. + case SbmCommodity.Column.CommodityIdSalesProj: commodity.CommodityIdSalesProj = itemData.GetIdValue(column); break; + case SbmCommodity.Column.SalesProj_Annual: commodity.SalesProjAnnual = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth01: commodity.SalesProjMonth01 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth02: commodity.SalesProjMonth02 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth03: commodity.SalesProjMonth03 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth04: commodity.SalesProjMonth04 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth05: commodity.SalesProjMonth05 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth06: commodity.SalesProjMonth06 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth07: commodity.SalesProjMonth07 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth08: commodity.SalesProjMonth08 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth09: commodity.SalesProjMonth09 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth10: commodity.SalesProjMonth10 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth11: commodity.SalesProjMonth11 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.SalesProjMonth12: commodity.SalesProjMonth12 = itemData.GetDecimalValue(column); break; + // Proposed sales - budget. + //case SbmCommodity.Column.SalesPropAnnual: commodity.SalesPropAnnual = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth01: commodity.SalesPropMonth01 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth02: commodity.SalesPropMonth02 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth03: commodity.SalesPropMonth03 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth04: commodity.SalesPropMonth04 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth05: commodity.SalesPropMonth05 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth06: commodity.SalesPropMonth06 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth07: commodity.SalesPropMonth07 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth08: commodity.SalesPropMonth08 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth09: commodity.SalesPropMonth09 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth10: commodity.SalesPropMonth10 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth11: commodity.SalesPropMonth11 = itemData.GetDecimalValue(column); break; + //case SbmCommodity.Column.SalesPropMonth12: commodity.SalesPropMonth12 = itemData.GetDecimalValue(column); break; + case SbmCommodity.Column.Notes: commodity.Notes = value; break; + case SbmCommodity.Column.Status: commodity.Status = SacsSystem.GetStatusForCode(value); break; + } + } + commodities.Add(commodity); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Commodities: " + commodities.Count); + return commodities; + } + + + //------------------------------------------------------------------- + // Commodity query execution. + public override DbResultSet ExecuteCommodityQuery (List columns, SbmCommodity.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteCommodityQuery_Mobile (List commodityColumns, SbmCommodity.Params prmCommodity, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmCommodity.Column column in commodityColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetCommodityRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetCommodityQueryFilter_Mobile(prmCommodity), columns, this.GetSortColumns_Mobile(prmCommodity), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetCommodityRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Commodity; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-CommodityCustomers.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-CommodityCustomers.cs new file mode 100644 index 0000000..dd348b9 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-CommodityCustomers.cs @@ -0,0 +1,275 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmCommodityMgr_Mobile + { + //******************************************************************* + // C o m m o d i t y C u s t o m e r + //******************************************************************* + // Create CommodityCustomer. + public override SbmCommodityCustomer CreateCommodityCustomer (SysId commodityId, SysId assocIdCustomer) + { + ClearErrorState(); + return new SbmCommodityCustomer_Mobile(UserContext, commodityId, assocIdCustomer, 0); + } + + //------------------------------------------------------------------- + // Get CommodityCustomer. + public override SbmCommodityCustomer GetCommodityCustomer (SbmCommodityCustomer.Params prmCommodityCustomer) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate CommodityCustomer. + public override bool IsValidCommodityCustomerData (SbmCommodityCustomer.Data data, SbmCommodityCustomer.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidCommodityCustomerData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert CommodityCustomer. + public override bool InsertCommodityCustomer (SbmCommodityCustomer commodityCustomer, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidCommodityCustomer(commodityCustomer)) return false; + if (SysId.IsValid(commodityCustomer.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update CommodityCustomer. + public override bool UpdateCommodityCustomer (SbmCommodityCustomer commodityCustomer, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidCommodityCustomer(commodityCustomer)) return false; + if (!SysId.IsValid(commodityCustomer.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete CommodityCustomer. + public override bool CommodityCustomerCanBeDeleted (SbmCommodityCustomer commodityCustomer) + { + ClearErrorState(); + if (!base.CommodityCustomerCanBeDeleted(commodityCustomer)) return false; + return true; + } + public override bool DeleteCommodityCustomer (SbmCommodityCustomer commodityCustomer, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!CommodityCustomerCanBeDeleted(commodityCustomer)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement commodityElement, SbmCommodityCustomer commodityCustomer, DbUpdateInfo dbUpdateInfo) + { + commodityElement.AppendElement(nameof(commodityCustomer.CommodityId), SysId.ToString(commodityCustomer.CommodityId)); + commodityElement.AppendElement(nameof(commodityCustomer.AssocIdCustomer), SysId.ToString(commodityCustomer.AssocIdCustomer)); + commodityElement.AppendElement(nameof(commodityCustomer.ProductCode), commodityCustomer.ProductCode); + commodityElement.AppendElement(nameof(commodityCustomer.AmountRetail), commodityCustomer.AmountRetail.ToString("N3")); + commodityElement.AppendElement(nameof(commodityCustomer.CurrencyIdRetail), SysId.ToString(commodityCustomer.CurrencyIdRetail)); + commodityElement.AppendElement(nameof(commodityCustomer.PromotionCode), commodityCustomer.PromotionCode); + commodityElement.AppendElement(nameof(commodityCustomer.Notes), commodityCustomer.Notes); + commodityElement.AppendElement(nameof(commodityCustomer.Status), SacsSystem.GetStatusCode(commodityCustomer.Status)); + commodityElement.AppendElement(nameof(commodityCustomer.Flags), commodityCustomer.Flags.ToString()); + if (!SysId.IsValid(commodityCustomer.Id)) + { + commodityElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + commodityElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + commodityElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + commodityElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + commodityElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + commodityElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement commodityElement, SbmCommodityCustomer commodityCustomer) + { + commodityCustomer.Id = new SysId(StringUtil.ToInt(commodityElement.GetChildText("Id"))); + commodityCustomer.CommodityId = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodityCustomer.CommodityId)))); + commodityCustomer.AssocIdCustomer = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodityCustomer.AssocIdCustomer)))); + commodityCustomer.ProductCode = commodityElement.GetChildText(nameof(commodityCustomer.ProductCode)); + commodityCustomer.AmountRetail = StringUtil.ToDecimal(commodityElement.GetChildText(nameof(commodityCustomer.AmountRetail))); + commodityCustomer.CurrencyIdRetail = new SysId(StringUtil.ToInt(commodityElement.GetChildText(nameof(commodityCustomer.CurrencyIdRetail)))); + commodityCustomer.PromotionCode = commodityElement.GetChildText(nameof(commodityCustomer.PromotionCode)); + commodityCustomer.Notes = commodityElement.GetChildText(nameof(commodityCustomer.Notes)); + commodityCustomer.Status = SacsSystem.GetStatusForCode(commodityElement.GetChildText(nameof(commodityCustomer.Status))); + commodityCustomer.SetCreateStamp(DateUtil.ParseXmlDateTime(commodityElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(commodityElement.GetChildText("CreateBy"))), commodityElement.GetChildText("CreateHost")); + commodityCustomer.SetUpdateStamp(DateUtil.ParseXmlDateTime(commodityElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(commodityElement.GetChildText("UpdateBy"))), commodityElement.GetChildText("UpdateHost")); + commodityCustomer.AcceptChanges(); + } + + //------------------------------------------------------------------- + // CommodityCustomer column definitions. + public override ColumnDfn GetCommodityCustomerColumnDfn (SbmCommodityCustomer.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // CommodityCustomer query filter. + public override List GetCommodityCustomerQueryFilter (SbmCommodityCustomer.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetCommodityCustomerQueryFilter_Mobile (SbmCommodityCustomer.Params prm) + { + Dictionary filter = new Dictionary(); + + // CommodityCustomer Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Commodity Id. + if (SysId.IsValid(prm.CommodityId)) filter.Add(nameof(prm.CommodityId), SysId.ToString(prm.CommodityId)); + + // Assoc Id Customer. + if (SysId.IsValid(prm.AssocIdCustomer)) filter.Add(nameof(prm.AssocIdCustomer), SysId.ToString(prm.AssocIdCustomer)); + + // Commodity. + if (!StringUtil.IsEmpty(prm.CommodityPartial)) filter.Add(nameof(prm.CommodityPartial), prm.CommodityPartial); + + // Customer. + if (!StringUtil.IsEmpty(prm.CustomerPartial)) filter.Add(nameof(prm.CustomerPartial), prm.CustomerPartial); + + // Product code. + if (!StringUtil.IsEmpty(prm.ProductCode)) filter.Add(nameof(prm.ProductCode), prm.ProductCode); + if (!StringUtil.IsEmpty(prm.ProductCodePartial)) filter.Add(nameof(prm.ProductCodePartial), prm.ProductCodePartial); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // CommodityCustomer sort columns. + public List GetCommodityCustomerSortColumns (SbmCommodityCustomer.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // CommodityCustomer count. + public override long GetCommodityCustomerCount (SbmCommodityCustomer.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // CommodityCustomer list. + public override List GetCommodityCustomerList (SbmCommodityCustomer.Params prm) + { + List commodityCustomers = new List(); + throw new NotImplementedException(); + } + public async Task> GetCommodityCustomerList_Mobile (SbmCommodityCustomer.Params prmCommodityCustomer, SacsTaskData taskData) + { + ClearErrorState(); + List commodityCustomers = new List(); + String fn = GetType().Name + ".GetCommodityCustomerList_Mobile"; + + // CommodityCustomer columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteCommodityCustomerQuery_Mobile(columns, prmCommodityCustomer, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId commodityId = itemData.GetIdValue(SbmCommodityCustomer.Column.Commodity_Id); + SysId assocIdCustomer = itemData.GetIdValue(SbmCommodityCustomer.Column.AssocIdCustomer); + ushort flags = (ushort)itemData.GetIntValue(SbmCommodityCustomer.Column.Flag); + // Create item. + SbmCommodityCustomer_Mobile commodityCustomer = new SbmCommodityCustomer_Mobile(UserContext, commodityId, assocIdCustomer, flags); + // Populate item properties. + foreach (SbmCommodityCustomer.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmCommodityCustomer.Column.CommodityId: commodityCustomer.CommodityId = itemData.GetIdValue(column); break; + case SbmCommodityCustomer.Column.AssocIdCustomer: commodityCustomer.AssocIdCustomer = itemData.GetIdValue(column); break; + case SbmCommodityCustomer.Column.ProductCode: commodityCustomer.ProductCode = value; break; + case SbmCommodityCustomer.Column.AmountRetail: commodityCustomer.AmountRetail = itemData.GetDecimalValue(column); break; + case SbmCommodityCustomer.Column.CurrencyIdRetail: commodityCustomer.CurrencyIdRetail = itemData.GetIdValue(column); break; + case SbmCommodityCustomer.Column.PromotionCode: commodityCustomer.PromotionCode = value; break; + case SbmCommodityCustomer.Column.Notes: commodityCustomer.Notes = value; break; + case SbmCommodityCustomer.Column.Status: commodityCustomer.Status = SacsSystem.GetStatusForCode(value); break; + } + } + commodityCustomers.Add(commodityCustomer); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Customers: " + commodityCustomers.Count); + return commodityCustomers; + } + + + //------------------------------------------------------------------- + // CommodityCustomer query execution. + public override DbResultSet ExecuteCommodityCustomerQuery (List columns, SbmCommodityCustomer.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteCommodityCustomerQuery_Mobile (List commodityColumns, SbmCommodityCustomer.Params prmCommodityCustomer, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmCommodityCustomer.Column column in commodityColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetCommodityCustomerRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetCommodityCustomerQueryFilter_Mobile(prmCommodityCustomer), columns, this.GetSortColumns_Mobile(prmCommodityCustomer), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetCommodityCustomerRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.CommodityCustomer; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-CommoditySuppliers.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-CommoditySuppliers.cs new file mode 100644 index 0000000..64bee92 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-CommoditySuppliers.cs @@ -0,0 +1,278 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmCommodityMgr_Mobile + { + //******************************************************************* + // C o m m o d i t y S u p p l i e r s + //******************************************************************* + // Create CommoditySupplier. + public override SbmCommoditySupplier CreateCommoditySupplier (SysId commoditySupplierId, SysId assocIdSupplier) + { + ClearErrorState(); + return new SbmCommoditySupplier_Mobile(UserContext, commoditySupplierId, assocIdSupplier, 0); + } + + //------------------------------------------------------------------- + // Get CommoditySupplier. + public override SbmCommoditySupplier GetCommoditySupplier (SbmCommoditySupplier.Params prmCommoditySupplier) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate CommoditySupplier. + public override bool IsValidCommoditySupplierData (SbmCommoditySupplier.Data data, SbmCommoditySupplier.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidCommoditySupplierData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert CommoditySupplier. + public override bool InsertCommoditySupplier (SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidCommoditySupplier(commoditySupplier)) return false; + if (SysId.IsValid(commoditySupplier.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update CommoditySupplier. + public override bool UpdateCommoditySupplier (SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidCommoditySupplier(commoditySupplier)) return false; + if (!SysId.IsValid(commoditySupplier.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete CommoditySupplier. + public override bool CommoditySupplierCanBeDeleted (SbmCommoditySupplier commoditySupplier) + { + ClearErrorState(); + if (!base.CommoditySupplierCanBeDeleted(commoditySupplier)) return false; + return true; + } + public override bool DeleteCommoditySupplier (SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!CommoditySupplierCanBeDeleted(commoditySupplier)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement commoditySupplierElement, SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo) + { + commoditySupplierElement.AppendElement(nameof(commoditySupplier.Id), SysId.ToString(commoditySupplier.Id)); + commoditySupplierElement.AppendElement(nameof(commoditySupplier.CommodityId), SysId.ToString(commoditySupplier.CommodityId)); + commoditySupplierElement.AppendElement(nameof(commoditySupplier.AssocIdSupplier), SysId.ToString(commoditySupplier.AssocIdSupplier)); + commoditySupplierElement.AppendElement(nameof(commoditySupplier.ProductCode), commoditySupplier.ProductCode); + commoditySupplierElement.AppendElement(nameof(commoditySupplier.AmountCost), commoditySupplier.AmountCost.ToString("N3")); + commoditySupplierElement.AppendElement(nameof(commoditySupplier.CurrencyIdCost), SysId.ToString(commoditySupplier.CurrencyIdCost)); + commoditySupplierElement.AppendElement(nameof(commoditySupplier.Notes), commoditySupplier.Notes); + commoditySupplierElement.AppendElement(nameof(commoditySupplier.Status), SacsSystem.GetStatusCode(commoditySupplier.Status)); + commoditySupplierElement.AppendElement(nameof(commoditySupplier.Flags), commoditySupplier.Flags.ToString()); + if (!SysId.IsValid(commoditySupplier.Id)) + { + commoditySupplierElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + commoditySupplierElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + commoditySupplierElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + commoditySupplierElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + commoditySupplierElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + commoditySupplierElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement commoditySupplierElement, SbmCommoditySupplier commoditySupplier) + { + commoditySupplier.Id = new SysId(StringUtil.ToInt(commoditySupplierElement.GetChildText("Id"))); + commoditySupplier.CommodityId = new SysId(StringUtil.ToInt(commoditySupplierElement.GetChildText(nameof(commoditySupplier.CommodityId)))); + commoditySupplier.AssocIdSupplier = new SysId(StringUtil.ToInt(commoditySupplierElement.GetChildText(nameof(commoditySupplier.AssocIdSupplier)))); + commoditySupplier.ProductCode = commoditySupplierElement.GetChildText(nameof(commoditySupplier.ProductCode)); + commoditySupplier.AmountCost = StringUtil.ToDecimal(commoditySupplierElement.GetChildText(nameof(commoditySupplier.AmountCost))); + commoditySupplier.CurrencyIdCost = new SysId(StringUtil.ToInt(commoditySupplierElement.GetChildText(nameof(commoditySupplier.CurrencyIdCost)))); + commoditySupplier.Notes = commoditySupplierElement.GetChildText(nameof(commoditySupplier.Notes)); + commoditySupplier.Status = SacsSystem.GetStatusForCode(commoditySupplierElement.GetChildText(nameof(commoditySupplier.Status))); + commoditySupplier.SetCreateStamp(DateUtil.ParseXmlDateTime(commoditySupplierElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(commoditySupplierElement.GetChildText("CreateBy"))), commoditySupplierElement.GetChildText("CreateHost")); + commoditySupplier.SetUpdateStamp(DateUtil.ParseXmlDateTime(commoditySupplierElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(commoditySupplierElement.GetChildText("UpdateBy"))), commoditySupplierElement.GetChildText("UpdateHost")); + commoditySupplier.AcceptChanges(); + } + + //------------------------------------------------------------------- + // CommoditySupplier column definitions. + public override ColumnDfn GetCommoditySupplierColumnDfn (SbmCommoditySupplier.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // CommoditySupplier query filter. + public override List GetCommoditySupplierQueryFilter (SbmCommoditySupplier.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetCommoditySupplierQueryFilter_Mobile (SbmCommoditySupplier.Params prm) + { + Dictionary filter = new Dictionary(); + + // CommoditySupplier Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Commodity Id. + if (SysId.IsValid(prm.CommodityId)) filter.Add(nameof(prm.CommodityId), SysId.ToString(prm.CommodityId)); + + // Assoc Id Supplier. + if (SysId.IsValid(prm.AssocIdSupplier)) filter.Add(nameof(prm.AssocIdSupplier), SysId.ToString(prm.AssocIdSupplier)); + + // Product code. + if (!StringUtil.IsEmpty(prm.ProductCode)) filter.Add(nameof(prm.ProductCode), prm.ProductCode); + + // Amount cost. + if (prm.AmountCost > 0) filter.Add(nameof(prm.AmountCost), prm.AmountCost.ToString("N3")); + + // Currency Id Cost. + if (SysId.IsValid(prm.CurrencyIdCost)) filter.Add(nameof(prm.CurrencyIdCost), SysId.ToString(prm.CurrencyIdCost)); + + // Restrict to active. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // CommoditySupplier sort columns. + public List GetCommoditySupplierSortColumns (SbmCommoditySupplier.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // CommoditySupplier count. + public override long GetCommoditySupplierCount (SbmCommoditySupplier.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // CommoditySupplier list. + public override List GetCommoditySupplierList (SbmCommoditySupplier.Params prm) + { + List companies = new List(); + throw new NotImplementedException(); + } + public async Task> GetCommoditySupplierList_Mobile (SbmCommoditySupplier.Params prmCommoditySupplier, SacsTaskData taskData) + { + ClearErrorState(); + List commoditySuppliers = new List(); + String fn = GetType().Name + ".GetCommoditySupplierList_Mobile"; + + // CommoditySupplier columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteCommoditySupplierQuery_Mobile(columns, prmCommoditySupplier, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId commodityId = itemData.GetIdValue(SbmCommodityCustomer.Column.Commodity_Id); + SysId assocIdSupplier = new SysId(); + SysId id = itemData.GetIdValue(SbmCommoditySupplier.Column.Id); + ushort flags = (ushort)itemData.GetIntValue(SbmCommoditySupplier.Column.Flag); + // Create item. + SbmCommoditySupplier_Mobile commoditySupplier = new SbmCommoditySupplier_Mobile(UserContext, commodityId, assocIdSupplier, flags); + // Populate item properties. + foreach (SbmCommoditySupplier.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmCommoditySupplier.Column.Commodity_Id: commoditySupplier.CommodityId = itemData.GetIdValue(column); break; + case SbmCommoditySupplier.Column.AssocIdSupplier: commoditySupplier.AssocIdSupplier = itemData.GetIdValue(column); break; + case SbmCommoditySupplier.Column.ProductCode: commoditySupplier.ProductCode = value; break; + case SbmCommoditySupplier.Column.CostAmount: commoditySupplier.AmountCost = itemData.GetDecimalValue(column); break; + case SbmCommoditySupplier.Column.CurrencyIdCost: commoditySupplier.CurrencyIdCost = itemData.GetIdValue(column); break; + case SbmCommoditySupplier.Column.Notes: commoditySupplier.Notes = value; break; + case SbmCommoditySupplier.Column.Status: commoditySupplier.Status = SacsSystem.GetStatusForCode(value); break; + } + } + commoditySuppliers.Add(commoditySupplier); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " CommoditySuppliers: " + commoditySuppliers.Count); + return commoditySuppliers; + } + + + //------------------------------------------------------------------- + // CommoditySupplier query execution. + public override DbResultSet ExecuteCommoditySupplierQuery (List columns, SbmCommoditySupplier.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteCommoditySupplierQuery_Mobile (List commoditySupplierColumns, SbmCommoditySupplier.Params prmCommoditySupplier, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmCommoditySupplier.Column column in commoditySupplierColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetCommoditySupplierRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetCommoditySupplierQueryFilter_Mobile(prmCommoditySupplier), columns, this.GetSortColumns_Mobile(prmCommoditySupplier), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetCommoditySupplierRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.CommoditySupplier; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-ContainerItems.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-ContainerItems.cs new file mode 100644 index 0000000..2a738ca --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-ContainerItems.cs @@ -0,0 +1,294 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmCommodityMgr_Mobile + { + public override bool PortfolioDatabaseIsValid => throw new NotImplementedException(); + + //******************************************************************* + // C o n t a i n e r I t e m s + //******************************************************************* + // Create ContainerItem. + public override SbmContainerItem CreateContainerItem (SysId containerId, Sbm.ItemType itemType, SysId itemId) + { + ClearErrorState(); + return new SbmContainerItem_Mobile(UserContext, containerId, itemType, itemId, 0); + } + + //------------------------------------------------------------------- + // Get ContainerItem. + public override SbmContainerItem GetContainerItem (SbmContainerItem.Params prmContainerItem) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate ContainerItem. + public override bool IsValidContainerItemData (SbmContainerItem.Data data, SbmContainerItem.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidContainerItemData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert ContainerItem. + public override bool InsertContainerItem (SbmContainerItem containerItem, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidContainerItem(containerItem)) return false; + if (SysId.IsValid(containerItem.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update ContainerItem. + public override bool UpdateContainerItem (SbmContainerItem containerItem, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidContainerItem(containerItem)) return false; + if (!SysId.IsValid(containerItem.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete ContainerItem. + public override bool ContainerItemCanBeDeleted (SbmContainerItem containerItem) + { + ClearErrorState(); + if (!base.ContainerItemCanBeDeleted(containerItem)) return false; + return true; + } + public override bool DeleteContainerItem (SbmContainerItem containerItem, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!ContainerItemCanBeDeleted(containerItem)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement containerItemElement, SbmContainerItem containerItem, DbUpdateInfo dbUpdateInfo) + { + containerItemElement.AppendElement(nameof(containerItem.Id), SysId.ToString(containerItem.Id)); + containerItemElement.AppendElement(nameof(containerItem.ContainerItemId), SysId.ToString(containerItem.ContainerItemId)); + containerItemElement.AppendElement(nameof(containerItem.ContainerId), SysId.ToString(containerItem.ContainerId)); + containerItemElement.AppendElement(nameof(containerItem.ItemType), containerItem.ItemType.ToString()); + containerItemElement.AppendElement(nameof(containerItem.ItemId), SysId.ToString(containerItem.ItemId)); + containerItemElement.AppendElement(nameof(containerItem.ItemSeq), containerItem.ItemSeq.ToString("N3")); + containerItemElement.AppendElement(nameof(containerItem.ItemTypeSource), containerItem.ItemTypeSource.ToString()); + containerItemElement.AppendElement(nameof(containerItem.ItemIdSource), SysId.ToString(containerItem.ItemIdSource)); + containerItemElement.AppendElement(nameof(containerItem.Quantity), containerItem.Quantity.ToString("N3")); + containerItemElement.AppendElement(nameof(containerItem.Notes), containerItem.Notes); + containerItemElement.AppendElement(nameof(containerItem.Status), SacsSystem.GetStatusCode(containerItem.Status)); + containerItemElement.AppendElement(nameof(containerItem.Flags), containerItem.Flags.ToString()); + if (!SysId.IsValid(containerItem.Id)) + { + containerItemElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + containerItemElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + containerItemElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + containerItemElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + containerItemElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + containerItemElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement containerItemElement, SbmContainerItem containerItem) + { + containerItem.Id = new SysId(StringUtil.ToInt(containerItemElement.GetChildText("Id"))); + containerItem.ContainerItemId = new SysId(StringUtil.ToInt(containerItemElement.GetChildText(nameof(containerItem.ContainerItemId)))); + containerItem.ContainerId = new SysId(StringUtil.ToInt(containerItemElement.GetChildText(nameof(containerItem.ContainerId)))); + containerItem.ItemType = EnumUtil.ParseEnum(containerItemElement.GetChildText(nameof(containerItem.ItemType)), Sbm.ItemType.Unknown); + containerItem.ItemId = new SysId(StringUtil.ToInt(containerItemElement.GetChildText(nameof(containerItem.ItemId)))); + containerItem.ItemSeq = StringUtil.ToShort(containerItemElement.GetChildText(nameof(containerItem.ItemSeq))); + containerItem.ItemTypeSource = EnumUtil.ParseEnum(containerItemElement.GetChildText(nameof(containerItem.ItemTypeSource)), Sbm.ItemType.Unknown); + containerItem.ItemIdSource = new SysId(StringUtil.ToInt(containerItemElement.GetChildText(nameof(containerItem.ItemIdSource)))); + containerItem.Quantity = StringUtil.ToDecimal(containerItemElement.GetChildText(nameof(containerItem.Quantity))); + containerItem.Notes = containerItemElement.GetChildText(nameof(containerItem.Notes)); + containerItem.Status = SacsSystem.GetStatusForCode(containerItemElement.GetChildText(nameof(containerItem.Status))); + containerItem.SetCreateStamp(DateUtil.ParseXmlDateTime(containerItemElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(containerItemElement.GetChildText("CreateBy"))), containerItemElement.GetChildText("CreateHost")); + containerItem.SetUpdateStamp(DateUtil.ParseXmlDateTime(containerItemElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(containerItemElement.GetChildText("UpdateBy"))), containerItemElement.GetChildText("UpdateHost")); + containerItem.AcceptChanges(); + } + + //------------------------------------------------------------------- + // ContainerItem column definitions. + public override ColumnDfn GetContainerItemColumnDfn (SbmContainerItem.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // ContainerItem query filter. + public override List GetContainerItemQueryFilter (SbmContainerItem.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetContainerItemQueryFilter_Mobile (SbmContainerItem.Params prm) + { + Dictionary filter = new Dictionary(); + + // ContainerItem Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Item properties. + if (SysId.IsValid(prm.ContainerId)) filter.Add(nameof(prm.ContainerId), SysId.ToString(prm.ContainerId)); + if (prm.ItemSeq > 0) filter.Add(nameof(prm.ItemSeq), prm.ItemSeq.ToString("N3")); + if ((int)prm.ItemType > 0) filter.Add(nameof(prm.ItemType), ((int)prm.ItemType).ToString()); + if (prm.ItemIds.Count > 0) filter.Add(nameof(prm.ItemIds), prm.ItemIds.Concat(",")); + if ((int)prm.ItemTypeSource > 0) filter.Add(nameof(prm.ItemTypeSource), ((int)prm.ItemTypeSource).ToString()); + if (prm.ItemIdsSource.Count > 0) filter.Add(nameof(prm.ItemIdsSource), prm.ItemIdsSource.Concat(",")); + if (prm.Quantity > 0) filter.Add(nameof(prm.Quantity), prm.Quantity.ToString("N3")); + + // Container. + if (!StringUtil.IsEmpty(prm.TableAlias_Container)) filter.Add(nameof(prm.TableAlias_Container), prm.TableAlias_Container); + if ((int)prm.ContainerCategory > 0) filter.Add(nameof(prm.ContainerCategory), ((int)prm.ContainerCategory).ToString()); + if ((int)prm.ContainerType > 0) filter.Add(nameof(prm.ContainerType), ((int)prm.ContainerType).ToString()); + if (!StringUtil.IsEmpty(prm.ContainerReference)) filter.Add(nameof(prm.ContainerReference), prm.ContainerReference); + if (!StringUtil.IsEmpty(prm.ContainerTagId)) filter.Add(nameof(prm.ContainerTagId), prm.ContainerTagId); + if (!StringUtil.IsEmpty(prm.ContainerReferencePartial)) filter.Add(nameof(prm.ContainerReferencePartial), prm.ContainerReferencePartial); + if (!StringUtil.IsEmpty(prm.ContainerTagIdPartial)) filter.Add(nameof(prm.ContainerTagIdPartial), prm.ContainerTagIdPartial); + if (!StringUtil.IsEmpty(prm.ProductCode)) filter.Add(nameof(prm.ProductCode), prm.ProductCode); + if (!StringUtil.IsEmpty(prm.ProductCodePartial)) filter.Add(nameof(prm.ProductCodePartial), prm.ProductCodePartial); + if (DateUtil.IsValid(prm.ContainerExpectedFrom)) filter.Add(nameof(prm.ContainerExpectedFrom), DateUtil.FormatXmlDate(prm.ContainerExpectedFrom)); + if (DateUtil.IsValid(prm.ContainerExpectedTo)) filter.Add(nameof(prm.ContainerExpectedTo), DateUtil.FormatXmlDate(prm.ContainerExpectedTo)); + if ((int)prm.ContainerStatus > 0) filter.Add(nameof(prm.ContainerStatus), ((int)prm.ContainerStatus).ToString()); + if (prm.ContainerHasItems != false) filter.Add(nameof(prm.ContainerHasItems), prm.ContainerHasItems.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // ContainerItem sort columns. + public List GetContainerItemSortColumns (SbmContainerItem.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // ContainerItem count. + public override long GetContainerItemCount (SbmContainerItem.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // ContainerItem list. + public override List GetContainerItemList (SbmContainerItem.Params prm) + { + List containerItems = new List(); + throw new NotImplementedException(); + } + public async Task> GetContainerItemList_Mobile (SbmContainerItem.Params prmContainerItem, SacsTaskData taskData) + { + ClearErrorState(); + List containerItems = new List(); + String fn = GetType().Name + ".GetContainerItemList_Mobile"; + + // ContainerItem columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteContainerItemQuery_Mobile(columns, prmContainerItem, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId containerId = new SysId(); + Sbm.ItemType itemType = EnumUtil.ParseEnum(itemData.GetValue(SbmContainerItem.Column.ItemType), Sbm.ItemType.Unknown); + SysId itemId = itemData.GetIdValue(SbmContainerItem.Column.ItemId); + //ushort flags = (ushort)itemData.GetIntValue(SbmContainerItem.Column.Flag); + // Create item. + SbmContainerItem_Mobile containerItem = new SbmContainerItem_Mobile(UserContext, containerId, itemType, itemId, 0); + // Populate item properties. + foreach (SbmContainerItem.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmContainerItem.Column.ContainerItemId: containerItem.ContainerItemId = itemData.GetIdValue(column); break; + //case SbmContainerItem.Column.ContainerId: containerItem.ContainerId = itemData.GetIdValue(column); break; + case SbmContainerItem.Column.ItemType: containerItem.ItemType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ItemType.Unknown); break; + case SbmContainerItem.Column.ItemId: containerItem.ItemId = itemData.GetIdValue(column); break; + case SbmContainerItem.Column.ItemSeq: containerItem.ItemSeq = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmContainerItem.Column.SourceItemType: containerItem.ItemTypeSource = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ItemType.Unknown); break; + case SbmContainerItem.Column.SourceItemId: containerItem.ItemIdSource = itemData.GetIdValue(column); break; + case SbmContainerItem.Column.Quantity: containerItem.Quantity = itemData.GetDecimalValue(column); break; + case SbmContainerItem.Column.Notes: containerItem.Notes = value; break; + case SbmContainerItem.Column.Status: containerItem.Status = SacsSystem.GetStatusForCode(value); break; + } + } + containerItems.Add(containerItem); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " ContainerItems: " + containerItems.Count); + return containerItems; + } + + + //------------------------------------------------------------------- + // ContainerItem query execution. + public override DbResultSet ExecuteContainerItemQuery (List columns, SbmContainerItem.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteContainerItemQuery_Mobile (List containerItemColumns, SbmContainerItem.Params prmContainerItem, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmContainerItem.Column column in containerItemColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetContainerItemRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetContainerItemQueryFilter_Mobile(prmContainerItem), columns, this.GetSortColumns_Mobile(prmContainerItem), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetContainerItemRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.ContainerItem; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-Containers.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-Containers.cs new file mode 100644 index 0000000..576b377 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-Containers.cs @@ -0,0 +1,312 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmCommodityMgr_Mobile + { + //******************************************************************* + // C o n t a i n e r s + //******************************************************************* + // Create Container. + public override SbmContainer CreateContainer (Sbm.ContainerCategory containerCategory, Sbm.ContainerType containerType) + { + ClearErrorState(); + return new SbmContainer_Mobile(UserContext, null, null, containerCategory, containerType, 0); + } + + //------------------------------------------------------------------- + // Get Container. + public override SbmContainer GetContainer (SbmContainer.Params prmContainer) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Container. + public override bool IsValidContainerData (SbmContainer.Data data, SbmContainer.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidContainerData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Container. + public override bool InsertContainer (SbmContainer container, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidContainer(container)) return false; + if (SysId.IsValid(container.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Container. + public override bool UpdateContainer (SbmContainer container, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidContainer(container)) return false; + if (!SysId.IsValid(container.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Container. + public override bool ContainerCanBeDeleted (SbmContainer container) + { + ClearErrorState(); + if (!base.ContainerCanBeDeleted(container)) return false; + return true; + } + public override bool DeleteContainer (SbmContainer container, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!ContainerCanBeDeleted(container)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement containerElement, SbmContainer container, DbUpdateInfo dbUpdateInfo) + { + containerElement.AppendElement(nameof(container.Id), SysId.ToString(container.Id)); + containerElement.AppendElement(nameof(container.AffiliateIdOwner), SysId.ToString(container.AffiliateIdOwner)); + containerElement.AppendElement(nameof(container.ContainerCategory), container.ContainerCategory.ToString()); + containerElement.AppendElement(nameof(container.ContainerType), container.ContainerType.ToString()); + containerElement.AppendElement(nameof(container.Reference), container.Reference); + containerElement.AppendElement(nameof(container.DescBrief), container.DescBrief); + containerElement.AppendElement(nameof(container.TagId), container.TagId); + containerElement.AppendElement(nameof(container.AssIdSupplier), SysId.ToString(container.AssIdSupplier)); + containerElement.AppendElement(nameof(container.AssIdCustomer), SysId.ToString(container.AssIdCustomer)); + containerElement.AppendElement(nameof(container.Expected), DateUtil.FormatXmlDateTime(container.Expected)); + containerElement.AppendElement(nameof(container.Notes), container.Notes); + containerElement.AppendElement(nameof(container.Status), SacsSystem.GetStatusCode(container.Status)); + containerElement.AppendElement(nameof(container.Flags), container.Flags.ToString()); + if (!SysId.IsValid(container.Id)) + { + containerElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + containerElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + containerElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + containerElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + containerElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + containerElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement containerElement, SbmContainer container) + { + container.Id = new SysId(StringUtil.ToInt(containerElement.GetChildText(nameof(container.Id)))); + container.AffiliateIdOwner = new SysId(StringUtil.ToInt(containerElement.GetChildText(nameof(container.AffiliateIdOwner)))); + container.ContainerCategory = EnumUtil.ParseEnum(containerElement.GetChildText(nameof(container.ContainerCategory)), Sbm.ContainerCategory.Unknown); + container.ContainerType = EnumUtil.ParseEnum(containerElement.GetChildText(nameof(container.ContainerType)), Sbm.ContainerType.Unknown); + container.Reference = containerElement.GetChildText(nameof(container.Reference)); + container.DescBrief = containerElement.GetChildText(nameof(container.DescBrief)); + container.TagId = containerElement.GetChildText(nameof(container.TagId)); + container.AssIdSupplier = new SysId(StringUtil.ToInt(containerElement.GetChildText(nameof(container.AssIdSupplier)))); + container.AssIdCustomer = new SysId(StringUtil.ToInt(containerElement.GetChildText(nameof(container.AssIdCustomer)))); + container.Expected = DateUtil.ParseXmlDateTime(containerElement.GetChildText(nameof(container.Expected))); + container.Notes = containerElement.GetChildText(nameof(container.Notes)); + container.Status = SacsSystem.GetStatusForCode(containerElement.GetChildText(nameof(container.Status))); + container.SetCreateStamp(DateUtil.ParseXmlDateTime(containerElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(containerElement.GetChildText("CreateBy"))), containerElement.GetChildText("CreateHost")); + container.SetUpdateStamp(DateUtil.ParseXmlDateTime(containerElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(containerElement.GetChildText("UpdateBy"))), containerElement.GetChildText("UpdateHost")); + container.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Container column definitions. + public override ColumnDfn GetContainerColumnDfn (SbmContainer.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Container query filter. + public override List GetContainerQueryFilter (SbmContainer.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetContainerQueryFilter_Mobile (SbmContainer.Params prm) + { + Dictionary filter = new Dictionary(); + + // Container Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Container category. + if ((int)prm.ContainerCategory> 0) filter.Add(nameof(prm.ContainerCategory), ((int)prm.ContainerCategory).ToString()); + + // Container type. + if ((int)prm.ContainerType > 0) filter.Add(nameof(prm.ContainerType), ((int)prm.ContainerType).ToString()); + + // Reference. + if (!StringUtil.IsEmpty(prm.Reference)) filter.Add(nameof(prm.Reference), prm.Reference); + if (!StringUtil.IsEmpty(prm.ReferencePartial)) filter.Add(nameof(prm.ReferencePartial), prm.ReferencePartial); + + // Tag Id. + if (!StringUtil.IsEmpty(prm.TagId)) filter.Add(nameof(prm.TagId), prm.TagId); + if (!StringUtil.IsEmpty(prm.TagIdPartial)) filter.Add(nameof(prm.TagIdPartial), prm.TagIdPartial); + + // AssId supplier. + if (SysId.IsValid(prm.AssIdSupplier)) filter.Add(nameof(prm.AssIdSupplier), SysId.ToString(prm.AssIdSupplier)); + + // Supplier name. + if (!StringUtil.IsEmpty(prm.SupplierName)) filter.Add(nameof(prm.SupplierName), prm.SupplierName); + + // AssId customer. + if (SysId.IsValid(prm.AssIdCustomer)) filter.Add(nameof(prm.AssIdCustomer), SysId.ToString(prm.AssIdCustomer)); + + // Customer name. + if (!StringUtil.IsEmpty(prm.CustomerName)) filter.Add(nameof(prm.CustomerName), prm.CustomerName); + + // Product code. + if (!StringUtil.IsEmpty(prm.ProductCode)) filter.Add(nameof(prm.ProductCode), prm.ProductCode); + if (!StringUtil.IsEmpty(prm.ProductCodePartial)) filter.Add(nameof(prm.ProductCodePartial), prm.ProductCodePartial); + + // Expected. + if (DateUtil.IsValid(prm.ExpectedFrom)) filter.Add(nameof(prm.ExpectedFrom), DateUtil.FormatXmlDate(prm.ExpectedFrom)); + if (DateUtil.IsValid(prm.ExpectedTo)) filter.Add(nameof(prm.ExpectedTo), DateUtil.FormatXmlDate(prm.ExpectedTo)); + + // Has items. + if (prm.HasItems!= false) filter.Add(nameof(prm.HasItems), prm.HasItems.ToString()); + + // Status. + filter.Add(nameof(prm.ContainerStatus), prm.ContainerStatus.ToString()); + + // Status. + if ((int)prm.ContainerStatus > 0) filter.Add(nameof(prm.ContainerStatus), ((int)prm.ContainerStatus).ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Container sort columns. + public List GetContainerSortColumns (SbmContainer.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Container count. + public override long GetContainerCount (SbmContainer.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Container list. + public override List GetContainerList (SbmContainer.Params prm) + { + List containers = new List(); + throw new NotImplementedException(); + } + public async Task> GetContainerList_Mobile (SbmContainer.Params prmContainer, SacsTaskData taskData) + { + ClearErrorState(); + List containers = new List(); + String fn = GetType().Name + ".GetContainerList_Mobile"; + + // Container columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteContainerQuery_Mobile(columns, prmContainer, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmContainer.Column.Id); + SysId affiliateIdOwner = new SysId(); + //Sbm.ContainerCategory containerCategory = EnumUtil.ParseEnum(itemData.GetValue(SbmContainer.Column.ContainerCategory), Sbm.ContainerCategory.Unknown); + //Sbm.ContainerType containerType = EnumUtil.ParseEnum(itemData.GetValue(SbmContainer.Column.ContainerType), Sbm.ContainerType.Unknown); + ushort flags = (ushort)itemData.GetIntValue(SbmContainer.Column.Flags); + // Create item. + SbmContainer_Mobile container = new SbmContainer_Mobile(UserContext, id, affiliateIdOwner, Sbm.ContainerCategory.Unknown, Sbm.ContainerType.Unknown, flags); + // Populate item properties. + foreach (SbmContainer.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmContainer.Column.AffiliateIdOwner: container.AffiliateIdOwner = itemData.GetIdValue(column); break; + //case SbmContainer.Column.ContainerCategory: container.ContainerCategory = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ContainerCategory.Unknown); break; + //case SbmContainer.Column.ContainerType: container.ContainerType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ContainerType.Any); break; + case SbmContainer.Column.Reference: container.Reference = value; break; + case SbmContainer.Column.DescBrief: container.DescBrief = value; break; + case SbmContainer.Column.TagId: container.TagId = value; break; + case SbmContainer.Column.AssIdSupplier: container.AssIdSupplier = itemData.GetIdValue(column); break; + case SbmContainer.Column.AssIdCustomer: container.AssIdCustomer = itemData.GetIdValue(column); break; + case SbmContainer.Column.Expected: container.Expected = itemData.GetDateTimeValue(column); break; + case SbmContainer.Column.Notes: container.Notes = value; break; + case SbmContainer.Column.Status: container.Status = SacsSystem.GetStatusForCode(value); break; + } + } + containers.Add(container); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Containers: " + containers.Count); + return containers; + } + + + //------------------------------------------------------------------- + // Container query execution. + public override DbResultSet ExecuteContainerQuery (List columns, SbmContainer.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteContainerQuery_Mobile (List containerColumns, SbmContainer.Params prmContainer, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmContainer.Column column in containerColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetContainerRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetContainerQueryFilter_Mobile(prmContainer), columns, this.GetSortColumns_Mobile(prmContainer), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetContainerRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Container; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-PortfolioItem.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-PortfolioItem.cs new file mode 100644 index 0000000..8f5695b --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile-PortfolioItem.cs @@ -0,0 +1,294 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmCommodityMgr_Mobile + { + //******************************************************************* + // C o n t a i n e r s + //******************************************************************* + // Create PortfolioItem. + public override SbmPortfolioItem CreatePortfolioItem (SysId affiliateIdOwner, Sbm.PortfolioItemType portfolioItemType) + { + ClearErrorState(); + return new SbmPortfolioItem_Mobile(UserContext, null, affiliateIdOwner, portfolioItemType, 0); + } + + //------------------------------------------------------------------- + // Get PortfolioItem. + public override SbmPortfolioItem GetPortfolioItem (SbmPortfolioItem.Params prmPortfolioItem) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate PortfolioItem. + public override bool IsValidPortfolioItemData (SbmPortfolioItem.Data data, SbmPortfolioItem.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidPortfolioItemData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert PortfolioItem. + public override bool InsertPortfolioItem (SbmPortfolioItem portfolioItem, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidPortfolioItem(portfolioItem)) return false; + if (SysId.IsValid(portfolioItem.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update PortfolioItem. + public override bool UpdatePortfolioItem (SbmPortfolioItem portfolioItem, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidPortfolioItem(portfolioItem)) return false; + if (!SysId.IsValid(portfolioItem.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete PortfolioItem. + public override bool PortfolioItemCanBeDeleted (SbmPortfolioItem portfolioItem) + { + ClearErrorState(); + if (!base.PortfolioItemCanBeDeleted(portfolioItem)) return false; + return true; + } + public override bool DeletePortfolioItem (SbmPortfolioItem portfolioItem, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!PortfolioItemCanBeDeleted(portfolioItem)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement portfolioItemElement, SbmPortfolioItem portfolioItem, DbUpdateInfo dbUpdateInfo) + { + portfolioItemElement.AppendElement(nameof(portfolioItem.Id), SysId.ToString(portfolioItem.Id)); + portfolioItemElement.AppendElement(nameof(portfolioItem.AffiliateIdOwner), SysId.ToString(portfolioItem.AffiliateIdOwner)); + portfolioItemElement.AppendElement(nameof(portfolioItem.ItemIdParent), SysId.ToString(portfolioItem.ItemIdParent)); + portfolioItemElement.AppendElement(nameof(portfolioItem.Sequence), portfolioItem.Sequence.ToString("N3")); + portfolioItemElement.AppendElement(nameof(portfolioItem.Type), portfolioItem.Type.ToString()); + portfolioItemElement.AppendElement(nameof(portfolioItem.ItemIdRef), SysId.ToString(portfolioItem.ItemIdRef)); + portfolioItemElement.AppendElement(nameof(portfolioItem.Code), portfolioItem.Code); + portfolioItemElement.AppendElement(nameof(portfolioItem.ShortCut), portfolioItem.ShortCut); + portfolioItemElement.AppendElement(nameof(portfolioItem.Caption), portfolioItem.Caption); + portfolioItemElement.AppendElement(nameof(portfolioItem.DescBrief), portfolioItem.DescBrief); + portfolioItemElement.AppendElement(nameof(portfolioItem.DescDetail), portfolioItem.DescDetail); + portfolioItemElement.AppendElement(nameof(portfolioItem.CommodityId), SysId.ToString(portfolioItem.CommodityId)); + portfolioItemElement.AppendElement(nameof(portfolioItem.Notes), portfolioItem.Notes); + portfolioItemElement.AppendElement(nameof(portfolioItem.Status), SacsSystem.GetStatusCode(portfolioItem.Status)); + portfolioItemElement.AppendElement(nameof(portfolioItem.Flags), portfolioItem.Flags.ToString()); + if (!SysId.IsValid(portfolioItem.Id)) + { + portfolioItemElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + portfolioItemElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + portfolioItemElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + portfolioItemElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + portfolioItemElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + portfolioItemElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement portfolioItemElement, SbmPortfolioItem portfolioItem) + { + portfolioItem.Id = new SysId(StringUtil.ToInt(portfolioItemElement.GetChildText(nameof(portfolioItem.Id)))); + //portfolioItem.AffiliateIdOwner = new SysId(StringUtil.ToInt(portfolioItemElement.GetChildText(nameof(portfolioItem.AffiliateIdOwner)))); + portfolioItem.ItemIdParent= new SysId(StringUtil.ToInt(portfolioItemElement.GetChildText(nameof(portfolioItem.ItemIdParent)))); + //portfolioItem.Sequence = StringUtil.to(portfolioItemElement.GetChildText(nameof(portfolioItem.Sequence))); + //portfolioItem.Type = EnumUtil.ParseEnum(portfolioItemElement.GetChildText(nameof(portfolioItem.Type)), Sbm.PortfolioItemType.Unknown); + portfolioItem.ItemIdRef = new SysId(StringUtil.ToInt(portfolioItemElement.GetChildText(nameof(portfolioItem.ItemIdRef)))); + portfolioItem.Code = portfolioItemElement.GetChildText(nameof(portfolioItem.Code)); + portfolioItem.ShortCut = portfolioItemElement.GetChildText(nameof(portfolioItem.ShortCut)); + portfolioItem.Caption = portfolioItemElement.GetChildText(nameof(portfolioItem.Caption)); + portfolioItem.DescBrief = portfolioItemElement.GetChildText(nameof(portfolioItem.DescBrief)); + portfolioItem.DescDetail = portfolioItemElement.GetChildText(nameof(portfolioItem.DescDetail)); + portfolioItem.CommodityId = new SysId(StringUtil.ToInt(portfolioItemElement.GetChildText(nameof(portfolioItem.CommodityId)))); + portfolioItem.Notes = portfolioItemElement.GetChildText(nameof(portfolioItem.Notes)); + portfolioItem.Status = SacsSystem.GetStatusForCode(portfolioItemElement.GetChildText(nameof(portfolioItem.Status))); + portfolioItem.SetCreateStamp(DateUtil.ParseXmlDateTime(portfolioItemElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(portfolioItemElement.GetChildText("CreateBy"))), portfolioItemElement.GetChildText("CreateHost")); + portfolioItem.SetUpdateStamp(DateUtil.ParseXmlDateTime(portfolioItemElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(portfolioItemElement.GetChildText("UpdateBy"))), portfolioItemElement.GetChildText("UpdateHost")); + portfolioItem.AcceptChanges(); + } + + //------------------------------------------------------------------- + // PortfolioItem column definitions. + public override ColumnDfn GetPortfolioItemColumnDfn (SbmPortfolioItem.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // PortfolioItem query filter. + public override List GetPortfolioItemQueryFilter (SbmPortfolioItem.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetPortfolioItemQueryFilter_Mobile (SbmPortfolioItem.Params prm) + { + Dictionary filter = new Dictionary(); + + // PortfolioItem Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Hierarchy. + if (SysId.IsValid(prm.ParentItemId)) filter.Add(nameof(prm.ParentItemId), SysId.ToString(prm.ParentItemId)); + if (SysId.IsValid(prm.AncestorItemId)) filter.Add(nameof(prm.AncestorItemId), SysId.ToString(prm.AncestorItemId)); + + // Commodity. + if (prm.IncludedCommodityIds.Count > 0) filter.Add(nameof(prm.IncludedCommodityIds), prm.IncludedCommodityIds.Concat(",")); + if (prm.ExcludedCommodityIds.Count > 0) filter.Add(nameof(prm.ExcludedCommodityIds), prm.ExcludedCommodityIds.Concat(",")); + if (!StringUtil.IsEmpty(prm.CommodityCodeFull)) filter.Add(nameof(prm.CommodityCodeFull), prm.CommodityCodeFull); + if (!StringUtil.IsEmpty(prm.CommodityCodePartial)) filter.Add(nameof(prm.CommodityCodePartial), prm.CommodityCodePartial); + + // Portfolio item. + if ((int)prm.PortfolioItemType > 0) filter.Add(nameof(prm.PortfolioItemType), ((int)prm.PortfolioItemType).ToString()); + //if (!StringUtil.IsEmpty(prm.Sequence)) filter.Add(nameof(prm.Sequence), prm.Sequence); + if (!StringUtil.IsEmpty(prm.CodeFull)) filter.Add(nameof(prm.CodeFull), prm.CodeFull); + if (!StringUtil.IsEmpty(prm.CodePartial)) filter.Add(nameof(prm.CodePartial), prm.CodePartial); + if (!StringUtil.IsEmpty(prm.ShortCut)) filter.Add(nameof(prm.ShortCut), prm.ShortCut); + + // Status. + if ((int)prm.StatusCat > 0) filter.Add(nameof(prm.StatusCat), ((int)prm.StatusCat).ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // PortfolioItem sort columns. + public List GetPortfolioItemSortColumns (SbmPortfolioItem.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // PortfolioItem count. + public override long GetPortfolioItemCount (SbmPortfolioItem.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // PortfolioItem list. + public override List GetPortfolioItemList (SbmPortfolioItem.Params prm) + { + List portfolioItems = new List(); + throw new NotImplementedException(); + } + public async Task> GetPortfolioItemList_Mobile (SbmPortfolioItem.Params prmPortfolioItem, SacsTaskData taskData) + { + ClearErrorState(); + List portfolioItems = new List(); + String fn = GetType().Name + ".GetPortfolioItemList_Mobile"; + + // PortfolioItem columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecutePortfolioItemQuery_Mobile(columns, prmPortfolioItem, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmPortfolioItem.Column.Id); + SysId affiliateIdOwner = new SysId(); + Sbm.PortfolioItemType portfolioItemType = EnumUtil.ParseEnum(itemData.GetValue(SbmPortfolioItem.Column.Type), Sbm.PortfolioItemType.Unknown); + //ushort flags = (ushort)itemData.GetIntValue(SbmPortfolioItem.Column.Flags); + // Create item. + SbmPortfolioItem_Mobile portfolioItem = new SbmPortfolioItem_Mobile(UserContext, id, affiliateIdOwner, Sbm.PortfolioItemType.Unknown, 0); + // Populate item properties. + foreach (SbmPortfolioItem.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmPortfolioItem.Column.AffiliateIdOwner: portfolioItem.AffiliateIdOwner = itemData.GetIdValue(column); break; + case SbmPortfolioItem.Column.ItemIdParent: portfolioItem.ItemIdParent = itemData.GetIdValue(column); break; + //case SbmPortfolioItem.Column.Sequence: portfolioItem.Sequence = itemData.GetDecimalValue(column); break; + //case SbmPortfolioItem.Column.Type: portfolioItem.Type = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.PortfolioItemType.Any); break; + case SbmPortfolioItem.Column.ItemIdRef: portfolioItem.ItemIdRef = itemData.GetIdValue(column); break; + case SbmPortfolioItem.Column.Code: portfolioItem.Code = value; break; + case SbmPortfolioItem.Column.ShortCut: portfolioItem.ShortCut = value; break; + case SbmPortfolioItem.Column.Caption: portfolioItem.Caption = value; break; + case SbmPortfolioItem.Column.DescBrief: portfolioItem.DescBrief = value; break; + case SbmPortfolioItem.Column.DescDetail: portfolioItem.DescDetail = value; break; + case SbmPortfolioItem.Column.CommodityId: portfolioItem.CommodityId = itemData.GetIdValue(column); break; + case SbmPortfolioItem.Column.Notes: portfolioItem.Notes = value; break; + case SbmPortfolioItem.Column.Status: portfolioItem.Status = SacsSystem.GetStatusForCode(value); break; + } + } + portfolioItems.Add(portfolioItem); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " PortfolioItems: " + portfolioItems.Count); + return portfolioItems; + } + + + //------------------------------------------------------------------- + // PortfolioItem query execution. + public override DbResultSet ExecutePortfolioItemQuery (List columns, SbmPortfolioItem.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecutePortfolioItemQuery_Mobile (List portfolioItemColumns, SbmPortfolioItem.Params prmPortfolioItem, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmPortfolioItem.Column column in portfolioItemColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetPortfolioItemRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetPortfolioItemQueryFilter_Mobile(prmPortfolioItem), columns, this.GetSortColumns_Mobile(prmPortfolioItem), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetPortfolioItemRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.PortfolioItem; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile.cs new file mode 100644 index 0000000..d85be1f --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmCommodityMgr_Mobile.cs @@ -0,0 +1,217 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + public partial class SbmCommodityMgr_Mobile : SbmCommodityMgr, ISbmItemMgr_Mobile + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + + //------------------------------------------------------------------- + // Construction. + public SbmCommodityMgr_Mobile (SbmUserContext userContext) : + base(userContext) + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + public String UserCode { get; } + public String EmailAddress { get; } + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ContainerDatabaseIsValid => throw new NotImplementedException(); + + public override List GetCommodityTypesInUse () + { + throw new NotImplementedException(); + } + + public override Task ExecuteCommodityQueryAsync (List columns, SbmCommodity.Params prm) + { + throw new NotImplementedException(); + } + + public override List GetPortfolioItemTypesInUse () + { + throw new NotImplementedException(); + } + + public override ushort GetMinSeqForParent (SysId parentItemId, Sbm.PortfolioItemType portfolioItemType) + { + throw new NotImplementedException(); + } + + public override ushort GetMaxSeqForParent (SysId parentItemId, Sbm.PortfolioItemType portfolioItemType) + { + throw new NotImplementedException(); + } + + public override List GetCategoryItemIds (SysId parentItemId) + { + throw new NotImplementedException(); + } + + public override List GetCommodityItemIds (SysId parentItemId, ref List commodityIds, bool includeSubCategories = false) + { + throw new NotImplementedException(); + } + + public override bool ResequenceChildren (SysId parentItemId) + { + throw new NotImplementedException(); + } + + public override bool CanMoveItemUp (SbmPortfolioItem portfolioItem) + { + throw new NotImplementedException(); + } + + public override bool CanMoveItemDown (SbmPortfolioItem portfolioItem) + { + throw new NotImplementedException(); + } + + public override bool MoveItemUp (SbmPortfolioItem portfolioItem, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + public override bool MoveItemDown (SbmPortfolioItem portfolioItem, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + public override string BuildAllocatedStockQuery (List locIds) + { + throw new NotImplementedException(); + } + + public override string BuildCurrentStockQuery (List locIds) + { + throw new NotImplementedException(); + } + + public override string BuildPlannedStockMovementsQuery (DateTime earliest, DateTime latest, SbmCommodity.Params prmCmd, bool intoStock, bool provisional, string tableAliasCommodity) + { + throw new NotImplementedException(); + } + + public override string BuildSalesQuantityQuery (DateTime earliest, DateTime latest, bool completeOrders, string tableAliasCommodity) + { + throw new NotImplementedException(); + } + + public override bool CanManageCommodityCustomers () + { + throw new NotImplementedException(); + } + + public override bool CanManageCommoditySuppliers () + { + throw new NotImplementedException(); + } + + public override bool ClearCommoditiesForCustomer (SysId assocCustomerId) + { + throw new NotImplementedException(); + } + + public override bool ClearCustomersForCommodity (SysId commodityId) + { + throw new NotImplementedException(); + } + + public override double GetCostPriceForCommodityId (SysId commodityId) + { + throw new NotImplementedException(); + } + + public override string GetItemSource (Sbm.ItemType itemType, SysId itemId, bool brief = false) + { + throw new NotImplementedException(); + } + + public override ushort GetMaxItemSeq (SysId containerId, Sbm.ItemType itemType, SysId itemId) + { + throw new NotImplementedException(); + } + + public override List GetSalesTemplateCommmodities () + { + throw new NotImplementedException(); + } + + public override Sbm.CommodityType GetTypeForCommodityId (SysId commodityId) + { + throw new NotImplementedException(); + } + + //public override List GetTypesInUse () + //{ + // throw new NotImplementedException(); + //} + + public override void PopulateLocationIdLists () + { + throw new NotImplementedException(); + } + + public override bool Store (SbmCommodityCustomer commodityCustomer) + { + throw new NotImplementedException(); + } + + public override bool Store (SbmCommoditySupplier commoditySupplier) + { + throw new NotImplementedException(); + } + + public override bool StoreCommodityCustomers (List commodityCustomers) + { + throw new NotImplementedException(); + } + + public override bool StoreCommodityCustomersForCommodity (SysId commodityId, List commodityCustomers) + { + throw new NotImplementedException(); + } + + public override bool StoreCommodityCustomersForCustomer (SysId assocCustomerId, List commodityCustomers) + { + throw new NotImplementedException(); + } + + public override bool StoreCommoditySuppliers (List commoditySuppliers) + { + throw new NotImplementedException(); + } + + public override bool UpdateReferencesToSalesTemplate (SbmCommodity commodity) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmDataItemMgr_Mobile-ItemBatches.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmDataItemMgr_Mobile-ItemBatches.cs new file mode 100644 index 0000000..6287b80 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmDataItemMgr_Mobile-ItemBatches.cs @@ -0,0 +1,273 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmDataItemMgr_Mobile + { + //******************************************************************* + // B e r t h i n g s + //******************************************************************* + // Create ItemBatch. + public override SbmItemBatch CreateItemBatch (Sbm.ItemBatchType itemBatchType, string refs) + { + ClearErrorState(); + return new SbmItemBatch_Mobile(UserContext, null, null, itemBatchType, refs, 0); + } + + //------------------------------------------------------------------- + // Get ItemBatch. + public override SbmItemBatch GetItemBatch (SbmItemBatch.Params prmItemBatch) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate ItemBatch. + public override bool IsValidItemBatchData (SbmItemBatch.Data data, SbmItemBatch.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidItemBatchData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert ItemBatch. + public override bool InsertItemBatch (SbmItemBatch itemBatch, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidItemBatch(itemBatch)) return false; + if (SysId.IsValid(itemBatch.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update ItemBatch. + public override bool UpdateItemBatch (SbmItemBatch itemBatch, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidItemBatch(itemBatch)) return false; + if (!SysId.IsValid(itemBatch.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete ItemBatch. + public override bool ItemBatchCanBeDeleted (SbmItemBatch itemBatch) + { + ClearErrorState(); + if (!base.ItemBatchCanBeDeleted(itemBatch)) return false; + return true; + } + public override bool DeleteItemBatch (SbmItemBatch itemBatch, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!ItemBatchCanBeDeleted(itemBatch)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement itemBatchElement, SbmItemBatch itemBatch, DbUpdateInfo dbUpdateInfo) + { + itemBatchElement.AppendElement(nameof(itemBatch.Id), SysId.ToString(itemBatch.Id)); + itemBatchElement.AppendElement(nameof(itemBatch.AffiliateIdOwner), SysId.ToString(itemBatch.AffiliateIdOwner)); + itemBatchElement.AppendElement(nameof(itemBatch.ItemBatchType), itemBatch.ItemBatchType.ToString()); + itemBatchElement.AppendElement(nameof(itemBatch.Ref), itemBatch.Ref); + itemBatchElement.AppendElement(nameof(itemBatch.DescBrief), itemBatch.DescBrief); + itemBatchElement.AppendElement(nameof(itemBatch.ProcessType), itemBatch.ProcessType); + itemBatchElement.AppendElement(nameof(itemBatch.Notes), itemBatch.Notes); + itemBatchElement.AppendElement(nameof(itemBatch.Status), SacsSystem.GetStatusCode(itemBatch.Status)); + itemBatchElement.AppendElement(nameof(itemBatch.Flags), itemBatch.Flags.ToString()); + if (!SysId.IsValid(itemBatch.Id)) + { + itemBatchElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + itemBatchElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + itemBatchElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + itemBatchElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + itemBatchElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + itemBatchElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement itemBatchElement, SbmItemBatch itemBatch) + { + itemBatch.Id = new SysId(StringUtil.ToInt(itemBatchElement.GetChildText("Id"))); + itemBatch.AffiliateIdOwner = new SysId(StringUtil.ToInt(itemBatchElement.GetChildText(nameof(itemBatch.AffiliateIdOwner)))); + itemBatch.ItemBatchType = EnumUtil.ParseEnum(itemBatchElement.GetChildText(nameof(itemBatch.ItemBatchType)), Sbm.ItemBatchType.Unknown); + itemBatch.Ref = itemBatchElement.GetChildText(nameof(itemBatch.Ref)); + itemBatch.DescBrief = itemBatchElement.GetChildText(nameof(itemBatch.DescBrief)); + itemBatch.ProcessType = itemBatchElement.GetChildText(nameof(itemBatch.ProcessType)); + itemBatch.Notes = itemBatchElement.GetChildText(nameof(itemBatch.Notes)); + itemBatch.Status = SacsSystem.GetStatusForCode(itemBatchElement.GetChildText(nameof(itemBatch.Status))); + itemBatch.SetCreateStamp(DateUtil.ParseXmlDateTime(itemBatchElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(itemBatchElement.GetChildText("CreateBy"))), itemBatchElement.GetChildText("CreateHost")); + itemBatch.SetUpdateStamp(DateUtil.ParseXmlDateTime(itemBatchElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(itemBatchElement.GetChildText("UpdateBy"))), itemBatchElement.GetChildText("UpdateHost")); + itemBatch.AcceptChanges(); + } + + //------------------------------------------------------------------- + // ItemBatch column definitions. + public override ColumnDfn GetItemBatchColumnDfn (SbmItemBatch.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // ItemBatch query filter. + public override List GetItemBatchQueryFilter (SbmItemBatch.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetItemBatchQueryFilter_Mobile (SbmItemBatch.Params prm) + { + Dictionary filter = new Dictionary(); + + // ItemBatch Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Item batch type. + if ((int)prm.ItemBatchType > 0) filter.Add(nameof(prm.ItemBatchType), ((int)prm.ItemBatchType).ToString()); + + // Ref. + if (!StringUtil.IsEmpty(prm.Ref)) filter.Add(nameof(prm.Ref), prm.Ref); + if (!StringUtil.IsEmpty(prm.RefPartial)) filter.Add(nameof(prm.RefPartial), prm.RefPartial); + + // Desc brief. + if (!StringUtil.IsEmpty(prm.DescBrief)) filter.Add(nameof(prm.DescBrief), prm.DescBrief); + + // Not completed. + if (prm.NotCompleted != false) filter.Add(nameof(prm.NotCompleted), prm.NotCompleted.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // ItemBatch sort columns. + public List GetItemBatchSortColumns (SbmItemBatch.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // ItemBatch count. + public override long GetItemBatchCount (SbmItemBatch.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // ItemBatch list. + public override List GetItemBatchList (SbmItemBatch.Params prm) + { + List itemBatches = new List(); + throw new NotImplementedException(); + } + public async Task> GetItemBatchList_Mobile (SbmItemBatch.Params prmItemBatch, SacsTaskData taskData) + { + ClearErrorState(); + List itemBatches = new List(); + String fn = GetType().Name + ".GetItemBatchList_Mobile"; + + // ItemBatch columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteItemBatchQuery_Mobile(columns, prmItemBatch, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmItemBatch.Column.Id); + SysId affiliateIdOwner = itemData.GetIdValue(SbmItemBatch.Column.AffIdOwner); + Sbm.ItemBatchType itemBatchType = EnumUtil.ParseEnum(itemData.GetValue(SbmItemBatch.Column.Type), Sbm.ItemBatchType.Unknown); + string refs = itemData.GetValue(SbmItemBatch.Column.Ref); + ushort flags = (ushort)itemData.GetIntValue(SbmItemBatch.Column.Flag); + // Create item. + SbmItemBatch_Mobile itemBatch = new SbmItemBatch_Mobile(UserContext, id, affiliateIdOwner, itemBatchType, refs, flags); + // Populate item properties. + foreach (SbmItemBatch.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmItemBatch.Column.AffIdOwner: itemBatch.AffiliateIdOwner = itemData.GetIdValue(column); break; + case SbmItemBatch.Column.Type: itemBatch.ItemBatchType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ItemBatchType.Unknown); break; + case SbmItemBatch.Column.Ref: itemBatch.Ref = value; break; + case SbmItemBatch.Column.DescBrief: itemBatch.DescBrief = value; break; + case SbmItemBatch.Column.ProcessType: itemBatch.ProcessType = value; break; + case SbmItemBatch.Column.Notes: itemBatch.Notes = value; break; + case SbmItemBatch.Column.Status: itemBatch.Status = SacsSystem.GetStatusForCode(value); break; + } + } + itemBatches.Add(itemBatch); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " ItemBatches: " + itemBatches.Count); + return itemBatches; + } + + + //------------------------------------------------------------------- + // ItemBatch query execution. + public override DbResultSet ExecuteItemBatchQuery (List columns, SbmItemBatch.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteItemBatchQuery_Mobile (List itemBatchColumns, SbmItemBatch.Params prmItemBatch, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmItemBatch.Column column in itemBatchColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetItemBatchRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetItemBatchQueryFilter_Mobile(prmItemBatch), columns, this.GetSortColumns_Mobile(prmItemBatch), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetItemBatchRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.ItemBatch; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmDataItemMgr_Mobile-ItemLinks.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmDataItemMgr_Mobile-ItemLinks.cs new file mode 100644 index 0000000..df5bab9 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmDataItemMgr_Mobile-ItemLinks.cs @@ -0,0 +1,298 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmDataItemMgr_Mobile + { + //******************************************************************* + // I t e m L i n k s + //******************************************************************* + // Create ItemLink. + public override SbmItemLink CreateItemLink (Sbm.ItemLinkType itemLinkType, Sbm.ItemType itemTypeFrom, SysId itemIdFrom, Sbm.ItemType itemTypeTo, SysId itemIdTo) + { + ClearErrorState(); + return new SbmItemLink_Mobile(UserContext, null, itemLinkType, itemTypeFrom, itemIdFrom, itemTypeTo, itemIdTo, 0); + } + + //------------------------------------------------------------------- + // Get ItemLink. + public override SbmItemLink GetItemLink (SbmItemLink.Params prmItemLink) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate ItemLink. + public override bool IsValidItemLinkData (SbmItemLink.Data data, SbmItemLink.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidItemLinkData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert ItemLink. + public override bool InsertItemLink (SbmItemLink itemLink, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidItemLink(itemLink)) return false; + if (SysId.IsValid(itemLink.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update ItemLink. + public override bool UpdateItemLink (SbmItemLink itemLink, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidItemLink(itemLink)) return false; + if (!SysId.IsValid(itemLink.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete ItemLink. + public override bool ItemLinkCanBeDeleted (SbmItemLink itemLink) + { + ClearErrorState(); + if (!base.ItemLinkCanBeDeleted(itemLink)) return false; + return true; + } + public override bool DeleteItemLink (SbmItemLink itemLink, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!ItemLinkCanBeDeleted(itemLink)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement itemLinkElement, SbmItemLink itemLink, DbUpdateInfo dbUpdateInfo) + { + itemLinkElement.AppendElement(nameof(itemLink.Id), SysId.ToString(itemLink.Id)); + itemLinkElement.AppendElement(nameof(itemLink.ItemLinkType), itemLink.ItemLinkType.ToString()); + itemLinkElement.AppendElement(nameof(itemLink.ItemTypeFrom), itemLink.ItemTypeFrom.ToString()); + itemLinkElement.AppendElement(nameof(itemLink.ItemIdFrom), SysId.ToString(itemLink.ItemIdFrom)); + itemLinkElement.AppendElement(nameof(itemLink.ItemTypeTo), itemLink.ItemTypeTo.ToString()); + itemLinkElement.AppendElement(nameof(itemLink.ItemIdTo), SysId.ToString(itemLink.ItemIdTo)); + itemLinkElement.AppendElement(nameof(itemLink.SortValue), itemLink.SortValue); + itemLinkElement.AppendElement(nameof(itemLink.Seq), itemLink.Seq.ToString("N3")); + itemLinkElement.AppendElement(nameof(itemLink.Completed), DateUtil.FormatXmlDateTime(itemLink.Completed)); + itemLinkElement.AppendElement(nameof(itemLink.DataContent), itemLink.DataContent); + itemLinkElement.AppendElement(nameof(itemLink.Notes), itemLink.Notes); + itemLinkElement.AppendElement(nameof(itemLink.Status), SacsSystem.GetStatusCode(itemLink.Status)); + itemLinkElement.AppendElement(nameof(itemLink.Flags), itemLink.Flags.ToString()); + if (!SysId.IsValid(itemLink.Id)) + { + itemLinkElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + itemLinkElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + itemLinkElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + itemLinkElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + itemLinkElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + itemLinkElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement itemLinkElement, SbmItemLink itemLink) + { + itemLink.Id = new SysId(StringUtil.ToInt(itemLinkElement.GetChildText("Id"))); + itemLink.ItemLinkType = EnumUtil.ParseEnum(itemLinkElement.GetChildText(nameof(itemLink.ItemLinkType)), Sbm.ItemLinkType.Unknown); + itemLink.ItemTypeFrom = EnumUtil.ParseEnum(itemLinkElement.GetChildText(nameof(itemLink.ItemTypeFrom)), Sbm.ItemType.Unknown); + itemLink.ItemIdFrom = new SysId(StringUtil.ToInt(itemLinkElement.GetChildText(nameof(itemLink.ItemIdFrom)))); + itemLink.ItemTypeTo = EnumUtil.ParseEnum(itemLinkElement.GetChildText(nameof(itemLink.ItemTypeTo)), Sbm.ItemType.Unknown); + itemLink.ItemIdTo = new SysId(StringUtil.ToInt(itemLinkElement.GetChildText(nameof(itemLink.ItemIdTo)))); + itemLink.SortValue = itemLinkElement.GetChildText(nameof(itemLink.SortValue)); + itemLink.Seq = StringUtil.ToShort(itemLinkElement.GetChildText(nameof(itemLink.Seq))); + itemLink.Completed = DateUtil.ParseXmlDateTime(itemLinkElement.GetChildText(nameof(itemLink.Completed))); + itemLink.DataContent = itemLinkElement.GetChildText(nameof(itemLink.DataContent)); + itemLink.Notes = itemLinkElement.GetChildText(nameof(itemLink.Notes)); + itemLink.Status = SacsSystem.GetStatusForCode(itemLinkElement.GetChildText(nameof(itemLink.Status))); + itemLink.SetCreateStamp(DateUtil.ParseXmlDateTime(itemLinkElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(itemLinkElement.GetChildText("CreateBy"))), itemLinkElement.GetChildText("CreateHost")); + itemLink.SetUpdateStamp(DateUtil.ParseXmlDateTime(itemLinkElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(itemLinkElement.GetChildText("UpdateBy"))), itemLinkElement.GetChildText("UpdateHost")); + itemLink.AcceptChanges(); + } + + //------------------------------------------------------------------- + // ItemLink column definitions. + public override ColumnDfn GetItemLinkColumnDfn (SbmItemLink.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // ItemLink query filter. + public override List GetItemLinkQueryFilter (SbmItemLink.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetItemLinkQueryFilter_Mobile (SbmItemLink.Params prm) + { + Dictionary filter = new Dictionary(); + + // ItemLink Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Item link type. + if ((int)prm.ItemLinkType > 0) filter.Add(nameof(prm.ItemLinkType), ((int)prm.ItemLinkType).ToString()); + + // Item type from. + if ((int)prm.ItemTypeFrom > 0) filter.Add(nameof(prm.ItemTypeFrom), ((int)prm.ItemTypeFrom).ToString()); + + // Item Id from. + if (SysId.IsValid(prm.ItemIdFrom)) filter.Add(nameof(prm.ItemIdFrom), SysId.ToString(prm.ItemIdFrom)); + + // Item type to. + if ((int)prm.ItemTypeTo> 0) filter.Add(nameof(prm.ItemTypeTo), ((int)prm.ItemTypeTo).ToString()); + + // Item Id to. + if (SysId.IsValid(prm.ItemIdTo)) filter.Add(nameof(prm.ItemIdTo), SysId.ToString(prm.ItemIdTo)); + + // Seq. + if (prm.Seq > 0) filter.Add(nameof(prm.Seq), prm.Seq.ToString("N3")); + + // Completed. + if (DateUtil.IsValid(prm.Completed)) filter.Add(nameof(prm.Completed), DateUtil.FormatXmlDate(prm.Completed)); + + // Data content. + if (!StringUtil.IsEmpty(prm.DataContent)) filter.Add(nameof(prm.DataContent), prm.DataContent); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // ItemLink sort columns. + public List GetItemLinkSortColumns (SbmItemLink.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // ItemLink count. + public override long GetItemLinkCount (SbmItemLink.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // ItemLink list. + public override List GetItemLinkList (SbmItemLink.Params prm) + { + List itemLinks = new List(); + throw new NotImplementedException(); + } + public async Task> GetItemLinkList_Mobile (SbmItemLink.Params prmItemLink, SacsTaskData taskData) + { + ClearErrorState(); + List itemLinks = new List(); + String fn = GetType().Name + ".GetItemLinkList_Mobile"; + + // ItemLink columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteItemLinkQuery_Mobile(columns, prmItemLink, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = null; + Sbm.ItemLinkType itemLinkType = EnumUtil.ParseEnum(itemData.GetValue(SbmItemLink.Column.Type), Sbm.ItemLinkType.Unknown); + Sbm.ItemType itemTypeFrom = EnumUtil.ParseEnum(itemData.GetValue(SbmItemLink.Column.ItemTypeFrom), Sbm.ItemType.Unknown); + SysId itemIdFrom = itemData.GetIdValue(SbmItemLink.Column.ItemIdFrom); + Sbm.ItemType itemTypeTo = EnumUtil.ParseEnum(itemData.GetValue(SbmItemLink.Column.ItemTypeTo), Sbm.ItemType.Unknown); + SysId itemIdTo = itemData.GetIdValue(SbmItemLink.Column.ItemIdTo); + ushort flags = (ushort)itemData.GetIntValue(SbmItemLink.Column.Flag); + // Create item. + SbmItemLink_Mobile itemLink = new SbmItemLink_Mobile(UserContext, id, itemLinkType, itemTypeFrom, itemIdFrom, itemTypeTo, itemIdTo, flags); + // Populate item properties. + foreach (SbmItemLink.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmItemLink.Column.Type: itemLink.ItemLinkType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ItemLinkType.Unknown); break; + case SbmItemLink.Column.ItemTypeFrom: itemLink.ItemTypeFrom = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ItemType.Unknown); break; + case SbmItemLink.Column.ItemIdFrom: itemLink.ItemIdFrom = itemData.GetIdValue(column); break; + case SbmItemLink.Column.ItemTypeTo: itemLink.ItemTypeTo = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ItemType.Unknown); break; + case SbmItemLink.Column.ItemIdTo: itemLink.ItemIdTo = itemData.GetIdValue(column); break; + //case SbmItemLink.Column.SortValue: itemLink.SortValue = value; break; + case SbmItemLink.Column.Seq: itemLink.Seq = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmItemLink.Column.Completed: itemLink.Completed = itemData.GetDateTimeValue(column); break; + case SbmItemLink.Column.DataContent: itemLink.DataContent = value; break; + case SbmItemLink.Column.Notes: itemLink.Notes = value; break; + case SbmItemLink.Column.Status: itemLink.Status = SacsSystem.GetStatusForCode(value); break; + } + } + itemLinks.Add(itemLink); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " ItemLinks: " + itemLinks.Count); + return itemLinks; + } + + + //------------------------------------------------------------------- + // ItemLink query execution. + public override DbResultSet ExecuteItemLinkQuery (List columns, SbmItemLink.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteItemLinkQuery_Mobile (List itemLinkColumns, SbmItemLink.Params prmItemLink, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmItemLink.Column column in itemLinkColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetItemLinkRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetItemLinkQueryFilter_Mobile(prmItemLink), columns, this.GetSortColumns_Mobile(prmItemLink), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetItemLinkRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.ItemLink; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmDataItemMgr_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmDataItemMgr_Mobile.cs new file mode 100644 index 0000000..e9f64bd --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmDataItemMgr_Mobile.cs @@ -0,0 +1,69 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + public partial class SbmDataItemMgr_Mobile : SbmDataItemMgr, ISbmItemMgr_Mobile + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + + //------------------------------------------------------------------- + // Construction. + public SbmDataItemMgr_Mobile (SbmUserContext userContext) : + base(userContext) + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + public String UserCode { get; } + public String EmailAddress { get; } + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ClearDataItem (Sbm.ItemType itemType, SysId itemId) + { + throw new NotImplementedException(); + } + + public override bool DoDbCleanup () + { + throw new NotImplementedException(); + } + + public override bool HasItemLinks (Sbm.ItemType itemType, SysId itemId) + { + throw new NotImplementedException(); + } + + public override bool StoreFromItemLinks (Sbm.ItemLinkType itemLinkType, Sbm.ItemType itemTypeFrom, SysId itemIdFrom, List itemLinks, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + public override bool StoreToItemLinks (Sbm.ItemLinkType itemLinkType, Sbm.ItemType itemTypeTo, SysId itemIdTo, List itemLinks, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmItemMgr_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmItemMgr_Mobile.cs new file mode 100644 index 0000000..7484f39 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmItemMgr_Mobile.cs @@ -0,0 +1,88 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.BusinessMgr.Mobile.Core.App; +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml.Linq; +using Xamarin.Essentials; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + public interface ISbmItemMgr_Mobile + { + String UserCode { get; } + String EmailAddress { get; } + } + + //======================================================================= + public static class SbmMobileMgrUtil + { + //------------------------------------------------------------------- + /// Populate common properties from business object to XML element. + public static void PopulateCommonPropertiesTo (this ISbmItemMgr_Mobile mgr, XElement itemElement, SacsHierarchyItem item, List excludedProperties, DbUpdateInfo dbUpdateInfo) + { + if (!excludedProperties.ContainsCI(nameof(item.Notes))) + itemElement.AppendElement(nameof(item.Notes), item.Notes); + if (!excludedProperties.ContainsCI(nameof(item.Status))) + itemElement.AppendElement(nameof(item.Status), SacsSystem.GetStatusCode(item.Status)); + if (!excludedProperties.ContainsCI(nameof(item.Flags))) + itemElement.AppendElement(nameof(item.Flags), item.Flags.ToString()); + if (!SysId.IsValid(item.Id) && !excludedProperties.ContainsCI("CreateStamp")) + { + itemElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + itemElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + itemElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + if (!excludedProperties.ContainsCI("UpdateStamp")) + { + itemElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + itemElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + itemElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + } + /// Populate common properties from Service Response Item to business object. + public static void PopulateCommonPropertiesFrom (this ISbmItemMgr_Mobile mgr, SbmWebServiceItemData itemData, SacsHierarchyItem item) + { + item.Notes = itemData.GetValue(nameof(item.Notes)); + item.Status = SacsSystem.GetStatusForCode(itemData.GetValue(nameof(item.Status))); + item.SetCreateStamp(itemData.GetDateTimeValue("CreateOn"), itemData.GetIdValue("CreateBy"), itemData.GetValue("CreateHost")); + item.SetUpdateStamp(itemData.GetDateTimeValue("UpdateOn"), itemData.GetIdValue("UpdateBy"), itemData.GetValue("UpdateHost")); + } + + //------------------------------------------------------------------- + public static SbmWebServiceRequest.Config GetRequestConfig (this ISbmItemMgr_Mobile mgr, SbmWebServiceRequest.DataType dataType, SbmWebServiceRequest.RequestType requestType, bool debug) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = dataType; + configRequest.RequestType = requestType; + //configRequest.Context.Host = StringUtil.EmptyOnNull(DeviceInfo.Name).Left(64); + configRequest.Context.User = mgr.UserCode; + configRequest.Context.Email = mgr.EmailAddress; + configRequest.Context.Debug = debug; + configRequest.SoapEnvelope = SacsSystem.DebugMode ? (SbmMobile.Random.Next(2) == 1) : false; + if (configRequest.SoapEnvelope) + configRequest.SoapPrefix = new List() { "", "SOAP", "soap", "S", "s" }[SbmMobile.Random.Next(5)]; + return configRequest; + } + + //------------------------------------------------------------------- + /// Convert columns to list of sort columns for population of XML request. + public static List GetSortColumns_Mobile (this ISbmItemMgr_Mobile mgr, SacsHierarchyItem.Params prmCompany) where TColumn : struct, IConvertible + { + List sortColumns = new List(); + foreach (ColumnDfn sortColumn in prmCompany.SortColumns) + sortColumns.Add(EnumUtil.ParseEnum(sortColumn.Id.ToString(), EnumUtil.ParseEnum("0")).ToString() + (!sortColumn.SortAscending ? " DESC" : "")); + return sortColumns; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmPriceMgr_Mobile-PriceSets.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmPriceMgr_Mobile-PriceSets.cs new file mode 100644 index 0000000..992b983 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmPriceMgr_Mobile-PriceSets.cs @@ -0,0 +1,273 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmPriceMgr_Mobile + { + //******************************************************************* + // P r i c e S e t s + //******************************************************************* + // Create PriceSet. + public override SbmPriceSet CreatePriceSet (string reference, Sbm.PriceType priceType) + { + ClearErrorState(); + return new SbmPriceSet_Mobile(UserContext, null, null, reference, priceType, 0); + } + + //------------------------------------------------------------------- + // Get PriceSet. + public override SbmPriceSet GetPriceSet (SbmPriceSet.Params prmPriceSet) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate PriceSet. + public override bool IsValidPriceSetData (SbmPriceSet.Data data, SbmPriceSet.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidPriceSetData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert PriceSet. + public override bool InsertPriceSet (SbmPriceSet priceSet, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidPriceSet(priceSet)) return false; + if (SysId.IsValid(priceSet.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update PriceSet. + public override bool UpdatePriceSet (SbmPriceSet priceSet, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidPriceSet(priceSet)) return false; + if (!SysId.IsValid(priceSet.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete PriceSet. + public override bool PriceSetCanBeDeleted (SbmPriceSet priceSet) + { + ClearErrorState(); + if (!base.PriceSetCanBeDeleted(priceSet)) return false; + return true; + } + public override bool DeletePriceSet (SbmPriceSet priceSet, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!PriceSetCanBeDeleted(priceSet)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement priceSetElement, SbmPriceSet priceSet, DbUpdateInfo dbUpdateInfo) + { + priceSetElement.AppendElement(nameof(priceSet.Id), SysId.ToString(priceSet.Id)); + // PriceSet. + priceSetElement.AppendElement(nameof(priceSet.AffiliateIdOwner), SysId.ToString(priceSet.AffiliateIdOwner)); + priceSetElement.AppendElement(nameof(priceSet.Reference), priceSet.Reference); + priceSetElement.AppendElement(nameof(priceSet.PriceType), priceSet.PriceType.ToString()); + priceSetElement.AppendElement(nameof(priceSet.Name), priceSet.Name); + priceSetElement.AppendElement(nameof(priceSet.CurrencyId), SysId.ToString(priceSet.CurrencyId)); + priceSetElement.AppendElement(nameof(priceSet.Notes), priceSet.Notes); + priceSetElement.AppendElement(nameof(priceSet.Status), SacsSystem.GetStatusCode(priceSet.Status)); + priceSetElement.AppendElement(nameof(priceSet.Flags), priceSet.Flags.ToString()); + if (!SysId.IsValid(priceSet.Id)) + { + priceSetElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + priceSetElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + priceSetElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + priceSetElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + priceSetElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + priceSetElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement priceSetElement, SbmPriceSet priceSet) + { + priceSet.Id = new SysId(StringUtil.ToInt(priceSetElement.GetChildText("Id"))); + // PriceSet. + //priceSet.AffiliateIdOwner = new SysId(StringUtil.ToInt(priceSetElement.GetChildText(nameof(priceSet.AffiliateIdOwner)))); + //priceSet.Reference = priceSetElement.GetChildText(nameof(priceSet.Reference)); + priceSet.PriceType = EnumUtil.ParseEnum(priceSetElement.GetChildText(nameof(priceSet.PriceType)), Sbm.PriceType.Unknown); + priceSet.Name = priceSetElement.GetChildText(nameof(priceSet.Name)); + priceSet.CurrencyId = new SysId(StringUtil.ToInt(priceSetElement.GetChildText(nameof(priceSet.CurrencyId)))); + priceSet.Notes = priceSetElement.GetChildText(nameof(priceSet.Notes)); + priceSet.Status = SacsSystem.GetStatusForCode(priceSetElement.GetChildText(nameof(priceSet.Status))); + priceSet.SetCreateStamp(DateUtil.ParseXmlDateTime(priceSetElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(priceSetElement.GetChildText("CreateBy"))), priceSetElement.GetChildText("CreateHost")); + priceSet.SetUpdateStamp(DateUtil.ParseXmlDateTime(priceSetElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(priceSetElement.GetChildText("UpdateBy"))), priceSetElement.GetChildText("UpdateHost")); + priceSet.AcceptChanges(); + } + + //------------------------------------------------------------------- + // PriceSet column definitions. + public override ColumnDfn GetPriceSetColumnDfn (SbmPriceSet.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // PriceSet query filter. + public override List GetPriceSetQueryFilter (SbmPriceSet.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetPriceSetQueryFilter_Mobile (SbmPriceSet.Params prm) + { + Dictionary filter = new Dictionary(); + + // PriceSet Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Price type. + if ((int)prm.PriceType > 0) filter.Add(nameof(prm.PriceType), ((int)prm.PriceType).ToString()); + + // Reference. + if (!StringUtil.IsEmpty(prm.Reference)) filter.Add(nameof(prm.Reference), prm.Reference); + if (!StringUtil.IsEmpty(prm.ReferencePartial)) filter.Add(nameof(prm.ReferencePartial), prm.ReferencePartial); + + // Name. + if (!StringUtil.IsEmpty(prm.Name)) filter.Add(nameof(prm.Name), prm.Name); + if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add(nameof(prm.NamePartial), prm.NamePartial); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // PriceSet sort columns. + public List GetPriceSetSortColumns (SbmPriceSet.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // PriceSet count. + public override long GetPriceSetCount (SbmPriceSet.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // PriceSet list. + public override List GetPriceSetList (SbmPriceSet.Params prm) + { + List commodities = new List(); + throw new NotImplementedException(); + } + public async Task> GetPriceSetList_Mobile (SbmPriceSet.Params prmPriceSet, SacsTaskData taskData) + { + ClearErrorState(); + List commodities = new List(); + String fn = GetType().Name + ".GetPriceSetList_Mobile"; + + // PriceSet columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecutePriceSetQuery_Mobile(columns, prmPriceSet, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmPriceSet.Column.Id); + SysId affiliateIdOwner = new SysId(); + String reference = itemData.GetValue(SbmPriceSet.Column.Reference); + Sbm.PriceType priceType = EnumUtil.ParseEnum(itemData.GetValue(SbmPriceSet.Column.PriceType), Sbm.PriceType.Unknown); + //ushort flags = (ushort)itemData.GetIntValue(SbmPriceSet.Column.Flag); + // Create item. + SbmPriceSet_Mobile priceSet = new SbmPriceSet_Mobile(UserContext, id, affiliateIdOwner, reference, priceType, 0); + // Populate item properties. + foreach (SbmPriceSet.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + // PriceSet. + //case SbmPriceSet.Column.AffiliateIdOwner: priceSet.AffiliateIdOwner = itemData.GetIdValue(column); break; + //case SbmPriceSet.Column.Reference: priceSet.Reference = value; break; + case SbmPriceSet.Column.PriceType: priceSet.PriceType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.PriceType.Unknown); break; + case SbmPriceSet.Column.Name: priceSet.Name = value; break; + case SbmPriceSet.Column.CurrencyId: priceSet.CurrencyId = itemData.GetIdValue(column); break; + case SbmPriceSet.Column.Notes: priceSet.Notes = value; break; + case SbmPriceSet.Column.Status: priceSet.Status = SacsSystem.GetStatusForCode(value); break; + } + } + commodities.Add(priceSet); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Commodities: " + commodities.Count); + return commodities; + } + + + //------------------------------------------------------------------- + // PriceSet query execution. + public override DbResultSet ExecutePriceSetQuery (List columns, SbmPriceSet.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecutePriceSetQuery_Mobile (List priceSetColumns, SbmPriceSet.Params prmPriceSet, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmPriceSet.Column column in priceSetColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetPriceSetRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetPriceSetQueryFilter_Mobile(prmPriceSet), columns, this.GetSortColumns_Mobile(prmPriceSet), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetPriceSetRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.PriceSet; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmPriceMgr_Mobile-Prices.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmPriceMgr_Mobile-Prices.cs new file mode 100644 index 0000000..7421fcb --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmPriceMgr_Mobile-Prices.cs @@ -0,0 +1,288 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmPriceMgr_Mobile + { + //******************************************************************* + // P r i c e s + //******************************************************************* + // Create Price. + public override SbmPrice CreatePrice (SysId priceSetId, SysId commodityId, Sbm.PriceType priceType) + { + ClearErrorState(); + return new SbmPrice_Mobile(UserContext, priceSetId, commodityId, priceType, 0); + } + + //------------------------------------------------------------------- + // Get Price. + public override SbmPrice GetPrice (SbmPrice.Params prmPrice) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Price. + public override bool IsValidPriceData (SbmPrice.Data data, SbmPrice.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidPriceData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Price. + public override bool InsertPrice (SbmPrice price, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidPrice(price)) return false; + if (SysId.IsValid(price.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Price. + public override bool UpdatePrice (SbmPrice price, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidPrice(price)) return false; + if (!SysId.IsValid(price.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Price. + public override bool PriceCanBeDeleted (SbmPrice price) + { + ClearErrorState(); + if (!base.PriceCanBeDeleted(price)) return false; + return true; + } + public override bool DeletePrice (SbmPrice price, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!PriceCanBeDeleted(price)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement priceElement, SbmPrice price, DbUpdateInfo dbUpdateInfo) + { + priceElement.AppendElement(nameof(price.Id), SysId.ToString(price.Id)); + priceElement.AppendElement(nameof(price.PriceSetId), SysId.ToString(price.PriceSetId)); + priceElement.AppendElement(nameof(price.CommodityId), SysId.ToString(price.CommodityId)); + priceElement.AppendElement(nameof(price.PriceType), price.PriceType.ToString()); + priceElement.AppendElement(nameof(price.CalculationMethod), price.CalculationMethod.ToString()); + priceElement.AppendElement(nameof(price.CalculationValue), price.CalculationValue.ToString("N3")); + priceElement.AppendElement(nameof(price.RounderMethod), price.RounderMethod.ToString()); + priceElement.AppendElement(nameof(price.RounderDirection), price.RounderDirection.ToString()); + priceElement.AppendElement(nameof(price.RounderMultipleOf), price.RounderMultipleOf.ToString("N3")); + priceElement.AppendElement(nameof(price.RounderAdjustment), price.RounderAdjustment.ToString("N3")); + priceElement.AppendElement(nameof(price.Notes), price.Notes); + priceElement.AppendElement(nameof(price.Status), SacsSystem.GetStatusCode(price.Status)); + priceElement.AppendElement(nameof(price.Flags), price.Flags.ToString()); + if (!SysId.IsValid(price.Id)) + { + priceElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + priceElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + priceElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + priceElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + priceElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + priceElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement priceElement, SbmPrice price) + { + price.Id = new SysId(StringUtil.ToInt(priceElement.GetChildText(nameof(price.Id)))); + //price.PriceSetId = new SysId(StringUtil.ToInt(priceElement.GetChildText(nameof(price.PriceSetId)))); + //price.CommodityId = new SysId(StringUtil.ToInt(priceElement.GetChildText(nameof(price.CommodityId)))); + //price.PriceType = EnumUtil.ParseEnum(priceElement.GetChildText(nameof(price.PriceType)), Sbm.PriceType.Unknown); + price.CalculationMethod = EnumUtil.ParseEnum(priceElement.GetChildText(nameof(price.CalculationMethod)), Sbm.PriceCalcMethod.Unknown); + price.CalculationValue = StringUtil.ToDecimal(priceElement.GetChildText(nameof(price.CalculationValue))); + price.RounderMethod = EnumUtil.ParseEnum(priceElement.GetChildText(nameof(price.RounderMethod)), Sbm.PriceRounderMethod.Unknown); + price.RounderDirection = EnumUtil.ParseEnum(priceElement.GetChildText(nameof(price.RounderDirection)), Sbm.PriceRounderDirection.Unknown); + price.RounderMultipleOf = StringUtil.ToDecimal(priceElement.GetChildText(nameof(price.RounderMultipleOf))); + price.RounderAdjustment = StringUtil.ToDecimal(priceElement.GetChildText(nameof(price.RounderAdjustment))); + price.Notes = priceElement.GetChildText(nameof(price.Notes)); + price.Status = SacsSystem.GetStatusForCode(priceElement.GetChildText(nameof(price.Status))); + price.SetCreateStamp(DateUtil.ParseXmlDateTime(priceElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(priceElement.GetChildText("CreateBy"))), priceElement.GetChildText("CreateHost")); + price.SetUpdateStamp(DateUtil.ParseXmlDateTime(priceElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(priceElement.GetChildText("UpdateBy"))), priceElement.GetChildText("UpdateHost")); + price.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Price column definitions. + public override ColumnDfn GetPriceColumnDfn (SbmPrice.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Price query filter. + public override List GetPriceQueryFilter (SbmPrice.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetPriceQueryFilter_Mobile (SbmPrice.Params prm) + { + Dictionary filter = new Dictionary(); + + // Price set Id. + if (SysId.IsValid(prm.PriceSetId)) filter.Add(nameof(prm.PriceSetId), SysId.ToString(prm.PriceSetId)); + + // Commodity Id. + if (SysId.IsValid(prm.CommodityId)) filter.Add(nameof(prm.CommodityId), SysId.ToString(prm.CommodityId)); + + // Price type. + if ((int)prm.PriceType > 0) filter.Add(nameof(prm.PriceType), ((int)prm.PriceType).ToString()); + + // Calculation method. + if ((int)prm.CalculationMethod > 0) filter.Add(nameof(prm.CalculationMethod), ((int)prm.CalculationMethod).ToString()); + + // Calculation value. + if (prm.CalculationValue > 0) filter.Add(nameof(prm.CalculationValue), prm.CalculationValue.ToString("N3")); + + // Rounder method. + if ((int)prm.RounderMethod > 0) filter.Add(nameof(prm.RounderMethod), ((int)prm.RounderMethod).ToString()); + + // Rounder direction. + if ((int)prm.RounderDirection > 0) filter.Add(nameof(prm.RounderDirection), ((int)prm.RounderDirection).ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Price sort columns. + public List GetPriceSortColumns (SbmPrice.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Price count. + public override long GetPriceCount (SbmPrice.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Price list. + public override List GetPriceList (SbmPrice.Params prm) + { + List prices = new List(); + throw new NotImplementedException(); + } + public async Task> GetPriceList_Mobile (SbmPrice.Params prmPrice, SacsTaskData taskData) + { + ClearErrorState(); + List prices = new List(); + String fn = GetType().Name + ".GetPriceList_Mobile"; + + // Price columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecutePriceQuery_Mobile(columns, prmPrice, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId priceSetId = itemData.GetIdValue(SbmPrice.Column.PriceSetId); + SysId commodityId = itemData.GetIdValue(SbmPrice.Column.CommodityId); + Sbm.PriceType priceType = EnumUtil.ParseEnum(itemData.GetValue(SbmPrice.Column.PriceType), Sbm.PriceType.Unknown); + //ushort flags = (ushort)itemData.GetIntValue(SbmPrice.Column.Flags); + // Create item. + SbmPrice_Mobile price = new SbmPrice_Mobile(UserContext, priceSetId, commodityId, priceType, 0); + // Populate item properties. + foreach (SbmPrice.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmPrice.Column.PriceSetId: price.PriceSetId = itemData.GetIdValue(column); break; + //case SbmPrice.Column.CommodityId: price.CommodityId = itemData.GetIdValue(column); break; + //case SbmPrice.Column.PriceType: price.PriceType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.PriceType.Any); break; + case SbmPrice.Column.CalculationMethod: price.CalculationMethod = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.PriceCalcMethod.Unknown); break; + case SbmPrice.Column.CalculationValue: price.CalculationValue = itemData.GetDecimalValue(column); break; + case SbmPrice.Column.RounderMethod: price.RounderMethod = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.PriceRounderMethod.Unknown); break; + case SbmPrice.Column.RounderDirection: price.RounderDirection = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.PriceRounderDirection.Unknown); break; + case SbmPrice.Column.RounderMultipleOf: price.RounderMultipleOf = itemData.GetDecimalValue(column); break; + case SbmPrice.Column.RounderAdjustment: price.RounderAdjustment = itemData.GetDecimalValue(column); break; + case SbmPrice.Column.Notes: price.Notes = value; break; + case SbmPrice.Column.Status: price.Status = SacsSystem.GetStatusForCode(value); break; + } + } + prices.Add(price); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Prices: " + prices.Count); + return prices; + } + + + //------------------------------------------------------------------- + // Price query execution. + public override DbResultSet ExecutePriceQuery (List columns, SbmPrice.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecutePriceQuery_Mobile (List priceColumns, SbmPrice.Params prmPrice, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmPrice.Column column in priceColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetPriceRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetPriceQueryFilter_Mobile(prmPrice), columns, this.GetSortColumns_Mobile(prmPrice), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetPriceRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Price; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmPriceMgr_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmPriceMgr_Mobile.cs new file mode 100644 index 0000000..44bbcec --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmPriceMgr_Mobile.cs @@ -0,0 +1,47 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + public partial class SbmPriceMgr_Mobile : SbmPriceMgr, ISbmItemMgr_Mobile + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + + //------------------------------------------------------------------- + // Construction. + public SbmPriceMgr_Mobile (SbmUserContext userContext) : + base(userContext) + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + public String UserCode { get; } + public String EmailAddress { get; } + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool PriceDatabaseIsValid => throw new NotImplementedException(); + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmProcessMgr_Mobile-ItemProcesses.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmProcessMgr_Mobile-ItemProcesses.cs new file mode 100644 index 0000000..a28029b --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmProcessMgr_Mobile-ItemProcesses.cs @@ -0,0 +1,217 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmProcessMgr_Mobile + { + //******************************************************************* + // I t e m P r o c e s s + //******************************************************************* + // Create ItemProcess. + public override SbmItemProcess CreateItemProcess (Sbm.ItemType itemType, SysId itemId, SysId processId) + { + ClearErrorState(); + return new SbmItemProcess_Mobile(UserContext, itemType, itemId, processId, 0); + } + + //------------------------------------------------------------------- + // Get ItemProcess. + public override List GetProcessesForItem (SbmItemProcess.Params prmItemProcess) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate ItemProcess. + public override bool IsValidItemProcessData (SbmItemProcess.Data data, SbmItemProcess.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidItemProcessData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Update ItemProcess. + public override bool UpdateProcessesForItem (Sbm.ItemType itemType, SysId itemId, List itemProcesses) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement itemProcessElement, SbmItemProcess itemProcess, DbUpdateInfo dbUpdateInfo) + { + itemProcessElement.AppendElement(nameof(itemProcess.Id), SysId.ToString(itemProcess.Id)); + itemProcessElement.AppendElement(nameof(itemProcess.ItemType), itemProcess.ItemType.ToString()); + itemProcessElement.AppendElement(nameof(itemProcess.ItemId), SysId.ToString(itemProcess.ItemId)); + itemProcessElement.AppendElement(nameof(itemProcess.ProcessId), SysId.ToString(itemProcess.ProcessId)); + itemProcessElement.AppendElement(nameof(itemProcess.Seq), itemProcess.Seq.ToString("N3")); + itemProcessElement.AppendElement(nameof(itemProcess.AmountNet), itemProcess.AmountNet.ToString("N3")); + itemProcessElement.AppendElement(nameof(itemProcess.Completed), DateUtil.FormatXmlDateTime(itemProcess.Completed)); + itemProcessElement.AppendElement(nameof(itemProcess.AssocIdContractor), SysId.ToString(itemProcess.AssocIdContractor)); + itemProcessElement.AppendElement(nameof(itemProcess.Notes), itemProcess.Notes); + itemProcessElement.AppendElement(nameof(itemProcess.Status), SacsSystem.GetStatusCode(itemProcess.Status)); + itemProcessElement.AppendElement(nameof(itemProcess.Flags), itemProcess.Flags.ToString()); + if (!SysId.IsValid(itemProcess.Id)) + { + itemProcessElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + itemProcessElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + itemProcessElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + itemProcessElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + itemProcessElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + itemProcessElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement itemProcessElement, SbmItemProcess itemProcess) + { + itemProcess.Id = new SysId(StringUtil.ToInt(itemProcessElement.GetChildText("Id"))); + itemProcess.ItemType = EnumUtil.ParseEnum(itemProcessElement.GetChildText(nameof(itemProcess.ItemType)), Sbm.ItemType.Unknown); + itemProcess.ItemId = new SysId(StringUtil.ToInt(itemProcessElement.GetChildText(nameof(itemProcess.ItemId)))); + itemProcess.ProcessId = new SysId(StringUtil.ToInt(itemProcessElement.GetChildText(nameof(itemProcess.ProcessId)))); + itemProcess.Seq = StringUtil.ToShort(itemProcessElement.GetChildText(nameof(itemProcess.Seq))); + itemProcess.AmountNet = StringUtil.ToDecimal(itemProcessElement.GetChildText(nameof(itemProcess.AmountNet))); + itemProcess.Completed = DateUtil.ParseXmlDateTime(itemProcessElement.GetChildText(nameof(itemProcess.Completed))); + itemProcess.AssocIdContractor = new SysId(StringUtil.ToInt(itemProcessElement.GetChildText(nameof(itemProcess.AssocIdContractor)))); + itemProcess.Notes = itemProcessElement.GetChildText(nameof(itemProcess.Notes)); + itemProcess.Status = SacsSystem.GetStatusForCode(itemProcessElement.GetChildText(nameof(itemProcess.Status))); + itemProcess.SetCreateStamp(DateUtil.ParseXmlDateTime(itemProcessElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(itemProcessElement.GetChildText("CreateBy"))), itemProcessElement.GetChildText("CreateHost")); + itemProcess.SetUpdateStamp(DateUtil.ParseXmlDateTime(itemProcessElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(itemProcessElement.GetChildText("UpdateBy"))), itemProcessElement.GetChildText("UpdateHost")); + itemProcess.AcceptChanges(); + } + + //------------------------------------------------------------------- + // ItemProcess query filter. + public Dictionary GetItemProcessQueryFilter_Mobile (SbmItemProcess.Params prm) + { + Dictionary filter = new Dictionary(); + + // ItemProcess Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Item type. + if ((int)prm.ItemType > 0) filter.Add(nameof(prm.ItemType), ((int)prm.ItemType).ToString()); + + // Item Id. + if (SysId.IsValid(prm.ItemId)) filter.Add(nameof(prm.ItemId), SysId.ToString(prm.ItemId)); + + // Process Id. + if (SysId.IsValid(prm.ProcessId)) filter.Add(nameof(prm.ProcessId), SysId.ToString(prm.ProcessId)); + + // Primary only. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // ItemProcess sort columns. + public List GetItemProcessSortColumns (SbmItemProcess.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // ItemProcess list. + public async Task> GetItemProcessList_Mobile (SbmItemProcess.Params prmItemProcess, SacsTaskData taskData) + { + ClearErrorState(); + List itemProcesses = new List(); + String fn = GetType().Name + ".GetItemProcessList_Mobile"; + + // ItemProcess columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteItemProcessQuery_Mobile(columns, prmItemProcess, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + //Sbm.ItemType itemType = EnumUtil.ParseEnum(itemData.GetValue(SbmItemProcess.Column.itemType), Sbm.ItemType.Unknown); + //SysId itemId = itemData.GetIdValue(SbmItemProcess.Column.ItemId); + SysId itemId = new SysId(); + //SysId processId = itemData.GetIdValue(SbmItemProcess.Column.ProcessId); + SysId processId = new SysId(); + ushort flags = (ushort)itemData.GetIntValue(SbmItemProcess.Column.Flag); + // Create item. + SbmItemProcess_Mobile itemProcess = new SbmItemProcess_Mobile(UserContext, Sbm.ItemType.Unknown, itemId, processId, flags); + // Populate item properties. + foreach (SbmItemProcess.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmItemProcess.Column.ItemType: itemProcess.ItemType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ItemType.Unknown); break; + //case SbmItemProcess.Column.ItemId: itemProcess.ItemId = itemData.GetIdValue(column); break; + //case SbmItemProcess.Column.ProcessId: itemProcess.ProcessId = itemData.GetIdValue(column); break; + //case SbmItemProcess.Column.Seq: itemProcess.Seq = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + //case SbmItemProcess.Column.AmountNet: itemProcess.AmountNet = itemData.GetDecimalValue(column); break; + //case SbmItemProcess.Column.Completed: itemProcess.Completed = itemData.GetDateTimeValue(column); break; + //case SbmItemProcess.Column.AssocIdContractor: itemProcess.AssocIdContractor = itemData.GetIdValue(column); break; + case SbmItemProcess.Column.Notes: itemProcess.Notes = value; break; + case SbmItemProcess.Column.Status: itemProcess.Status = SacsSystem.GetStatusForCode(value); break; + } + } + itemProcesses.Add(itemProcess); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " ItemProcesses: " + itemProcesses.Count); + return itemProcesses; + } + + + //------------------------------------------------------------------- + // ItemProcess query execution. + public async Task> ExecuteItemProcessQuery_Mobile (List itemProcessColumns, SbmItemProcess.Params prmItemProcess, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmItemProcess.Column column in itemProcessColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.ItemListResponseData responseData = await webServiceClient.RequestItemList(GetItemProcessRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetItemProcessQueryFilter_Mobile(prmItemProcess), this.GetSortColumns_Mobile(prmItemProcess), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetItemProcessRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.ItemProcess; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmProcessMgr_Mobile-Processes.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmProcessMgr_Mobile-Processes.cs new file mode 100644 index 0000000..cecbfe0 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmProcessMgr_Mobile-Processes.cs @@ -0,0 +1,283 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmProcessMgr_Mobile + { + //******************************************************************* + // P r o c e s s e s + //******************************************************************* + // Create Process. + public override SbmProcess CreateProcess (Sbm.ProcessCategory processCategory) + { + ClearErrorState(); + return new SbmProcess_Mobile(UserContext, null, null, processCategory, 0); + } + + //------------------------------------------------------------------- + // Get Process. + public override SbmProcess GetProcess (SbmProcess.Params prmProcess) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Process. + public override bool IsValidProcessData (SbmProcess.Data data, SbmProcess.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidProcessData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Process. + public override bool InsertProcess (SbmProcess process, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidProcess(process)) return false; + if (SysId.IsValid(process.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Process. + public override bool UpdateProcess (SbmProcess process, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidProcess(process)) return false; + if (!SysId.IsValid(process.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Process. + public override bool ProcessCanBeDeleted (SbmProcess process) + { + ClearErrorState(); + if (!base.ProcessCanBeDeleted(process)) return false; + return true; + } + public override bool DeleteProcess (SbmProcess process, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!ProcessCanBeDeleted(process)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement processElement, SbmProcess process, DbUpdateInfo dbUpdateInfo) + { + processElement.AppendElement(nameof(process.Id), SysId.ToString(process.Id)); + processElement.AppendElement(nameof(process.AffiliateIdOwner), SysId.ToString(process.AffiliateIdOwner)); + processElement.AppendElement(nameof(process.ProcessCategory), process.ProcessCategory.ToString()); + processElement.AppendElement(nameof(process.ProcessType), process.ProcessType.ToString()); + processElement.AppendElement(nameof(process.Seq), process.Seq.ToString("N3")); + processElement.AppendElement(nameof(process.DescBrief), process.DescBrief); + processElement.AppendElement(nameof(process.DescOutline), process.DescOutline); + processElement.AppendElement(nameof(process.Notes), process.Notes); + processElement.AppendElement(nameof(process.Status), SacsSystem.GetStatusCode(process.Status)); + processElement.AppendElement(nameof(process.Flags), process.Flags.ToString()); + if (!SysId.IsValid(process.Id)) + { + processElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + processElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + processElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + processElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + processElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + processElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement processElement, SbmProcess process) + { + process.Id = new SysId(StringUtil.ToInt(processElement.GetChildText("Id"))); + process.AffiliateIdOwner = new SysId(StringUtil.ToInt(processElement.GetChildText(nameof(process.AffiliateIdOwner)))); + process.ProcessCategory = EnumUtil.ParseEnum(processElement.GetChildText(nameof(process.ProcessCategory)), Sbm.ProcessCategory.Unknown); + process.ProcessType = EnumUtil.ParseEnum(processElement.GetChildText(nameof(process.ProcessType)), Sbm.ProcessType.Unknown); + process.Seq = StringUtil.ToShort(processElement.GetChildText(nameof(process.Seq))); + process.DescBrief = processElement.GetChildText(nameof(process.DescBrief)); + process.DescOutline = processElement.GetChildText(nameof(process.DescOutline)); + process.Notes = processElement.GetChildText(nameof(process.Notes)); + process.Status = SacsSystem.GetStatusForCode(processElement.GetChildText(nameof(process.Status))); + process.SetCreateStamp(DateUtil.ParseXmlDateTime(processElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(processElement.GetChildText("CreateBy"))), processElement.GetChildText("CreateHost")); + process.SetUpdateStamp(DateUtil.ParseXmlDateTime(processElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(processElement.GetChildText("UpdateBy"))), processElement.GetChildText("UpdateHost")); + process.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Process column definitions. + public override ColumnDfn GetProcessColumnDfn (SbmProcess.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Process query filter. + public override List GetProcessQueryFilter (SbmProcess.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetProcessQueryFilter_Mobile (SbmProcess.Params prm) + { + Dictionary filter = new Dictionary(); + + // Process Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Process category. + if ((int)prm.ProcessCategory > 0) filter.Add(nameof(prm.ProcessCategory), ((int)prm.ProcessCategory).ToString()); + + // Process type. + if ((int)prm.ProcessType > 0) filter.Add(nameof(prm.ProcessType), ((int)prm.ProcessType).ToString()); + + // Seq. + if (prm.Seq > 0) filter.Add(nameof(prm.Seq), prm.Seq.ToString("N3")); + + // Desc brief. + if (!StringUtil.IsEmpty(prm.DescBrief)) filter.Add(nameof(prm.DescBrief), prm.DescBrief); + + // Restrict to active. + if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Restrict to defaults. + if (prm.RestrictToDefaults != false) filter.Add(nameof(prm.RestrictToDefaults), prm.RestrictToDefaults.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Process sort columns. + public List GetProcessSortColumns (SbmProcess.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Process count. + public override long GetProcessCount (SbmProcess.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Process list. + public override List GetProcessList (SbmProcess.Params prm) + { + List processes = new List(); + throw new NotImplementedException(); + } + public async Task> GetProcessList_Mobile (SbmProcess.Params prmProcess, SacsTaskData taskData) + { + ClearErrorState(); + List processes = new List(); + String fn = GetType().Name + ".GetProcessList_Mobile"; + + // Process columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteProcessQuery_Mobile(columns, prmProcess, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + //SysId id = itemData.GetIdValue(SbmProcess.Column.Id); + SysId id = new SysId(); + //SysId affIdOwner = itemData.GetIdValue(SbmProcess.Column.affIdOwner); + SysId affIdOwner = new SysId(); + Sbm.ProcessCategory processCategory = EnumUtil.ParseEnum(itemData.GetValue(SbmProcess.Column.Category), Sbm.ProcessCategory.Unknown); + ushort flags = (ushort)itemData.GetIntValue(SbmProcess.Column.Flag); + // Create item. + SbmProcess_Mobile process = new SbmProcess_Mobile(UserContext, id, affIdOwner, processCategory, flags); + // Populate item properties. + foreach (SbmProcess.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmProcess.Column.AffIdOwner: process.AffIdOwner = itemData.GetIdValue(column); break; + case SbmProcess.Column.Category: process.ProcessCategory = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ProcessCategory.Unknown); break; + case SbmProcess.Column.Type: process.ProcessType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ProcessType.Unknown); break; + case SbmProcess.Column.Seq: process.Seq = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmProcess.Column.DescBrief: process.DescBrief = value; break; + case SbmProcess.Column.DescOutline: process.DescOutline = value; break; + case SbmProcess.Column.Notes: process.Notes = value; break; + case SbmProcess.Column.Status: process.Status = SacsSystem.GetStatusForCode(value); break; + } + } + processes.Add(process); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Processes: " + processes.Count); + return processes; + } + + + //------------------------------------------------------------------- + // Process query execution. + public override DbResultSet ExecuteProcessQuery (List columns, SbmProcess.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteProcessQuery_Mobile (List processColumns, SbmProcess.Params prmProcess, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmProcess.Column column in processColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetProcessRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetProcessQueryFilter_Mobile(prmProcess), columns, this.GetSortColumns_Mobile(prmProcess), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetProcessRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Process; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} + diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmProcessMgr_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmProcessMgr_Mobile.cs new file mode 100644 index 0000000..52dada2 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmProcessMgr_Mobile.cs @@ -0,0 +1,81 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + public partial class SbmProcessMgr_Mobile : SbmProcessMgr, ISbmItemMgr_Mobile + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + + //------------------------------------------------------------------- + // Construction. + public SbmProcessMgr_Mobile (SbmUserContext userContext) : + base(userContext) + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + public String UserCode { get; } + public String EmailAddress { get; } + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool ProcessDatabaseIsValid => throw new NotImplementedException(); + + public override SbmItemProcess CreateItemProcessForConstituent (SbmConstituent constituent) + { + throw new NotImplementedException(); + } + + public override List GetProcessesForItem (Sbm.ItemType itemType, SysId itemId, bool activeOnly) + { + throw new NotImplementedException(); + } + + public override SbmItemProcess GetProcessForItem (Sbm.ItemType itemType, SysId itemId, SysId processId) + { + throw new NotImplementedException(); + } + + public override short GetProcessSeqMax () + { + throw new NotImplementedException(); + } + + public override bool HasItemProcesses (Sbm.ItemType itemType, SysId itemId) + { + throw new NotImplementedException(); + } + + public override bool HasProcesses (Sbm.ProcessCategory processCategory) + { + throw new NotImplementedException(); + } + + public override bool StoreItemProcesses (Sbm.ItemType itemType, SysId itemId, List itemProcesses, DbUpdateInfo dbUpdateInfo) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmStockMgr_Mobile-Locations.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmStockMgr_Mobile-Locations.cs new file mode 100644 index 0000000..74aa0d5 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmStockMgr_Mobile-Locations.cs @@ -0,0 +1,279 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmStockMgr_Mobile + { + //******************************************************************* + // L o c a t i o n s + //******************************************************************* + // Create Location. + public override SbmLocation CreateLocation (Sbm.LocationCategory locationCategory) + { + ClearErrorState(); + return new SbmLocation_Mobile(UserContext, null, null,locationCategory, 0); + } + + //------------------------------------------------------------------- + // Get Location. + public override SbmLocation GetLocation (SbmLocation.Params prmLocation) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Location. + public override bool IsValidLocationData (SbmLocation.Data data, SbmLocation.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidLocationData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Location. + public override bool InsertLocation (SbmLocation location, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidLocation(location)) return false; + if (SysId.IsValid(location.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Location. + public override bool UpdateLocation (SbmLocation location, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidLocation(location)) return false; + if (!SysId.IsValid(location.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Location. + public override bool LocationCanBeDeleted (SbmLocation location) + { + ClearErrorState(); + if (!base.LocationCanBeDeleted(location)) return false; + return true; + } + public override bool DeleteLocation (SbmLocation location, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!LocationCanBeDeleted(location)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement locationElement, SbmLocation location, DbUpdateInfo dbUpdateInfo) + { + locationElement.AppendElement(nameof(location.Id), SysId.ToString(location.Id)); + locationElement.AppendElement(nameof(location.AffiliateIdOwner), SysId.ToString(location.AffiliateIdOwner)); + locationElement.AppendElement(nameof(location.LocationCategory), location.LocationCategory.ToString()); + locationElement.AppendElement(nameof(location.Code), location.Code); + locationElement.AppendElement(nameof(location.Name), location.Name); + locationElement.AppendElement(nameof(location.Notes), location.Notes); + locationElement.AppendElement(nameof(location.Status), SacsSystem.GetStatusCode(location.Status)); + locationElement.AppendElement(nameof(location.Flags), location.Flags.ToString()); + if (!SysId.IsValid(location.Id)) + { + locationElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + locationElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + locationElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + locationElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + locationElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + locationElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement locationElement, SbmLocation location) + { + location.Id = new SysId(StringUtil.ToInt(locationElement.GetChildText("Id"))); + location.AffiliateIdOwner = new SysId(StringUtil.ToInt(locationElement.GetChildText(nameof(location.AffiliateIdOwner)))); + location.LocationCategory = EnumUtil.ParseEnum(locationElement.GetChildText(nameof(location.LocationCategory)), Sbm.LocationCategory.Unknown); + location.Code = locationElement.GetChildText(nameof(location.Code)); + location.Name = locationElement.GetChildText(nameof(location.Name)); + location.Notes = locationElement.GetChildText(nameof(location.Notes)); + location.Status = SacsSystem.GetStatusForCode(locationElement.GetChildText(nameof(location.Status))); + location.SetCreateStamp(DateUtil.ParseXmlDateTime(locationElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(locationElement.GetChildText("CreateBy"))), locationElement.GetChildText("CreateHost")); + location.SetUpdateStamp(DateUtil.ParseXmlDateTime(locationElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(locationElement.GetChildText("UpdateBy"))), locationElement.GetChildText("UpdateHost")); + location.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Location column definitions. + public override ColumnDfn GetLocationColumnDfn (SbmLocation.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Location query filter. + public override List GetLocationQueryFilter (SbmLocation.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetLocationQueryFilter_Mobile (SbmLocation.Params prm) + { + Dictionary filter = new Dictionary(); + + // Location Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Vessel Id. + if (SysId.IsValid(prm.AffiliateIdOwner)) filter.Add(nameof(prm.AffiliateIdOwner), SysId.ToString(prm.AffiliateIdOwner)); + + // Location category. + if ((int)prm.LocationCategory > 0) filter.Add(nameof(prm.LocationCategory), ((int)prm.LocationCategory).ToString()); + + // Code. + if (!StringUtil.IsEmpty(prm.Code)) filter.Add(nameof(prm.Code), prm.Code); + if (!StringUtil.IsEmpty(prm.CodePartial)) filter.Add(nameof(prm.CodePartial), prm.CodePartial); + + // Name. + if (!StringUtil.IsEmpty(prm.Name)) filter.Add(nameof(prm.Name), prm.Name); + if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add(nameof(prm.NamePartial), prm.NamePartial); + + // Restrict to sales stock. + if (prm.RestrictToSalesStock != false) filter.Add(nameof(prm.RestrictToSalesStock), prm.RestrictToSalesStock.ToString()); + + // Restrict to calculate stock. + if (prm.RestrictToCalculateStock != false) filter.Add(nameof(prm.RestrictToCalculateStock), prm.RestrictToCalculateStock.ToString()); + + // Restrict to active. + //if (prm.RestrictToActive != false) filter.Add(nameof(prm.RestrictToActive), prm.RestrictToActive.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Location sort columns. + public List GetLocationSortColumns (SbmLocation.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Location count. + public override long GetLocationCount (SbmLocation.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Location list. + public override List GetLocationList (SbmLocation.Params prm) + { + List locations = new List(); + throw new NotImplementedException(); + } + public async Task> GetLocationList_Mobile (SbmLocation.Params prmLocation, SacsTaskData taskData) + { + ClearErrorState(); + List locations = new List(); + String fn = GetType().Name + ".GetLocationList_Mobile"; + + // Location columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteLocationQuery_Mobile(columns, prmLocation, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmLocation.Column.Id); + SysId affiliateIdOwner = new SysId(); + //Sbm.LocationCategory locationCategory = EnumUtil.ParseEnum(itemData.GetValue(SbmLocation.Column.LocationCategory), Sbm.LocationCategory.Unknown); + ushort flags = (ushort)itemData.GetIntValue(SbmLocation.Column.Flags); + // Create item. + SbmLocation_Mobile location = new SbmLocation_Mobile(UserContext, id, affiliateIdOwner, Sbm.LocationCategory.Unknown, flags); + // Populate item properties. + foreach (SbmLocation.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmLocation.Column.AffiliateIdOwner: location.AffiliateIdOwner = itemData.GetIdValue(column); break; + //case SbmAddress.Column.LocationCategory: location.LocationCategory = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.LocationCategory.Unknown); break; + case SbmLocation.Column.Code: location.Code = value; break; + case SbmLocation.Column.Name: location.Name = value; break; + case SbmLocation.Column.Notes: location.Notes = value; break; + case SbmLocation.Column.Status: location.Status = SacsSystem.GetStatusForCode(value); break; + } + } + locations.Add(location); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Locations: " + locations.Count); + return locations; + } + + + //------------------------------------------------------------------- + // Location query execution. + public override DbResultSet ExecuteLocationQuery (List columns, SbmLocation.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteLocationQuery_Mobile (List locationColumns, SbmLocation.Params prmLocation, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmLocation.Column column in locationColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetLocationRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetLocationQueryFilter_Mobile(prmLocation), columns, this.GetSortColumns_Mobile(prmLocation), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetLocationRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Location; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmStockMgr_Mobile-Movements.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmStockMgr_Mobile-Movements.cs new file mode 100644 index 0000000..4d276ca --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmStockMgr_Mobile-Movements.cs @@ -0,0 +1,324 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmStockMgr_Mobile + { + //******************************************************************* + // M o v e m e n t s + //******************************************************************* + // Create Movement. + public override SbmMovement CreateMovement (Sbm.ItemType itemType, SysId itemId, Sbm.MovementType movementType) + { + ClearErrorState(); + return new SbmMovement_Mobile(UserContext, null, itemType, itemId, movementType, 0); + } + + //------------------------------------------------------------------- + // Get Movement. + public override SbmMovement GetMovement (SbmMovement.Params prmMovement) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Movement. + public override bool IsValidMovementData (SbmMovement.Data data, SbmMovement.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidMovementData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Movement. + public override bool InsertMovement (SbmMovement movement, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidMovement(movement)) return false; + if (SysId.IsValid(movement.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Movement. + public override bool UpdateMovement (SbmMovement movement, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidMovement(movement)) return false; + if (!SysId.IsValid(movement.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Movement. + public override bool MovementCanBeDeleted (SbmMovement movement) + { + ClearErrorState(); + if (!base.MovementCanBeDeleted(movement)) return false; + return true; + } + public override bool DeleteMovement (SbmMovement movement, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!MovementCanBeDeleted(movement)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement movementElement, SbmMovement movement, DbUpdateInfo dbUpdateInfo) + { + movementElement.AppendElement(nameof(movement.Id), SysId.ToString(movement.Id)); + movementElement.AppendElement(nameof(movement.ItemType), movement.ItemType.ToString()); + movementElement.AppendElement(nameof(movement.ItemId), SysId.ToString(movement.ItemId)); + movementElement.AppendElement(nameof(movement.MovementType), movement.MovementType.ToString()); + movementElement.AppendElement(nameof(movement.Movement), DateUtil.FormatXmlDateTime(movement.Movement)); + movementElement.AppendElement(nameof(movement.LocationIdFrom), SysId.ToString(movement.LocationIdFrom)); + movementElement.AppendElement(nameof(movement.LocationIdTo), SysId.ToString(movement.LocationIdTo)); + movementElement.AppendElement(nameof(movement.Quantity), movement.Quantity.ToString("N3")); + movementElement.AppendElement(nameof(movement.MovementIdSource), SysId.ToString(movement.MovementIdSource)); + movementElement.AppendElement(nameof(movement.ItemTypeSource), movement.ItemTypeSource.ToString()); + movementElement.AppendElement(nameof(movement.ItemIdSource), SysId.ToString(movement.ItemIdSource)); + movementElement.AppendElement(nameof(movement.Notes), movement.Notes); + movementElement.AppendElement(nameof(movement.Status), SacsSystem.GetStatusCode(movement.Status)); + movementElement.AppendElement(nameof(movement.Flags), movement.Flags.ToString()); + if (!SysId.IsValid(movement.Id)) + { + movementElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + movementElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + movementElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + movementElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + movementElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + movementElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement movementElement, SbmMovement movement) + { + movement.Id = new SysId(StringUtil.ToInt(movementElement.GetChildText("Id"))); + movement.ItemType = EnumUtil.ParseEnum(movementElement.GetChildText(nameof(movement.ItemType)), Sbm.ItemType.Unknown); + movement.ItemId = new SysId(StringUtil.ToInt(movementElement.GetChildText(nameof(movement.ItemId)))); + movement.MovementType = EnumUtil.ParseEnum(movementElement.GetChildText(nameof(movement.MovementType)), Sbm.MovementType.Unknown); + movement.Movement = DateUtil.ParseXmlDateTime(movementElement.GetChildText(nameof(movement.Movement))); + movement.LocationIdFrom = new SysId(StringUtil.ToInt(movementElement.GetChildText(nameof(movement.LocationIdFrom)))); + movement.LocationIdTo = new SysId(StringUtil.ToInt(movementElement.GetChildText(nameof(movement.LocationIdTo)))); + movement.Quantity = StringUtil.ToDecimal(movementElement.GetChildText(nameof(movement.Quantity))); + movement.MovementIdSource = new SysId(StringUtil.ToInt(movementElement.GetChildText(nameof(movement.MovementIdSource)))); + movement.ItemTypeSource = EnumUtil.ParseEnum(movementElement.GetChildText(nameof(movement.ItemTypeSource)), Sbm.ItemType.Unknown); + movement.ItemIdSource = new SysId(StringUtil.ToInt(movementElement.GetChildText(nameof(movement.ItemIdSource)))); + movement.Notes = movementElement.GetChildText(nameof(movement.Notes)); + movement.Status = SacsSystem.GetStatusForCode(movementElement.GetChildText(nameof(movement.Status))); + movement.SetCreateStamp(DateUtil.ParseXmlDateTime(movementElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(movementElement.GetChildText("CreateBy"))), movementElement.GetChildText("CreateHost")); + movement.SetUpdateStamp(DateUtil.ParseXmlDateTime(movementElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(movementElement.GetChildText("UpdateBy"))), movementElement.GetChildText("UpdateHost")); + movement.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Movement column definitions. + public override ColumnDfn GetMovementColumnDfn (SbmMovement.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Movement query filter. + public override List GetMovementQueryFilter (SbmMovement.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetMovementQueryFilter_Mobile (SbmMovement.Params prm) + { + Dictionary filter = new Dictionary(); + + // Movement Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Item type. + if ((int)prm.ItemType > 0) filter.Add(nameof(prm.ItemType), ((int)prm.ItemType).ToString()); + + // Item type source. + if ((int)prm.ItemTypeSource > 0) filter.Add(nameof(prm.ItemTypeSource), ((int)prm.ItemTypeSource).ToString()); + + // ItemIds. + if (prm.ItemIds.Count > 0) filter.Add(nameof(prm.ItemIds), prm.ItemIds.Concat(",")); + if (prm.ItemIdsSource.Count > 0) filter.Add(nameof(prm.ItemIdsSource), prm.ItemIdsSource.Concat(",")); + + // Container item type. + if ((int)prm.ContainerItemType > 0) filter.Add(nameof(prm.ContainerItemType), ((int)prm.ContainerItemType).ToString()); + + // Container item Id. + if (SysId.IsValid(prm.ContainerItemId)) filter.Add(nameof(prm.ContainerItemId), SysId.ToString(prm.ContainerItemId)); + + // Item Id source. + if (prm.ItemIdSource.Count > 0) filter.Add(nameof(prm.ItemIdSource), prm.ItemIdSource.Concat(",")); + + // Exclude provisional containers. + if (prm.ExcludeProvisionalContainers != false) filter.Add(nameof(prm.ExcludeProvisionalContainers), prm.ExcludeProvisionalContainers.ToString()); + + // Movement type. + if ((int)prm.MovementType > 0) filter.Add(nameof(prm.MovementType), ((int)prm.MovementType).ToString()); + + // Movement. + if (DateUtil.IsValid(prm.MovementFrom)) filter.Add(nameof(prm.MovementFrom), DateUtil.FormatXmlDate(prm.MovementFrom)); + if (DateUtil.IsValid(prm.MovementTo)) filter.Add(nameof(prm.MovementTo), DateUtil.FormatXmlDate(prm.MovementTo)); + + // Location Id. + if (SysId.IsValid(prm.LocationId)) filter.Add(nameof(prm.LocationId), SysId.ToString(prm.LocationId)); + if (SysId.IsValid(prm.LocationIdFrom)) filter.Add(nameof(prm.LocationIdFrom), SysId.ToString(prm.LocationIdFrom)); + if (SysId.IsValid(prm.LocationIdTo)) filter.Add(nameof(prm.LocationIdTo), SysId.ToString(prm.LocationIdTo)); + + // Restrict to sales stock locations. + if (prm.RestrictToSalesStockLocations != false) filter.Add(nameof(prm.RestrictToSalesStockLocations), prm.RestrictToSalesStockLocations.ToString()); + + // Restrict to calculate stock locations. + if (prm.RestrictToCalculateStockLocations != false) filter.Add(nameof(prm.RestrictToCalculateStockLocations), prm.RestrictToCalculateStockLocations.ToString()); + + // Include requirements for transactions. + if (prm.IncludeRequirementsForTransactions != false) filter.Add(nameof(prm.IncludeRequirementsForTransactions), prm.IncludeRequirementsForTransactions.ToString()); + + // Movement Id source. + if (SysId.IsValid(prm.MovementIdSource)) filter.Add(nameof(prm.MovementIdSource), SysId.ToString(prm.MovementIdSource)); + + // Status. + if ((int)prm.Status > 0) filter.Add(nameof(prm.Status), ((int)prm.Status).ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Movement sort columns. + public List GetMovementSortColumns (SbmMovement.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Movement count. + public override long GetMovementCount (SbmMovement.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Movement list. + public override List GetMovementList (SbmMovement.Params prm) + { + List movements = new List(); + throw new NotImplementedException(); + } + public async Task> GetMovementList_Mobile (SbmMovement.Params prmMovement, SacsTaskData taskData) + { + ClearErrorState(); + List movements = new List(); + String fn = GetType().Name + ".GetMovementList_Mobile"; + + // Movement columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteMovementQuery_Mobile(columns, prmMovement, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmMovement.Column.Id); + Sbm.ItemType itemType = EnumUtil.ParseEnum(itemData.GetValue(SbmMovement.Column.ItemType), Sbm.ItemType.Unknown); + SysId itemId = itemData.GetIdValue(SbmMovement.Column.ItemId); + Sbm.MovementType movementType = EnumUtil.ParseEnum(itemData.GetValue(SbmMovement.Column.Type_Desc), Sbm.MovementType.Unknown); + ushort flags = (ushort)itemData.GetIntValue(SbmMovement.Column.Flag); + // Create item. + SbmMovement_Mobile movement = new SbmMovement_Mobile(UserContext, id, itemType, itemId, movementType, flags); + // Populate item properties. + foreach (SbmMovement.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmMovement.Column.ItemType: movement.ItemType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ItemType.Unknown); break; + case SbmMovement.Column.ItemId: movement.ItemId = itemData.GetIdValue(column); break; + case SbmMovement.Column.Type_Desc: movement.MovementType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.MovementType.Unknown); break; + case SbmMovement.Column.Movement: movement.Movement = itemData.GetDateTimeValue(column); break; + case SbmMovement.Column.LocationIdFrom: movement.LocationIdFrom = itemData.GetIdValue(column); break; + case SbmMovement.Column.LocationIdTo: movement.LocationIdTo = itemData.GetIdValue(column); break; + case SbmMovement.Column.Quantity: movement.Quantity = itemData.GetDecimalValue(column); break; + case SbmMovement.Column.MovementIdSource: movement.MovementIdSource = itemData.GetIdValue(column); break; + case SbmMovement.Column.SourceItemType: movement.ItemTypeSource= EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ItemType.Unknown); break; + case SbmMovement.Column.SourceItemId: movement.ItemIdSource = itemData.GetIdValue(column); break; + case SbmMovement.Column.Notes: movement.Notes = value; break; + case SbmMovement.Column.Status: movement.Status = SacsSystem.GetStatusForCode(value); break; + } + } + movements.Add(movement); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Movements: " + movements.Count); + return movements; + } + + + //------------------------------------------------------------------- + // Movement query execution. + public override DbResultSet ExecuteMovementQuery (List columns, SbmMovement.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteMovementQuery_Mobile (List movementColumns, SbmMovement.Params prmMovement, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmMovement.Column column in movementColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetMovementRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetMovementQueryFilter_Mobile(prmMovement), columns, this.GetSortColumns_Mobile(prmMovement), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetMovementRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Movement; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmStockMgr_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmStockMgr_Mobile.cs new file mode 100644 index 0000000..f4d38cd --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmStockMgr_Mobile.cs @@ -0,0 +1,74 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Dbas.Base; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + public partial class SbmStockMgr_Mobile : SbmStockMgr, ISbmItemMgr_Mobile + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + + //------------------------------------------------------------------- + // Construction. + public SbmStockMgr_Mobile (SbmUserContext userContext) : + base(userContext) + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + public String UserCode { get; } + public String EmailAddress { get; } + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool CancelMovementsForSourceItem (Sbm.ItemType itemType, SysId itemId) + { + throw new NotImplementedException(); + } + + public override bool ClearMovementsForSourceItem (Sbm.ItemType itemType, SysId itemId) + { + throw new NotImplementedException(); + } + + public override bool DatabaseIsValid () + { + throw new NotImplementedException(); + } + + public override string GetItemSource (Sbm.ItemType itemType, SysId id, bool brief = false) + { + throw new NotImplementedException(); + } + + public override bool PopulateLocationIds () + { + throw new NotImplementedException(); + } + + public override bool SourceItemHasMovements (Sbm.ItemType itemType, SysId itemId) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile-Constituents.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile-Constituents.cs new file mode 100644 index 0000000..ff50eb9 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile-Constituents.cs @@ -0,0 +1,389 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmTransactionMgr_Mobile + { + //******************************************************************* + // C o n s t i t u e n t s + //******************************************************************* + // Create Constituent. + public override SbmConstituent CreateConstituent (SysId assocId, Sbm.ConstituentType constituentType) + { + ClearErrorState(); + return new SbmConstituent_Mobile(UserContext, null, null, assocId, constituentType, 0); + } + + //------------------------------------------------------------------- + // Get Constituent. + public override SbmConstituent GetConstituent (SbmConstituent.Params prmConstituent) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Constituent. + public override bool IsValidConstituentData (SbmConstituent.Data data, SbmConstituent.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidConstituentData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Constituent. + public override bool InsertConstituent (SbmConstituent constituent, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidConstituent(constituent)) return false; + if (SysId.IsValid(constituent.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Constituent. + public override bool UpdateConstituent (SbmConstituent constituent, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidConstituent(constituent)) return false; + if (!SysId.IsValid(constituent.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Constituent. + public override bool ConstituentCanBeDeleted (SbmConstituent constituent) + { + ClearErrorState(); + if (!base.ConstituentCanBeDeleted(constituent)) return false; + return true; + } + public override bool DeleteConstituent (SbmConstituent constituent, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!ConstituentCanBeDeleted(constituent)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement constituentElement, SbmConstituent constituent, DbUpdateInfo dbUpdateInfo) + { + constituentElement.AppendElement(nameof(constituent.Id), SysId.ToString(constituent.Id)); + constituentElement.AppendElement(nameof(constituent.AffiliateIdOwner), SysId.ToString(constituent.AffiliateIdOwner)); + constituentElement.AppendElement(nameof(constituent.AffiliateIdTarget), SysId.ToString(constituent.AffiliateIdTarget)); + constituentElement.AppendElement(nameof(constituent.AssociationId), SysId.ToString(constituent.AssociationId)); + constituentElement.AppendElement(nameof(constituent.TransactionId), SysId.ToString(constituent.TransactionId)); + constituentElement.AppendElement(nameof(constituent.RequirementId), SysId.ToString(constituent.RequirementId)); + constituentElement.AppendElement(nameof(constituent.ConstituentId), SysId.ToString(constituent.ConstituentId)); + constituentElement.AppendElement(nameof(constituent.AssetId), SysId.ToString(constituent.AssetId)); + constituentElement.AppendElement(nameof(constituent.ProcessId), SysId.ToString(constituent.ProcessId)); + constituentElement.AppendElement(nameof(constituent.AssociationIdContractor), SysId.ToString(constituent.AssociationIdContractor)); + constituentElement.AppendElement(nameof(constituent.ConstituentType), constituent.ConstituentType.ToString()); + //constituentElement.AppendElement(nameof(constituent.Ref), constituent.Ref); + constituentElement.AppendElement(nameof(constituent.Seq), constituent.Seq.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.Effective), DateUtil.FormatXmlDateTime(constituent.Effective)); + constituentElement.AppendElement(nameof(constituent.Required), DateUtil.FormatXmlDateTime(constituent.Required)); + constituentElement.AppendElement(nameof(constituent.Started), DateUtil.FormatXmlDateTime(constituent.Started)); + constituentElement.AppendElement(nameof(constituent.Completed), DateUtil.FormatXmlDateTime(constituent.Completed)); + constituentElement.AppendElement(nameof(constituent.DescBrief), constituent.DescBrief); + constituentElement.AppendElement(nameof(constituent.DescOutline), constituent.DescOutline); + constituentElement.AppendElement(nameof(constituent.DescDetail), constituent.DescDetail); + constituentElement.AppendElement(nameof(constituent.TaskNumber), constituent.TaskNumber); + constituentElement.AppendElement(nameof(constituent.Priority), constituent.Priority.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.Category), constituent.Category); + constituentElement.AppendElement(nameof(constituent.Reference), constituent.Reference); + constituentElement.AppendElement(nameof(constituent.Quantity), constituent.Quantity.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.UomId), SysId.ToString(constituent.UomId)); + constituentElement.AppendElement(nameof(constituent.UnitCost), constituent.UnitCost.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.AmountEst), constituent.AmountEst.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.AmountNet), constituent.AmountNet.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.TaxCodeId), SysId.ToString(constituent.TaxCodeId)); + constituentElement.AppendElement(nameof(constituent.TaxRate), constituent.TaxRate.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.AmountTax), constituent.AmountTax.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.AmountTot), constituent.AmountTot.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.TaxRateRebate), constituent.TaxRateRebate.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.AmountTaxRebate), constituent.AmountTaxRebate.ToString("N3")); + constituentElement.AppendElement(nameof(constituent.Notes), constituent.Notes); + constituentElement.AppendElement(nameof(constituent.Status), SacsSystem.GetStatusCode(constituent.Status)); + constituentElement.AppendElement(nameof(constituent.Flags), constituent.Flags.ToString()); + if (!SysId.IsValid(constituent.Id)) + { + constituentElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + constituentElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + constituentElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + constituentElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + constituentElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + constituentElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement constituentElement, SbmConstituent constituent) + { + constituent.Id = new SysId(StringUtil.ToInt(constituentElement.GetChildText("Id"))); + constituent.AffiliateIdOwner = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.AffiliateIdOwner)))); + constituent.AffiliateIdTarget = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.AffiliateIdTarget)))); + constituent.AssociationId = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.AssociationId)))); + constituent.TransactionId = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.TransactionId)))); + constituent.RequirementId = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.RequirementId)))); + constituent.ConstituentId = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.ConstituentId)))); + constituent.AssetId = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.AssetId)))); + constituent.ProcessId = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.ProcessId)))); + constituent.AssociationIdContractor = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.AssociationIdContractor)))); + constituent.ConstituentType = EnumUtil.ParseEnum(constituentElement.GetChildText(nameof(constituent.ConstituentType)), Sbm.ConstituentType.Unknown); + //constituent.Ref = constituentElement.GetChildText(nameof(constituent.Ref)); + constituent.Seq = StringUtil.ToShort(constituentElement.GetChildText(nameof(constituent.Seq))); + constituent.Effective = DateUtil.ParseXmlDateTime(constituentElement.GetChildText(nameof(constituent.Effective))); + constituent.Required = DateUtil.ParseXmlDateTime(constituentElement.GetChildText(nameof(constituent.Required))); + constituent.Started = DateUtil.ParseXmlDateTime(constituentElement.GetChildText(nameof(constituent.Started))); + constituent.Completed = DateUtil.ParseXmlDateTime(constituentElement.GetChildText(nameof(constituent.Completed))); + constituent.DescBrief = constituentElement.GetChildText(nameof(constituent.DescBrief)); + constituent.DescOutline = constituentElement.GetChildText(nameof(constituent.DescOutline)); + constituent.DescDetail = constituentElement.GetChildText(nameof(constituent.DescDetail)); + constituent.TaskNumber = constituentElement.GetChildText(nameof(constituent.TaskNumber)); + constituent.Priority = StringUtil.ToShort(constituentElement.GetChildText(nameof(constituent.Priority))); + constituent.Category = constituentElement.GetChildText(nameof(constituent.Category)); + constituent.Reference = constituentElement.GetChildText(nameof(constituent.Reference)); + constituent.Quantity = StringUtil.ToDecimal(constituentElement.GetChildText(nameof(constituent.Quantity))); + constituent.UomId = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.UomId)))); + constituent.UnitCost = StringUtil.ToDecimal(constituentElement.GetChildText(nameof(constituent.UnitCost))); + constituent.AmountEst = StringUtil.ToDecimal(constituentElement.GetChildText(nameof(constituent.AmountEst))); + constituent.AmountNet = StringUtil.ToDecimal(constituentElement.GetChildText(nameof(constituent.AmountNet))); + constituent.TaxCodeId = new SysId(StringUtil.ToInt(constituentElement.GetChildText(nameof(constituent.TaxCodeId)))); + constituent.TaxRate = StringUtil.ToDecimal(constituentElement.GetChildText(nameof(constituent.TaxRate))); + constituent.AmountTax = StringUtil.ToDecimal(constituentElement.GetChildText(nameof(constituent.AmountTax))); + constituent.AmountTot = StringUtil.ToDecimal(constituentElement.GetChildText(nameof(constituent.AmountTot))); + constituent.TaxRateRebate = StringUtil.ToDecimal(constituentElement.GetChildText(nameof(constituent.TaxRateRebate))); + constituent.AmountTaxRebate = StringUtil.ToDecimal(constituentElement.GetChildText(nameof(constituent.AmountTaxRebate))); + constituent.Notes = constituentElement.GetChildText(nameof(constituent.Notes)); + constituent.Status = SacsSystem.GetStatusForCode(constituentElement.GetChildText(nameof(constituent.Status))); + constituent.SetCreateStamp(DateUtil.ParseXmlDateTime(constituentElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(constituentElement.GetChildText("CreateBy"))), constituentElement.GetChildText("CreateHost")); + constituent.SetUpdateStamp(DateUtil.ParseXmlDateTime(constituentElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(constituentElement.GetChildText("UpdateBy"))), constituentElement.GetChildText("UpdateHost")); + constituent.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Constituent column definitions. + public override ColumnDfn GetConstituentColumnDfn (SbmConstituent.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Constituent query filter. + public override List GetConstituentQueryFilter (SbmConstituent.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetConstituentQueryFilter_Mobile (SbmConstituent.Params prm) + { + Dictionary filter = new Dictionary(); + + // Constituent Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Address type. + if ((int)prm.ConstituentType > 0) filter.Add(nameof(prm.ConstituentType), ((int)prm.ConstituentType).ToString()); + + // Aff Id target. + if (SysId.IsValid(prm.AffIdTarget)) filter.Add(nameof(prm.AffIdTarget), SysId.ToString(prm.AffIdTarget)); + + // Assoc Id. + if (SysId.IsValid(prm.AssocId)) filter.Add(nameof(prm.AssocId), SysId.ToString(prm.AssocId)); + + // Trans Id. + if (SysId.IsValid(prm.TransId)) filter.Add(nameof(prm.TransId), SysId.ToString(prm.TransId)); + + // Reqnt Id. + if (SysId.IsValid(prm.ReqntId)) filter.Add(nameof(prm.ReqntId), SysId.ToString(prm.ReqntId)); + + // Const Id. + if (SysId.IsValid(prm.ConstId)) filter.Add(nameof(prm.ConstId), SysId.ToString(prm.ConstId)); + + // Asset Id. + if (SysId.IsValid(prm.AssetId)) filter.Add(nameof(prm.AssetId), SysId.ToString(prm.AssetId)); + + // Asset serial. + if (!StringUtil.IsEmpty(prm.AssetSerialFull)) filter.Add(nameof(prm.AssetSerialFull), prm.AssetSerialFull); + if (!StringUtil.IsEmpty(prm.AssetSerialPartial)) filter.Add(nameof(prm.AssetSerialPartial), prm.AssetSerialPartial); + + // Ref. + if (!StringUtil.IsEmpty(prm.Ref)) filter.Add(nameof(prm.Ref), prm.Ref); + + // Desc Brief. + if (!StringUtil.IsEmpty(prm.DescBrief)) filter.Add(nameof(prm.DescBrief), prm.DescBrief); + if (!StringUtil.IsEmpty(prm.DescBriefPartial)) filter.Add(nameof(prm.DescBriefPartial), prm.DescBriefPartial); + + // Effective. + if (DateUtil.IsValid(prm.EffectiveFrom)) filter.Add(nameof(prm.EffectiveFrom), DateUtil.FormatXmlDate(prm.EffectiveFrom)); + if (DateUtil.IsValid(prm.EffectiveTo)) filter.Add(nameof(prm.EffectiveTo), DateUtil.FormatXmlDate(prm.EffectiveTo)); + + // Updated since. + if (DateUtil.IsValid(prm.UpdatedSince)) filter.Add(nameof(prm.UpdatedSince), DateUtil.FormatXmlDate(prm.UpdatedSince)); + + // Use job number. + if (prm.UseJobNumber != false) filter.Add(nameof(prm.UseJobNumber), prm.UseJobNumber.ToString()); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Constituent sort columns. + public List GetConstituentSortColumns (SbmConstituent.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Constituent count. + public override long GetConstituentCount (SbmConstituent.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Constituent list. + public override List GetConstituentList (SbmConstituent.Params prm) + { + List constituents = new List(); + throw new NotImplementedException(); + } + public async Task> GetConstituentList_Mobile (SbmConstituent.Params prmConstituent, SacsTaskData taskData) + { + ClearErrorState(); + List constituents = new List(); + String fn = GetType().Name + ".GetConstituentList_Mobile"; + + // Constituent columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteConstituentQuery_Mobile(columns, prmConstituent, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmConstituent.Column.Id); + SysId affIdOwner = itemData.GetIdValue(SbmConstituent.Column.AffIdOwner); + SysId assocId = itemData.GetIdValue(SbmConstituent.Column.AssocId); + Sbm.ConstituentType constituentType = EnumUtil.ParseEnum(itemData.GetValue(SbmConstituent.Column.Type), Sbm.ConstituentType.Unknown); + ushort flags = (ushort)itemData.GetIntValue(SbmConstituent.Column.Flag); + // Create item. + SbmConstituent_Mobile constituent = new SbmConstituent_Mobile(UserContext, id, affIdOwner, assocId, constituentType, flags); + // Populate item properties. + foreach (SbmConstituent.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + case SbmConstituent.Column.AffIdOwner: constituent.AffiliateIdOwner = itemData.GetIdValue(column); break; + case SbmConstituent.Column.AffIdTarget: constituent.AffiliateIdTarget = itemData.GetIdValue(column); break; + case SbmConstituent.Column.AssocId: constituent.AssociationId = itemData.GetIdValue(column); break; + case SbmConstituent.Column.TransId: constituent.TransactionId = itemData.GetIdValue(column); break; + case SbmConstituent.Column.ReqntId: constituent.RequirementId = itemData.GetIdValue(column); break; + case SbmConstituent.Column.ConstId: constituent.ConstituentId= itemData.GetIdValue(column); break; + case SbmConstituent.Column.AssetId: constituent.AssetId = itemData.GetIdValue(column); break; + case SbmConstituent.Column.ProcessId: constituent.ProcessId = itemData.GetIdValue(column); break; + //case SbmConstituent.Column.AssocIdContractor: constituent.AssociationIdContractor = itemData.GetIdValue(column); break; + case SbmConstituent.Column.Type: constituent.ConstituentType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.ConstituentType.Any); break; + //case SbmConstituent.Column.Ref: constituent.Ref = value; break; + //case SbmConstituent.Column.Seq: constituent.Seq = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmConstituent.Column.Effective_Date: constituent.Effective = itemData.GetDateTimeValue(column); break; + case SbmConstituent.Column.Required_Date: constituent.Required = itemData.GetDateTimeValue(column); break; + case SbmConstituent.Column.Started_Date: constituent.Started = itemData.GetDateTimeValue(column); break; + case SbmConstituent.Column.Completed_Date: constituent.Completed = itemData.GetDateTimeValue(column); break; + case SbmConstituent.Column.DescBrief: constituent.DescBrief = value; break; + case SbmConstituent.Column.DescOutline: constituent.DescOutline = value; break; + case SbmConstituent.Column.DescDetail: constituent.DescDetail = value; break; + case SbmConstituent.Column.TaskNumber: constituent.TaskNumber = value; break; + case SbmConstituent.Column.Priority: constituent.Priority = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + case SbmConstituent.Column.Category: constituent.Category = value; break; + case SbmConstituent.Column.Reference: constituent.Reference = value; break; + case SbmConstituent.Column.Quantity: constituent.Quantity = itemData.GetDecimalValue(column); break; + //case SbmConstituent.Column.UomId: constituent.UomId= itemData.GetIdValue(column); break; + case SbmConstituent.Column.UnitCost: constituent.UnitCost = itemData.GetDecimalValue(column); break; + case SbmConstituent.Column.AmountEst: constituent.AmountEst = itemData.GetDecimalValue(column); break; + case SbmConstituent.Column.AmountNet: constituent.AmountNet = itemData.GetDecimalValue(column); break; + //case SbmConstituent.Column.TaxCodeId: constituent.TaxCodeId = itemData.GetIdValue(column); break; + case SbmConstituent.Column.TaxRate: constituent.TaxRate = itemData.GetDecimalValue(column); break; + case SbmConstituent.Column.AmountTax: constituent.AmountTax = itemData.GetDecimalValue(column); break; + case SbmConstituent.Column.AmountTot: constituent.AmountTot = itemData.GetDecimalValue(column); break; + //case SbmConstituent.Column.TaxRateRebate: constituent.TaxRateRebate = itemData.GetDecimalValue(column); break; + //case SbmConstituent.Column.AmountTaxRebate: constituent.AmountTaxRebate = itemData.GetDecimalValue(column); break; + case SbmConstituent.Column.Notes: constituent.Notes = value; break; + case SbmConstituent.Column.Status: constituent.Status = SacsSystem.GetStatusForCode(value); break; + } + } + constituents.Add(constituent); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Constituents: " + constituents.Count); + return constituents; + } + + + //------------------------------------------------------------------- + // Constituent query execution. + public override DbResultSet ExecuteConstituentQuery (List columns, SbmConstituent.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteConstituentQuery_Mobile (List constituentColumns, SbmConstituent.Params prmConstituent, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmConstituent.Column column in constituentColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetConstituentRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetConstituentQueryFilter_Mobile(prmConstituent), columns, this.GetSortColumns_Mobile(prmConstituent), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetConstituentRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Constituent; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile-Requirements.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile-Requirements.cs new file mode 100644 index 0000000..bbd9b28 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile-Requirements.cs @@ -0,0 +1,509 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmTransactionMgr_Mobile + { + //******************************************************************* + // R e q u i r e m e n t s + //******************************************************************* + // Create Requirement. + public override SbmRequirement CreateRequirement (SysId assocId, SysId transId, Sbm.RequirementType requirementType) + { + ClearErrorState(); + return new SbmRequirement_Mobile(UserContext, null, null, assocId, transId, requirementType, 0); + } + + //------------------------------------------------------------------- + // Get Requirement. + public override SbmRequirement GetRequirement (SbmRequirement.Params prmRequirement) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Requirement. + public override bool IsValidRequirementData (SbmRequirement.Data data, SbmRequirement.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidRequirementData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Requirement. + public override bool InsertRequirement (SbmRequirement requirement, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidRequirement(requirement)) return false; + if (SysId.IsValid(requirement.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Requirement. + public override bool UpdateRequirement (SbmRequirement requirement, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidRequirement(requirement)) return false; + if (!SysId.IsValid(requirement.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Requirement. + public override bool RequirementCanBeDeleted (SbmRequirement.Data requirement, Sbm.TransactionType transactionType) + { + ClearErrorState(); + if (!base.RequirementCanBeDeleted(requirement, transactionType)) return false; + return true; + } + public override bool DeleteRequirement (SbmRequirement requirement, Sbm.TransactionType transactionType, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!RequirementCanBeDeleted(requirement, transactionType)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement requirementElement, SbmRequirement requirement, DbUpdateInfo dbUpdateInfo) + { + requirementElement.AppendElement(nameof(requirement.Id), SysId.ToString(requirement.Id)); + requirementElement.AppendElement(nameof(requirement.AffiliateIdOwner), SysId.ToString(requirement.AffiliateIdOwner)); + requirementElement.AppendElement(nameof(requirement.AssociationId), SysId.ToString(requirement.AssociationId)); + requirementElement.AppendElement(nameof(requirement.TransactionId), SysId.ToString(requirement.TransactionId)); + requirementElement.AppendElement(nameof(requirement.RequirementType), requirement.RequirementType.ToString()); + requirementElement.AppendElement(nameof(requirement.Seq), requirement.Seq.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.RequirementIdSource), SysId.ToString(requirement.RequirementIdSource)); + requirementElement.AppendElement(nameof(requirement.Required), DateUtil.FormatXmlDateTime(requirement.Required)); + requirementElement.AppendElement(nameof(requirement.Started), DateUtil.FormatXmlDateTime(requirement.Started)); + requirementElement.AppendElement(nameof(requirement.Completed), DateUtil.FormatXmlDateTime(requirement.Completed)); + requirementElement.AppendElement(nameof(requirement.JobNumber), requirement.JobNumber); + requirementElement.AppendElement(nameof(requirement.AssociationIdSubContract), SysId.ToString(requirement.AssociationIdSubContract)); + requirementElement.AppendElement(nameof(requirement.CommodityId), SysId.ToString(requirement.CommodityId)); + requirementElement.AppendElement(nameof(requirement.ProductCode), requirement.ProductCode); + requirementElement.AppendElement(nameof(requirement.AssetId), SysId.ToString(requirement.AssetId)); + requirementElement.AppendElement(nameof(requirement.DescBrief), requirement.DescBrief); + requirementElement.AppendElement(nameof(requirement.DescIntro), requirement.DescIntro); + requirementElement.AppendElement(nameof(requirement.DescOutline), requirement.DescOutline); + requirementElement.AppendElement(nameof(requirement.DescDetail), requirement.DescDetail); + requirementElement.AppendElement(nameof(requirement.PromotionCode), requirement.PromotionCode); + requirementElement.AppendElement(nameof(requirement.NominalCode), requirement.NominalCode); + requirementElement.AppendElement(nameof(requirement.Quantity), requirement.Quantity.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.QuantityProd), requirement.QuantityProd.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.UomId), SysId.ToString(requirement.UomId)); + requirementElement.AppendElement(nameof(requirement.Weight), requirement.Weight.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.UomIdWeight), SysId.ToString(requirement.UomIdWeight)); + requirementElement.AppendElement(nameof(requirement.MaterialSourceCode), requirement.MaterialSourceCode); + requirementElement.AppendElement(nameof(requirement.AmountUnit), requirement.AmountUnit.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.AmountAct), requirement.AmountAct.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.AmountDisc), requirement.AmountDisc.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.AmountNet), requirement.AmountNet.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.TaxCodeId), SysId.ToString(requirement.TaxCodeId)); + requirementElement.AppendElement(nameof(requirement.TaxRate), requirement.TaxRate.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.AmountTax), requirement.AmountTax.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.AmountTot), requirement.AmountTot.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.TimeEst), requirement.TimeEst.ToString("N3")); + //requirementElement.AppendElement(nameof(requirement.TimeEst), requirement.TimeEstChunks; + requirementElement.AppendElement(nameof(requirement.TimeAct), requirement.TimeAct.ToString("N3")); + //requirementElement.AppendElement(nameof(requirement.TimeEst), requirement.TimeActChunks; + requirementElement.AppendElement(nameof(requirement.TimeTot), requirement.TimeTot.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.LocationIdStock), SysId.ToString(requirement.LocationIdStock)); + requirementElement.AppendElement(nameof(requirement.CostLabourHours), requirement.CostLabourHours.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.CostLabourRateHour), requirement.CostLabourRateHour.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.CostLabour), requirement.CostLabour.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.CostCommodity), requirement.CostCommodity.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.CostPurchase), requirement.CostPurchase.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.CostProcess), requirement.CostProcess.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.CostAdditional), requirement.CostAdditional.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.CostTotal), requirement.CostTotal.ToString("N3")); + requirementElement.AppendElement(nameof(requirement.CostCalculated), DateUtil.FormatXmlDateTime(requirement.CostCalculated)); + requirementElement.AppendElement(nameof(requirement.Notes), requirement.Notes); + requirementElement.AppendElement(nameof(requirement.Status), SacsSystem.GetStatusCode(requirement.Status)); + requirementElement.AppendElement(nameof(requirement.Flags), requirement.Flags.ToString()); + if (!SysId.IsValid(requirement.Id)) + { + requirementElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + requirementElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + requirementElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + requirementElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + requirementElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + requirementElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement requirementElement, SbmRequirement requirement) + { + requirement.Id = new SysId(StringUtil.ToInt(requirementElement.GetChildText("Id"))); + requirement.AffiliateIdOwner = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.AffiliateIdOwner)))); + requirement.AssociationId = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.AssociationId)))); + requirement.TransactionId = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.TransactionId)))); + requirement.RequirementType = EnumUtil.ParseEnum(requirementElement.GetChildText(nameof(requirement.RequirementType)), Sbm.RequirementType.Any); + requirement.Seq = StringUtil.ToShort(requirementElement.GetChildText(nameof(requirement.Seq))); + requirement.RequirementIdSource = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.RequirementIdSource)))); + requirement.Required = DateUtil.ParseXmlDateTime(requirementElement.GetChildText(nameof(requirement.Required))); + requirement.Started = DateUtil.ParseXmlDateTime(requirementElement.GetChildText(nameof(requirement.Started))); + requirement.Completed = DateUtil.ParseXmlDateTime(requirementElement.GetChildText(nameof(requirement.Completed))); + requirement.JobNumber = requirementElement.GetChildText(nameof(requirement.JobNumber)); + requirement.AssociationIdSubContract = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.AssociationIdSubContract)))); + requirement.CommodityId = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.CommodityId)))); + requirement.ProductCode = requirementElement.GetChildText(nameof(requirement.ProductCode)); + requirement.AssetId = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.AssetId)))); + requirement.DescBrief = requirementElement.GetChildText(nameof(requirement.DescBrief)); + requirement.DescIntro = requirementElement.GetChildText(nameof(requirement.DescIntro)); + requirement.DescOutline = requirementElement.GetChildText(nameof(requirement.DescOutline)); + requirement.DescDetail = requirementElement.GetChildText(nameof(requirement.DescDetail)); + requirement.PromotionCode = requirementElement.GetChildText(nameof(requirement.PromotionCode)); + requirement.NominalCode= requirementElement.GetChildText(nameof(requirement.NominalCode)); + requirement.Quantity = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.Quantity))); + requirement.QuantityProd = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.QuantityProd))); + requirement.UomId = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.UomId)))); + requirement.Weight = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.Weight))); + requirement.UomIdWeight = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.UomIdWeight)))); + requirement.MaterialSourceCode = requirementElement.GetChildText(nameof(requirement.MaterialSourceCode)); + requirement.AmountUnit = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.AmountUnit))); + requirement.AmountAct = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.AmountAct))); + requirement.AmountDisc = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.AmountDisc))); + requirement.AmountNet = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.AmountNet))); + requirement.TaxCodeId = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.TaxCodeId)))); + requirement.TaxRate = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.TaxRate))); + requirement.AmountTax = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.AmountTax))); + requirement.AmountTot= StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.AmountTot))); + requirement.TimeEst = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.TimeEst))); + //requirement.TimeEstChunks = requirementElement.GetChildText(nameof(requirement.TimeEstChunks)); + requirement.TimeAct = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.TimeAct))); + //requirement.TimeActChunks = requirementElement.GetChildText(nameof(requirement.TimeActChunks)); + requirement.TimeTot = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.TimeTot))); + requirement.LocationIdStock = new SysId(StringUtil.ToInt(requirementElement.GetChildText(nameof(requirement.LocationIdStock)))); + requirement.CostLabourHours = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.CostLabourHours))); + requirement.CostLabourRateHour = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.CostLabourRateHour))); + requirement.CostLabour = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.CostLabour))); + requirement.CostCommodity = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.CostCommodity))); + requirement.CostPurchase = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.CostPurchase))); + requirement.CostProcess = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.CostProcess))); + requirement.CostAdditional= StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.CostAdditional))); + requirement.CostTotal = StringUtil.ToDecimal(requirementElement.GetChildText(nameof(requirement.CostTotal))); + requirement.CostCalculated = DateUtil.ParseXmlDateTime(requirementElement.GetChildText(nameof(requirement.CostCalculated))); + requirement.Notes = requirementElement.GetChildText(nameof(requirement.Notes)); + requirement.Status = SacsSystem.GetStatusForCode(requirementElement.GetChildText(nameof(requirement.Status))); + requirement.SetCreateStamp(DateUtil.ParseXmlDateTime(requirementElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(requirementElement.GetChildText("CreateBy"))), requirementElement.GetChildText("CreateHost")); + requirement.SetUpdateStamp(DateUtil.ParseXmlDateTime(requirementElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(requirementElement.GetChildText("UpdateBy"))), requirementElement.GetChildText("UpdateHost")); + requirement.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Requirement column definitions. + public override ColumnDfn GetRequirementColumnDfn (SbmRequirement.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Requirement query filter. + public override List GetRequirementQueryFilter (SbmRequirement.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetRequirementQueryFilter_Mobile (SbmRequirement.Params prm) + { + Dictionary filter = new Dictionary(); + + // Requirement Id. + //if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + //if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Association Id. + if (SysId.IsValid(prm.AssociationId)) filter.Add(nameof(prm.AssociationId), SysId.ToString(prm.AssociationId)); + + // Commodity Id. + if (SysId.IsValid(prm.CommodityId)) filter.Add(nameof(prm.CommodityId), SysId.ToString(prm.CommodityId)); + + // Asset Id. + if (SysId.IsValid(prm.AssetId)) filter.Add(nameof(prm.AssetId), SysId.ToString(prm.AssetId)); + + // Requirement Id. + if (prm.ReqntIncludedIds.Count > 0) filter.Add(nameof(prm.ReqntIncludedIds), prm.ReqntIncludedIds.Concat(",")); + if (prm.ReqntExcludedIds.Count > 0) filter.Add(nameof(prm.ReqntExcludedIds), prm.ReqntExcludedIds.Concat(",")); + if (prm.ReqntIdsSource.Count > 0) filter.Add(nameof(prm.ReqntIdsSource), prm.ReqntIdsSource.Concat(",")); + + // Reqnt product code. + if (!StringUtil.IsEmpty(prm.ReqntProductCodeFull)) filter.Add(nameof(prm.ReqntProductCodeFull), prm.ReqntProductCodeFull); + if (!StringUtil.IsEmpty(prm.ReqntProductCodePartial)) filter.Add(nameof(prm.ReqntProductCodePartial), prm.ReqntProductCodePartial); + + // Reqnt project task code. + if (!StringUtil.IsEmpty(prm.ReqntProjectTaskCodeFull)) filter.Add(nameof(prm.ReqntProjectTaskCodeFull), prm.ReqntProjectTaskCodeFull); + if (!StringUtil.IsEmpty(prm.ReqntProjectTaskCodePartial)) filter.Add(nameof(prm.ReqntProjectTaskCodePartial), prm.ReqntProjectTaskCodePartial); + + // Reqnt job number. + if (!StringUtil.IsEmpty(prm.ReqntJobNumberFull)) filter.Add(nameof(prm.ReqntJobNumberFull), prm.ReqntJobNumberFull); + if (!StringUtil.IsEmpty(prm.ReqntJobNumberPartial)) filter.Add(nameof(prm.ReqntJobNumberPartial), prm.ReqntJobNumberPartial); + + // Reqnt asset serial. + if (!StringUtil.IsEmpty(prm.ReqntAssetSerialFull)) filter.Add(nameof(prm.ReqntAssetSerialFull), prm.ReqntAssetSerialFull); + if (!StringUtil.IsEmpty(prm.ReqntAssetSerialPartial)) filter.Add(nameof(prm.ReqntAssetSerialPartial), prm.ReqntAssetSerialPartial); + + // Reqnt desc brief. + if (!StringUtil.IsEmpty(prm.ReqntDescBrief)) filter.Add(nameof(prm.ReqntDescBrief), prm.ReqntDescBrief); + + // Reqnt promotion code. + if (!StringUtil.IsEmpty(prm.ReqntPromotionCode)) filter.Add(nameof(prm.ReqntPromotionCode), prm.ReqntPromotionCode); + + // Alias transaction. + if (!StringUtil.IsEmpty(prm.AliasTransaction)) filter.Add(nameof(prm.AliasTransaction), prm.AliasTransaction); + + // Trans Id. + if (prm.TransIncludedIds.Count > 0) filter.Add(nameof(prm.TransIncludedIds), prm.TransIncludedIds.Concat(",")); + if (prm.TransExcludedIds.Count > 0) filter.Add(nameof(prm.TransExcludedIds), prm.TransExcludedIds.Concat(",")); + + // Agent Id. + if (SysId.IsValid(prm.TransReqntSourceId)) filter.Add(nameof(prm.TransReqntSourceId), SysId.ToString(prm.TransReqntSourceId)); + + // Transaction type. + if ((int)prm.TransactionType > 0) filter.Add(nameof(prm.TransactionType), ((int)prm.TransactionType).ToString()); + + // Trans location Id stock. + if (SysId.IsValid(prm.TransLocationIdStock)) filter.Add(nameof(prm.TransLocationIdStock), SysId.ToString(prm.TransLocationIdStock)); + + // Transaction status cat. + if ((int)prm.TransactionStatusCat > 0) filter.Add(nameof(prm.TransactionStatusCat), ((int)prm.TransactionStatusCat).ToString()); + + // Trans ref. + if (!StringUtil.IsEmpty(prm.TransRefPartial)) filter.Add(nameof(prm.TransRefPartial), prm.TransRefPartial); + if (!StringUtil.IsEmpty(prm.TransRefExtPartial)) filter.Add(nameof(prm.TransRefExtPartial), prm.TransRefExtPartial); + + // Trans desc brief. + if (!StringUtil.IsEmpty(prm.TransDescBriefPartial)) filter.Add(nameof(prm.TransDescBriefPartial), prm.TransDescBriefPartial); + + // Assoc partial. + if (!StringUtil.IsEmpty(prm.AssocPartial)) filter.Add(nameof(prm.AssocPartial), prm.AssocPartial); + + // Account manager code. + if (!StringUtil.IsEmpty(prm.AccountManagerCode)) filter.Add(nameof(prm.AccountManagerCode), prm.AccountManagerCode); + + // Account handler code. + if (!StringUtil.IsEmpty(prm.AccountHandlerCode)) filter.Add(nameof(prm.AccountHandlerCode), prm.AccountHandlerCode); + + // Trans raised. + if (DateUtil.IsValid(prm.TransRaisedFrom)) filter.Add(nameof(prm.TransRaisedFrom), DateUtil.FormatXmlDate(prm.TransRaisedFrom)); + if (DateUtil.IsValid(prm.TransRaisedTo)) filter.Add(nameof(prm.TransRaisedTo), DateUtil.FormatXmlDate(prm.TransRaisedTo)); + + // Trans required. + if (DateUtil.IsValid(prm.TransRequiredFrom)) filter.Add(nameof(prm.TransRequiredFrom), DateUtil.FormatXmlDate(prm.TransRequiredFrom)); + if (DateUtil.IsValid(prm.TransRequiredTo)) filter.Add(nameof(prm.TransRequiredTo), DateUtil.FormatXmlDate(prm.TransRequiredTo)); + + // Trans amount. + if (prm.TransAmountNetLt > 0) filter.Add(nameof(prm.TransAmountNetLt), prm.TransAmountNetLt.ToString("N3")); + if (prm.TransAmountNetGt > 0) filter.Add(nameof(prm.TransAmountNetGt), prm.TransAmountNetGt.ToString("N3")); + + // Trans active on. + if (DateUtil.IsValid(prm.TransActiveOn)) filter.Add(nameof(prm.TransActiveOn), DateUtil.FormatXmlDate(prm.TransActiveOn)); + + // Trans active. + if (DateUtil.IsValid(prm.TransActiveFrom)) filter.Add(nameof(prm.TransActiveFrom), DateUtil.FormatXmlDate(prm.TransActiveFrom)); + if (DateUtil.IsValid(prm.TransActiveTo)) filter.Add(nameof(prm.TransActiveTo), DateUtil.FormatXmlDate(prm.TransActiveTo)); + + // Active any day during period. + if (DateUtil.IsValid(prm.ActiveAnyDayDuringPeriod)) filter.Add(nameof(prm.ActiveAnyDayDuringPeriod), DateUtil.FormatXmlDate(prm.ActiveAnyDayDuringPeriod)); + + // Commodity against associated item Id. + if (SysId.IsValid(prm.CmdIdAssocItem)) filter.Add(nameof(prm.CmdIdAssocItem), SysId.ToString(prm.CmdIdAssocItem)); + + // Assoc item product code. + if (!StringUtil.IsEmpty(prm.AssocItemProductCodeFull)) filter.Add(nameof(prm.AssocItemProductCodeFull), prm.AssocItemProductCodeFull); + + // Sales location Id stock. + if (SysId.IsValid(prm.SalesLocationIdStock01)) filter.Add(nameof(prm.SalesLocationIdStock01), SysId.ToString(prm.SalesLocationIdStock01)); + if (SysId.IsValid(prm.SalesLocationIdStock02)) filter.Add(nameof(prm.SalesLocationIdStock02), SysId.ToString(prm.SalesLocationIdStock02)); + if (SysId.IsValid(prm.SalesLocationIdStock03)) filter.Add(nameof(prm.SalesLocationIdStock03), SysId.ToString(prm.SalesLocationIdStock03)); + + // Required date. + if (DateUtil.IsValid(prm.ReqntRequiredFrom)) filter.Add(nameof(prm.ReqntRequiredFrom), DateUtil.FormatXmlDate(prm.ReqntRequiredFrom)); + if (DateUtil.IsValid(prm.ReqntRequiredTo)) filter.Add(nameof(prm.ReqntRequiredTo), DateUtil.FormatXmlDate(prm.ReqntRequiredTo)); + + // Material code. + if (!StringUtil.IsEmpty(prm.CmdMaterialCode)) filter.Add(nameof(prm.CmdMaterialCode), prm.CmdMaterialCode); + + // Finish code. + if (!StringUtil.IsEmpty(prm.CmdFinishCode)) filter.Add(nameof(prm.CmdFinishCode), prm.CmdFinishCode); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Requirement sort columns. + public List GetRequirementSortColumns (SbmRequirement.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Requirement count. + public override long GetRequirementCount (SbmRequirement.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Requirement list. + public override List GetRequirementList (SbmRequirement.Params prm) + { + List requirements = new List(); + throw new NotImplementedException(); + } + public async Task> GetRequirementList_Mobile (SbmRequirement.Params prmRequirement, SacsTaskData taskData) + { + ClearErrorState(); + List requirements = new List(); + String fn = GetType().Name + ".GetRequirementList_Mobile"; + + // Requirement columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteRequirementQuery_Mobile(columns, prmRequirement, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmRequirement.Column.Id); + //SysId affIdOwner = itemData.GetIdValue(SbmRequirement.Column.AffIdOwner); + SysId affIdOwner = new SysId(); + //SysId assocId = itemData.GetIdValue(SbmRequirement.Column.assocId); + SysId assocId = new SysId(); + SysId transId = itemData.GetIdValue(SbmRequirement.Column.TransId); + //Sbm.RequirementType requirementType = EnumUtil.ParseEnum(itemData.GetValue(SbmRequirement.Column.RequirementType), Sbm.RequirementType.Any); + ushort flags = (ushort)itemData.GetIntValue(SbmRequirement.Column.Flag); + // Create item. + SbmRequirement_Mobile requirement = new SbmRequirement_Mobile(UserContext, id, affIdOwner, assocId, transId, Sbm.RequirementType.Any, flags); + // Populate item properties. + foreach (SbmRequirement.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmRequirement.Column.AffIdOwner: requirement.AffIdOwner = itemData.GetIdValue(column); break; + //case SbmRequirement.Column.AssocId: requirement.AssocId = itemData.GetIdValue(column); break; + case SbmRequirement.Column.TransId: requirement.TransactionId = itemData.GetIdValue(column); break; + //case SbmRequirement.Column.RequirementType: requirement.RequirementType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.RequirementType.Any); break; + case SbmRequirement.Column.Seq: requirement.Seq = StringUtil.ToShort(itemData.GetDecimalValue(column)); break; + //case SbmRequirement.Column.ReqntIdSource: requirement.ReqntIdSource= itemData.GetIdValue(column); break; + case SbmRequirement.Column.Required: requirement.Required = itemData.GetDateTimeValue(column); break; + case SbmRequirement.Column.Started: requirement.Started = itemData.GetDateTimeValue(column); break; + case SbmRequirement.Column.Completed: requirement.Completed = itemData.GetDateTimeValue(column); break; + case SbmRequirement.Column.JobNumber: requirement.JobNumber = value; break; + //case SbmRequirement.Column.AssIdSubContract: requirement.AssIdSubContract = itemData.GetIdValue(column); break; + case SbmRequirement.Column.CommodityId: requirement.CommodityId = itemData.GetIdValue(column); break; + case SbmRequirement.Column.ProductCode: requirement.ProductCode= value; break; + //case SbmRequirement.Column.AssetId: requirement.AssetId = itemData.GetIdValue(column); break; + case SbmRequirement.Column.DescBrief: requirement.DescBrief = value; break; + //case SbmRequirement.Column.DescIntro: requirement.DescIntro= value; break; + case SbmRequirement.Column.DescOutline: requirement.DescOutline = value; break; + case SbmRequirement.Column.DescDetail: requirement.DescDetail = value; break; + case SbmRequirement.Column.PromotionCode: requirement.PromotionCode = value; break; + case SbmRequirement.Column.NominalCode: requirement.NominalCode = value; break; + case SbmRequirement.Column.Quantity: requirement.Quantity = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.QuantityProd: requirement.QuantityProd = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.UomId: requirement.UomId = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.Cmd_Weight: requirement.Weight= itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.UomIdWeight: requirement.UomIdWeight= itemData.GetIdValue(column); break; + case SbmRequirement.Column.Cmd_MaterialCode: requirement.MaterialSourceCode= value; break; + case SbmRequirement.Column.AmountUnit: requirement.AmountUnit = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.AmountAct: requirement.AmountAct = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.AmountDisc: requirement.AmountDisc = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.AmountNet: requirement.AmountNet = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.TaxCodeId: requirement.TaxCodeId = itemData.GetIdValue(column); break; + case SbmRequirement.Column.TaxRate: requirement.TaxRate = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.AmountTax: requirement.AmountTax = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.AmountTot: requirement.AmountTot = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.TimeEst: requirement.TimeEst = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.TimeEstChunks: requirement.TimeEstChunks = value; break; + case SbmRequirement.Column.TimeAct: requirement.TimeAct = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.TimeActChunks: requirement.TimeActChunks = value; break; + case SbmRequirement.Column.TimeTot: requirement.TimeTot = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.LocationIdStock: requirement.LocationIdStock = itemData.GetIdValue(column); break; + //case SbmRequirement.Column.CostLabourHours: requirement.CostLabourHours = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.Trans_CostLabourRateHour: requirement.CostLabourRateHour = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.CostLabour: requirement.CostLabour = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.CostCommodity: requirement.CostCommodity = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.CostPurchase: requirement.CostPurchase = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.CostProcess: requirement.CostProcess = itemData.GetDecimalValue(column); break; + //case SbmRequirement.Column.CostAdditional: requirement.CostAdditional = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.CostTotal: requirement.CostTotal = itemData.GetDecimalValue(column); break; + case SbmRequirement.Column.CostCalculated: requirement.CostCalculated = itemData.GetDateTimeValue(column); break; + case SbmRequirement.Column.Notes: requirement.Notes = value; break; + case SbmRequirement.Column.Status: requirement.Status = SacsSystem.GetStatusForCode(value); break; + } + } + requirements.Add(requirement); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Requirements: " + requirements.Count); + return requirements; + } + + + //------------------------------------------------------------------- + // Requirement query execution. + public override DbResultSet ExecuteRequirementQuery (List columns, SbmRequirement.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteRequirementQuery_Mobile (List requirementColumns, SbmRequirement.Params prmRequirement, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmRequirement.Column column in requirementColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetRequirementRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetRequirementQueryFilter_Mobile(prmRequirement), columns, this.GetSortColumns_Mobile(prmRequirement), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetRequirementRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Requirement; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile-Transactions.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile-Transactions.cs new file mode 100644 index 0000000..b61340e --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile-Transactions.cs @@ -0,0 +1,551 @@ +using Sarand.Core.App; +using Sarand.Core.Base; +using Sarand.Core.Bus; +using Sarand.Core.Data; +using Sarand.Core.Dbas.Base; +using Sarand.Core.Tasks; +using Sarand.Core.Xml; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.WebService; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Sarand.BusinessMgr.Mobile.Core.Bus; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + partial class SbmTransactionMgr_Mobile + { + //******************************************************************* + // T r a n s a c t i o n s + //******************************************************************* + // Create Transaction. + public override SbmTransaction CreateTransaction (SysId id, Sbm.TransactionType transactionType) + { + ClearErrorState(); + return new SbmTransaction_Mobile(UserContext, id, null, null, transactionType, 0); + } + + //------------------------------------------------------------------- + // Get Transaction. + public override SbmTransaction GetTransaction (SbmTransaction.Params prmTransaction) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Validate Transaction. + public override bool IsValidTransactionData (SbmTransaction.Data data, SbmTransaction.ErrField errField) + { + ClearErrorState(); + if (!base.IsValidTransactionData(data, errField)) return false; + return true; + } + + //------------------------------------------------------------------- + // Insert Transaction. + public override bool InsertTransaction (SbmTransaction transaction, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidTransaction(transaction)) return false; + if (SysId.IsValid(transaction.Id)) return SetErrorState(ErrorMessage.ValiditemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Update Transaction. + public override bool UpdateTransaction (SbmTransaction transaction, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!IsValidTransaction(transaction)) return false; + if (!SysId.IsValid(transaction.Id)) return SetErrorState(ErrorMessage.InvalidItemId); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Delete Transaction. + public override bool TransactionCanBeDeleted (SbmTransaction transaction) + { + ClearErrorState(); + if (!base.TransactionCanBeDeleted(transaction)) return false; + return true; + } + public override bool DeleteTransaction (SbmTransaction transaction, DbUpdateInfo dbUpdateInfo) + { + ClearErrorState(); + if (!TransactionCanBeDeleted(transaction)) return false; + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Copy data properties to and from database. + private void PopulateTo (XElement transactionElement, SbmTransaction transaction, DbUpdateInfo dbUpdateInfo) + { + transactionElement.AppendElement(nameof(transaction.Id), SysId.ToString(transaction.Id)); + transactionElement.AppendElement(nameof(transaction.AffiliateIdOwner), SysId.ToString(transaction.AffiliateIdOwner)); + transactionElement.AppendElement(nameof(transaction.AssociationId), SysId.ToString(transaction.AssociationId)); + transactionElement.AppendElement(nameof(transaction.TransactionType), transaction.TransactionType.ToString()); + transactionElement.AppendElement(nameof(transaction.Ref), transaction.Ref); + transactionElement.AppendElement(nameof(transaction.RefInt), transaction.RefInt.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.RefExt), transaction.RefExt); + transactionElement.AppendElement(nameof(transaction.RaisedBy), transaction.RaisedBy); + transactionElement.AppendElement(nameof(transaction.AffiliateIdRaise), SysId.ToString(transaction.AffiliateIdRaise)); + transactionElement.AppendElement(nameof(transaction.AssociationIdOffice), SysId.ToString(transaction.AssociationIdOffice)); + transactionElement.AppendElement(nameof(transaction.ContactName), transaction.ContactName); + transactionElement.AppendElement(nameof(transaction.Likelihood), transaction.Likelihood); + transactionElement.AppendElement(nameof(transaction.TransactionIdSource), SysId.ToString(transaction.TransactionIdSource)); + transactionElement.AppendElement(nameof(transaction.ReferCode), transaction.ReferCode); + transactionElement.AppendElement(nameof(transaction.ReferSource), transaction.ReferSource); + transactionElement.AppendElement(nameof(transaction.AffiliateIdRefer), SysId.ToString(transaction.AffiliateIdRefer)); + transactionElement.AppendElement(nameof(transaction.AssociationIdContract), SysId.ToString(transaction.AssociationIdContract)); + transactionElement.AppendElement(nameof(transaction.AssociationIdDelivery), SysId.ToString(transaction.AssociationIdDelivery)); + transactionElement.AppendElement(nameof(transaction.Raised), DateUtil.FormatXmlDateTime(transaction.Raised)); + transactionElement.AppendElement(nameof(transaction.Required), DateUtil.FormatXmlDateTime(transaction.Required)); + transactionElement.AppendElement(nameof(transaction.InProgress), DateUtil.FormatXmlDateTime(transaction.InProgress)); + transactionElement.AppendElement(nameof(transaction.DeliveredEst), DateUtil.FormatXmlDateTime(transaction.DeliveredEst)); + transactionElement.AppendElement(nameof(transaction.DeliveredAct), DateUtil.FormatXmlDateTime(transaction.DeliveredAct)); + transactionElement.AppendElement(nameof(transaction.Closed), DateUtil.FormatXmlDateTime(transaction.Closed)); + transactionElement.AppendElement(nameof(transaction.Department), transaction.Department); + transactionElement.AppendElement(nameof(transaction.DescBrief), transaction.DescBrief); + transactionElement.AppendElement(nameof(transaction.DescIntro), transaction.DescIntro); + transactionElement.AppendElement(nameof(transaction.DescOutline), transaction.DescOutline); + transactionElement.AppendElement(nameof(transaction.DescDetail), transaction.DescDetail); + transactionElement.AppendElement(nameof(transaction.ResponseCode), transaction.ResponseCode); + transactionElement.AppendElement(nameof(transaction.ContactAreaCode), transaction.ContactAreaCode); + transactionElement.AppendElement(nameof(transaction.Postcode), transaction.Postcode); + transactionElement.AppendElement(nameof(transaction.CurrencyId), SysId.ToString(transaction.CurrencyId)); + transactionElement.AppendElement(nameof(transaction.TaxCodeId), SysId.ToString(transaction.TaxCodeId)); + transactionElement.AppendElement(nameof(transaction.AmountEst), transaction.AmountEst.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.AmountMax), transaction.AmountMax.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.AmountNet), transaction.AmountNet.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.AmountTax), transaction.AmountTax.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.AmountTot), transaction.AmountTot.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.TimeEst), transaction.TimeEst.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.TimeAct), transaction.TimeAct.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.TimeTot), transaction.TimeTot.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.LocationIdStock), SysId.ToString(transaction.LocationIdStock)); + transactionElement.AppendElement(nameof(transaction.Weight), transaction.Weight.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.UomIdWeight), SysId.ToString(transaction.UomIdWeight)); + transactionElement.AppendElement(nameof(transaction.BoxCount), transaction.BoxCount); + transactionElement.AppendElement(nameof(transaction.DeliveryStatusCode), transaction.DeliveryStatusCode); + transactionElement.AppendElement(nameof(transaction.DeliveryTypeCode), transaction.DeliveryTypeCode); + transactionElement.AppendElement(nameof(transaction.DeliveryMethodCode), transaction.DeliveryMethodCode); + transactionElement.AppendElement(nameof(transaction.DeliveryCourierCode), transaction.DeliveryCourierCode); + transactionElement.AppendElement(nameof(transaction.DeliveryBookInCode), transaction.DeliveryBookInCode); + transactionElement.AppendElement(nameof(transaction.StockPickerCode), transaction.StockPickerCode); + transactionElement.AppendElement(nameof(transaction.DeliveryRef), transaction.DeliveryRef); + transactionElement.AppendElement(nameof(transaction.DeliveryComment), transaction.DeliveryComment); + transactionElement.AppendElement(nameof(transaction.DeliveryAmountNet), transaction.DeliveryAmountNet.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.TaxCodeIdDelivery), SysId.ToString(transaction.TaxCodeIdDelivery)); + transactionElement.AppendElement(nameof(transaction.DeliveryAmountTax), transaction.DeliveryAmountTax.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.DeliveryAmountTot), transaction.DeliveryAmountTot.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.CostLabourRateHour), transaction.CostLabourRateHour.ToString("N3")); + transactionElement.AppendElement(nameof(transaction.DeliveryDepartment), transaction.DeliveryDepartment); + transactionElement.AppendElement(nameof(transaction.DeliveryNominalCode), transaction.DeliveryNominalCode); + transactionElement.AppendElement(nameof(transaction.Notes), transaction.Notes); + transactionElement.AppendElement(nameof(transaction.Status), SacsSystem.GetStatusCode(transaction.Status)); + transactionElement.AppendElement(nameof(transaction.Flags), transaction.Flags.ToString()); + if (!SysId.IsValid(transaction.Id)) + { + transactionElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + transactionElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId)); + transactionElement.AppendElement("CreateHost", dbUpdateInfo.Host); + } + transactionElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now)); + transactionElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId)); + transactionElement.AppendElement("UpdateHost", dbUpdateInfo.Host); + } + private void PopulateFrom (XElement transactionElement, SbmTransaction transaction) + { + transaction.Id = new SysId(StringUtil.ToInt(transactionElement.GetChildText("Id"))); + transaction.AffiliateIdOwner = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.AffiliateIdOwner)))); + transaction.AssociationId = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.AssociationId)))); + transaction.TransactionType = EnumUtil.ParseEnum(transactionElement.GetChildText(nameof(transaction.TransactionType)), Sbm.TransactionType.Unknown); + transaction.Ref = transactionElement.GetChildText(nameof(transaction.Ref)); + transaction.RefInt = StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.RefInt))); + transaction.RefExt = transactionElement.GetChildText(nameof(transaction.RefExt)); + transaction.RaisedBy = transactionElement.GetChildText(nameof(transaction.RaisedBy)); + transaction.AffiliateIdRaise = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.AffiliateIdRaise)))); + transaction.AssociationIdOffice = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.AssociationIdOffice)))); + transaction.ContactName = transactionElement.GetChildText(nameof(transaction.ContactName)); + transaction.Likelihood = transactionElement.GetChildText(nameof(transaction.Likelihood)); + transaction.TransactionIdSource = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.TransactionIdSource)))); + transaction.ReferCode = transactionElement.GetChildText(nameof(transaction.ReferCode)); + transaction.ReferSource = transactionElement.GetChildText(nameof(transaction.ReferSource)); + transaction.AffiliateIdRefer = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.AffiliateIdRefer)))); + transaction.AssociationIdContract = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.AssociationIdContract)))); + transaction.AssociationIdDelivery = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.AssociationIdDelivery)))); + transaction.Raised = DateUtil.ParseXmlDateTime(transactionElement.GetChildText(nameof(transaction.Raised))); + transaction.Required = DateUtil.ParseXmlDateTime(transactionElement.GetChildText(nameof(transaction.Required))); + transaction.InProgress = DateUtil.ParseXmlDateTime(transactionElement.GetChildText(nameof(transaction.InProgress))); + transaction.DeliveredEst = DateUtil.ParseXmlDateTime(transactionElement.GetChildText(nameof(transaction.DeliveredEst))); + transaction.DeliveredAct = DateUtil.ParseXmlDateTime(transactionElement.GetChildText(nameof(transaction.DeliveredAct))); + transaction.Closed = DateUtil.ParseXmlDateTime(transactionElement.GetChildText(nameof(transaction.Closed))); + transaction.Department = transactionElement.GetChildText(nameof(transaction.Department)); + transaction.DescBrief = transactionElement.GetChildText(nameof(transaction.DescBrief)); + transaction.DescIntro = transactionElement.GetChildText(nameof(transaction.DescIntro)); + transaction.DescOutline = transactionElement.GetChildText(nameof(transaction.DescOutline)); + transaction.DescDetail = transactionElement.GetChildText(nameof(transaction.DescDetail)); + transaction.ResponseCode = transactionElement.GetChildText(nameof(transaction.ResponseCode)); + transaction.ContactAreaCode = transactionElement.GetChildText(nameof(transaction.ContactAreaCode)); + transaction.Postcode = transactionElement.GetChildText(nameof(transaction.Postcode)); + transaction.CurrencyId = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.CurrencyId)))); + transaction.TaxCodeId = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.TaxCodeId)))); + transaction.AmountEst = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.AmountEst))); + transaction.AmountMax = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.AmountMax))); + transaction.AmountNet = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.AmountNet))); + transaction.AmountTax = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.AmountTax))); + transaction.AmountTot = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.AmountTot))); + transaction.TimeEst = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.TimeEst))); + transaction.TimeAct = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.TimeAct))); + transaction.TimeTot = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.TimeTot))); + transaction.LocationIdStock = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.LocationIdStock)))); + transaction.Weight = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.Weight))); + transaction.UomIdWeight = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.UomIdWeight)))); + transaction.BoxCount = transactionElement.GetChildText(nameof(transaction.BoxCount)); + transaction.DeliveryStatusCode = transactionElement.GetChildText(nameof(transaction.DeliveryStatusCode)); + transaction.DeliveryTypeCode = transactionElement.GetChildText(nameof(transaction.DeliveryTypeCode)); + transaction.DeliveryMethodCode = transactionElement.GetChildText(nameof(transaction.DeliveryMethodCode)); + transaction.DeliveryCourierCode = transactionElement.GetChildText(nameof(transaction.DeliveryCourierCode)); + transaction.DeliveryBookInCode = transactionElement.GetChildText(nameof(transaction.DeliveryBookInCode)); + transaction.StockPickerCode = transactionElement.GetChildText(nameof(transaction.StockPickerCode)); + transaction.DeliveryRef = transactionElement.GetChildText(nameof(transaction.DeliveryRef)); + transaction.DeliveryComment = transactionElement.GetChildText(nameof(transaction.DeliveryComment)); + transaction.DeliveryAmountNet = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.DeliveryAmountNet))); + transaction.TaxCodeIdDelivery = new SysId(StringUtil.ToInt(transactionElement.GetChildText(nameof(transaction.TaxCodeIdDelivery)))); + transaction.DeliveryAmountTax = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.DeliveryAmountTax))); + transaction.DeliveryAmountTot = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.DeliveryAmountTot))); + transaction.CostLabourRateHour = StringUtil.ToDecimal(transactionElement.GetChildText(nameof(transaction.CostLabourRateHour))); + transaction.DeliveryDepartment = transactionElement.GetChildText(nameof(transaction.DeliveryDepartment)); + transaction.DeliveryNominalCode = transactionElement.GetChildText(nameof(transaction.DeliveryNominalCode)); + transaction.Notes = transactionElement.GetChildText(nameof(transaction.Notes)); + transaction.Status = SacsSystem.GetStatusForCode(transactionElement.GetChildText(nameof(transaction.Status))); + transaction.SetCreateStamp(DateUtil.ParseXmlDateTime(transactionElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(transactionElement.GetChildText("CreateBy"))), transactionElement.GetChildText("CreateHost")); + transaction.SetUpdateStamp(DateUtil.ParseXmlDateTime(transactionElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(transactionElement.GetChildText("UpdateBy"))), transactionElement.GetChildText("UpdateHost")); + transaction.AcceptChanges(); + } + + //------------------------------------------------------------------- + // Transaction column definitions. + public override ColumnDfn GetTransactionColumnDfn (SbmTransaction.Column columnId, string caption = "", int width = 0) + { + ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); + if (!String.IsNullOrEmpty(caption)) + columnDfn.Caption = caption; + if (width > 0) + columnDfn.Width = width; + columnDfn.DataName = columnId.ToString(); + return columnDfn; + } + + //------------------------------------------------------------------- + // Transaction query filter. + public override List GetTransactionQueryFilter (SbmTransaction.Params prm) + { + throw new NotImplementedException(); + } + public Dictionary GetTransactionQueryFilter_Mobile (SbmTransaction.Params prm) + { + Dictionary filter = new Dictionary(); + + // Transaction Id. + if (prm.IncludedIds.Count > 0) filter.Add(nameof(prm.IncludedIds), prm.IncludedIds.Concat(",")); + if (prm.ExcludedIds.Count > 0) filter.Add(nameof(prm.ExcludedIds), prm.ExcludedIds.Concat(",")); + + // Association Id. + if (SysId.IsValid(prm.AssocId)) filter.Add(nameof(prm.AssocId), SysId.ToString(prm.AssocId)); + + // Trans Id source. + if (SysId.IsValid(prm.TransIdSource)) filter.Add(nameof(prm.TransIdSource), SysId.ToString(prm.TransIdSource)); + + // Transaction type. + if ((int)prm.TransactionType > 0) filter.Add(nameof(prm.TransactionType), ((int)prm.TransactionType).ToString()); + + // Location Id stock. + if (SysId.IsValid(prm.LocationIdStock)) filter.Add(nameof(prm.LocationIdStock), SysId.ToString(prm.LocationIdStock)); + + // Association. + if (!StringUtil.IsEmpty(prm.AssocPartial)) filter.Add(nameof(prm.AssocPartial), prm.AssocPartial); + + // Address. + if (!StringUtil.IsEmpty(prm.AddressPartial)) filter.Add(nameof(prm.AddressPartial), prm.AddressPartial); + + // Postcode. + if (!StringUtil.IsEmpty(prm.PostcodePartial)) filter.Add(nameof(prm.PostcodePartial), prm.PostcodePartial); + + // Trans ref. + if (!StringUtil.IsEmpty(prm.TransRefFull)) filter.Add(nameof(prm.TransRefFull), prm.TransRefFull); + if (!StringUtil.IsEmpty(prm.TransRefPartial)) filter.Add(nameof(prm.TransRefPartial), prm.TransRefPartial); + + // Trans ref ext. + if (!StringUtil.IsEmpty(prm.TransRefExtFull)) filter.Add(nameof(prm.TransRefExtFull), prm.TransRefExtFull); + if (!StringUtil.IsEmpty(prm.TransRefExtPartial)) filter.Add(nameof(prm.TransRefExtPartial), prm.TransRefExtPartial); + + // Trans desc brief. + if (!StringUtil.IsEmpty(prm.TransDescBriefPartial)) filter.Add(nameof(prm.TransDescBriefPartial), prm.TransDescBriefPartial); + + // Default nominal code. + if (!StringUtil.IsEmpty(prm.DefaultNominalCodeFull)) filter.Add(nameof(prm.DefaultNominalCodeFull), prm.DefaultNominalCodeFull); + if (!StringUtil.IsEmpty(prm.DefaultNominalCodePartial)) filter.Add(nameof(prm.DefaultNominalCodePartial), prm.DefaultNominalCodePartial); + + // Contact area code. + if (!StringUtil.IsEmpty(prm.ContactAreaCode)) filter.Add(nameof(prm.ContactAreaCode), prm.ContactAreaCode); + + // Account manager code. + if (!StringUtil.IsEmpty(prm.AccountManagerCode)) filter.Add(nameof(prm.AccountManagerCode), prm.AccountManagerCode); + + // Account handler code. + if (!StringUtil.IsEmpty(prm.AccountHandlerCode)) filter.Add(nameof(prm.AccountHandlerCode), prm.AccountHandlerCode); + + // Delivery status code. + if (!StringUtil.IsEmpty(prm.DeliveryStatusCode)) filter.Add(nameof(prm.DeliveryStatusCode), prm.DeliveryStatusCode); + + // Delivery type code. + if (!StringUtil.IsEmpty(prm.DeliveryTypeCode)) filter.Add(nameof(prm.DeliveryTypeCode), prm.DeliveryTypeCode); + + // Delivery method code. + if (!StringUtil.IsEmpty(prm.DeliveryMethodCode)) filter.Add(nameof(prm.DeliveryMethodCode), prm.DeliveryMethodCode); + + // Delivery courier code. + if (!StringUtil.IsEmpty(prm.DeliveryCourierCode)) filter.Add(nameof(prm.DeliveryCourierCode), prm.DeliveryCourierCode); + + // Delivery book in code. + if (!StringUtil.IsEmpty(prm.DeliveryBookInCode)) filter.Add(nameof(prm.DeliveryBookInCode), prm.DeliveryBookInCode); + + // Raised. + if (DateUtil.IsValid(prm.RaisedFrom)) filter.Add(nameof(prm.RaisedFrom), DateUtil.FormatXmlDate(prm.RaisedFrom)); + if (DateUtil.IsValid(prm.RaisedTo)) filter.Add(nameof(prm.RaisedTo), DateUtil.FormatXmlDate(prm.RaisedTo)); + + // Required. + if (DateUtil.IsValid(prm.RequiredFrom)) filter.Add(nameof(prm.RequiredFrom), DateUtil.FormatXmlDate(prm.RequiredFrom)); + if (DateUtil.IsValid(prm.RequiredTo)) filter.Add(nameof(prm.RequiredTo), DateUtil.FormatXmlDate(prm.RequiredTo)); + + // Closed. + if (DateUtil.IsValid(prm.ClosedFrom)) filter.Add(nameof(prm.ClosedFrom), DateUtil.FormatXmlDate(prm.ClosedFrom)); + if (DateUtil.IsValid(prm.ClosedTo)) filter.Add(nameof(prm.ClosedTo), DateUtil.FormatXmlDate(prm.ClosedTo)); + + // Ammount Net. + if (prm.AmountNetLt > 0) filter.Add(nameof(prm.AmountNetLt), prm.AmountNetLt.ToString("N3")); + if (prm.AmountNetGt > 0) filter.Add(nameof(prm.AmountNetGt), prm.AmountNetGt.ToString("N3")); + + // Notes. + if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add(nameof(prm.NotesPartial), prm.NotesPartial); + + // Active. + if (DateUtil.IsValid(prm.ActiveOn)) filter.Add(nameof(prm.ActiveOn), DateUtil.FormatXmlDate(prm.ActiveOn)); + if (DateUtil.IsValid(prm.ActiveFrom)) filter.Add(nameof(prm.ActiveFrom), DateUtil.FormatXmlDate(prm.ActiveFrom)); + if (DateUtil.IsValid(prm.ActiveTo)) filter.Add(nameof(prm.ActiveTo), DateUtil.FormatXmlDate(prm.ActiveTo)); + + // Active any day during period. + if (prm.ActiveAnyDayDuringPeriod != false) filter.Add(nameof(prm.ActiveAnyDayDuringPeriod), prm.ActiveAnyDayDuringPeriod.ToString()); + + // Reqnt commodity Id. + if (SysId.IsValid(prm.ReqntCommodityId)) filter.Add(nameof(prm.ReqntCommodityId), SysId.ToString(prm.ReqntCommodityId)); + + // Reqnt asset Id. + if (SysId.IsValid(prm.ReqntAssetId)) filter.Add(nameof(prm.TransIdSource), SysId.ToString(prm.TransIdSource)); + + // Reqnt product code. + if (!StringUtil.IsEmpty(prm.ReqntProductCodeFull)) filter.Add(nameof(prm.ReqntProductCodeFull), prm.ReqntProductCodeFull); + if (!StringUtil.IsEmpty(prm.ReqntProductCodePartial)) filter.Add(nameof(prm.ReqntProductCodePartial), prm.ReqntProductCodePartial); + + // Reqnt project task code. + if (!StringUtil.IsEmpty(prm.ReqntProjectTaskCodeFull)) filter.Add(nameof(prm.ReqntProjectTaskCodeFull), prm.ReqntProjectTaskCodeFull); + if (!StringUtil.IsEmpty(prm.ReqntProjectTaskCodePartial)) filter.Add(nameof(prm.ReqntProjectTaskCodePartial), prm.ReqntProjectTaskCodePartial); + + // Reqnt job number. + if (!StringUtil.IsEmpty(prm.ReqntJobNumberFull)) filter.Add(nameof(prm.ReqntJobNumberFull), prm.ReqntJobNumberFull); + if (!StringUtil.IsEmpty(prm.ReqntJobNumberPartial)) filter.Add(nameof(prm.ReqntJobNumberPartial), prm.ReqntJobNumberPartial); + + // Reqnt asset serial. + if (!StringUtil.IsEmpty(prm.ReqntAssetSerialFull)) filter.Add(nameof(prm.ReqntAssetSerialFull), prm.ReqntAssetSerialFull); + if (!StringUtil.IsEmpty(prm.ReqntAssetSerialPartial)) filter.Add(nameof(prm.ReqntAssetSerialPartial), prm.ReqntAssetSerialPartial); + + // Reqnt desc detail. + if (!StringUtil.IsEmpty(prm.ReqntDescDetailPartial)) filter.Add(nameof(prm.ReqntDescDetailPartial), prm.ReqntDescDetailPartial); + + // Reqnt notes. + if (!StringUtil.IsEmpty(prm.ReqntNotesPartial)) filter.Add(nameof(prm.ReqntNotesPartial), prm.ReqntNotesPartial); + + // Source reqnt trans ref. + if (!StringUtil.IsEmpty(prm.SourceReqntTransRef)) filter.Add(nameof(prm.SourceReqntTransRef), prm.SourceReqntTransRef); + + // Force full results. + if (prm.ForceFullResults != false) filter.Add(nameof(prm.ForceFullResults), prm.ForceFullResults.ToString()); + + // Notes. + if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add(nameof(prm.NotesPartial), prm.NotesPartial); + + // Status. + filter.Add(nameof(prm.StatusCat), prm.StatusCat.ToString()); + + // Paging. + if (prm.ResultsPaging.Paged) + { + filter.Add(nameof(prm.ResultsPaging.PageNo), prm.ResultsPaging.PageNo.ToString()); + filter.Add(nameof(prm.ResultsPaging.PageLength), prm.ResultsPaging.PageLength.ToString()); + } + + return filter; + } + // Transaction sort columns. + public List GetTransactionSortColumns (SbmTransaction.Params prm) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Transaction count. + public override long GetTransactionCount (SbmTransaction.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + // Transaction list. + public override List GetTransactionList (SbmTransaction.Params prm) + { + List transactions = new List(); + throw new NotImplementedException(); + } + public async Task> GetTransactionList_Mobile (SbmTransaction.Params prmTransaction, SacsTaskData taskData) + { + ClearErrorState(); + List transactions = new List(); + String fn = GetType().Name + ".GetTransactionList_Mobile"; + + // Transaction columns. + List columns = new List(EnumUtil.GetValues()); + + List itemDataList = await ExecuteTransactionQuery_Mobile(columns, prmTransaction, taskData); + foreach (SbmWebServiceItemData itemData in itemDataList) + { + taskData.ThrowIfCancellationRequested(); + // Item construction properties. + SysId id = itemData.GetIdValue(SbmTransaction.Column.Id); + //SysId affIdOwner = itemData.GetIdValue(SbmTransaction.Column.AffIdOwner); + SysId affIdOwner = new SysId(); + //SysId assocId = itemData.GetIdValue(SbmTransaction.Column.AssocId); + SysId assocId = new SysId(); + //Sbm.TransactionType transactionType = EnumUtil.ParseEnum(itemData.GetValue(SbmTransaction.Column.TransactionType), Sbm.TransactionType.Unknown); + ushort flags = (ushort)itemData.GetIntValue(SbmTransaction.Column.Flags); + // Create item. + SbmTransaction_Mobile transaction = new SbmTransaction_Mobile(UserContext, id, affIdOwner, assocId, Sbm.TransactionType.Unknown, flags); + // Populate item properties. + foreach (SbmTransaction.Column column in columns) + { + String value = itemData.GetValue(column); + switch (column) + { + //case SbmTransaction.Column.AffIdOwner: transaction.AffiliateIdOwner = itemData.GetIdValue(column); break; + //case SbmTransaction.Column.AssocId: transaction.AssociationId= itemData.GetIdValue(column); break; + //case SbmTransaction.Column.TransactionType: transaction.TransactionType = EnumUtil.ParseEnum(itemData.GetValue(column), Sbm.TransactionType.Unknown); break; + case SbmTransaction.Column.Ref: transaction.Ref= value; break; + //case SbmTransaction.Column.RefInt: transaction.RefInt = itemData.GetIntValue(column); break; + case SbmTransaction.Column.RefExt: transaction.RefExt = value; break; + //case SbmTransaction.Column.RaisedBy: transaction.RaisedBy = value; break; + //case SbmTransaction.Column.AffIdRaise: transaction.AffiliateIdRaise = itemData.GetIdValue(column); break; + //case SbmTransaction.Column.AssocIdOffice: transaction.AssociationIdOffice = itemData.GetIdValue(column); break; + case SbmTransaction.Column.ContactName: transaction.ContactName = value; break; + case SbmTransaction.Column.Likelihood: transaction.Likelihood = value; break; + //case SbmTransaction.Column.TransIdSource: transaction.TransactionIdSource = itemData.GetIdValue(column); break; + //case SbmTransaction.Column.ReferCode: transaction.ReferCode = value; break; + //case SbmTransaction.Column.ReferSource: transaction.ReferSource = value; break; + //case SbmTransaction.Column.AffIdRefer: transaction.AffiliateIdRefer = itemData.GetIdValue(column); break; + //case SbmTransaction.Column.AssocIdContract: transaction.AssociationIdContract= itemData.GetIdValue(column); break; + //case SbmTransaction.Column.AssocIdDelivery: transaction.AssociationIdDeliver= itemData.GetIdValue(column); break; + case SbmTransaction.Column.RaisedOn: transaction.Raised= itemData.GetDateTimeValue(column); break; + case SbmTransaction.Column.RequiredOn: transaction.Required= itemData.GetDateTimeValue(column); break; + case SbmTransaction.Column.InProgressOn: transaction.InProgress = itemData.GetDateTimeValue(column); break; + //case SbmTransaction.Column.DeliveredEst: transaction.DeliveredEst = itemData.GetDateTimeValue(column); break; + //case SbmTransaction.Column.DeliveredAct: transaction.DeliveredAct = itemData.GetDateTimeValue(column); break; + case SbmTransaction.Column.ClosedOn: transaction.Closed = itemData.GetDateTimeValue(column); break; + //case SbmTransaction.Column.Department: transaction.Department = value; break; + case SbmTransaction.Column.DescBrief: transaction.DescBrief = value; break; + //case SbmTransaction.Column.DescIntro: transaction.DescIntro = value; break; + //case SbmTransaction.Column.DescOutline: transaction.DescOutline = value; break; + //case SbmTransaction.Column.DescDetail: transaction.DescDetail = value; break; + //case SbmTransaction.Column.ResponseCode: transaction.ResponseCode= value; break; + case SbmTransaction.Column.ContactAreaCode: transaction.ContactAreaCode = value; break; + //case SbmTransaction.Column.Postcode: transaction.Postcode= value; break; + case SbmTransaction.Column.CurrencyId: transaction.CurrencyId = itemData.GetIdValue(column); break; + case SbmTransaction.Column.TaxCodeId: transaction.TaxCodeId = itemData.GetIdValue(column); break; + case SbmTransaction.Column.AmountEst: transaction.AmountEst = itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.AmountMax: transaction.AmountMax = itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.AmountNet: transaction.AmountNet= itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.AmountTax: transaction.AmountTax= itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.AmountTot: transaction.AmountTot = itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.TimeEst: transaction.TimeEst = itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.TimeAct: transaction.TimeAct = itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.TimeTot: transaction.TimeTot= itemData.GetDecimalValue(column); break; + //case SbmTransaction.Column.LocationIdStock: transaction.LocationIdStock = itemData.GetIdValue(column); break; + case SbmTransaction.Column.Weight: transaction.Weight = itemData.GetDecimalValue(column); break; + //case SbmTransaction.Column.UomIdWeight: transaction.UomIdWeight = itemData.GetIdValue(column); break; + case SbmTransaction.Column.BoxCount: transaction.BoxCount = value; break; + case SbmTransaction.Column.DeliveryStatusCode: transaction.DeliveryStatusCode = value; break; + case SbmTransaction.Column.DeliveryTypeCode: transaction.DeliveryTypeCode = value; break; + case SbmTransaction.Column.DeliveryMethodCode: transaction.DeliveryMethodCode = value; break; + case SbmTransaction.Column.DeliveryCourierCode: transaction.DeliveryCourierCode = value; break; + case SbmTransaction.Column.DeliveryBookInCode: transaction.DeliveryBookInCode = value; break; + case SbmTransaction.Column.StockPickerCode: transaction.StockPickerCode = value; break; + //case SbmTransaction.Column.DeliveryRef: transaction.DeliveryRef= value; break; + //case SbmTransaction.Column.DeliveryComment: transaction.DeliveryComment= value; break; + case SbmTransaction.Column.DeliveryAmountNet: transaction.DeliveryAmountNet = itemData.GetDecimalValue(column); break; + //case SbmTransaction.Column.TaxCodeIdDelivery: transaction.TaxCodeIdDelivery= itemData.GetIdValue(column); break; + case SbmTransaction.Column.DeliveryAmountTax: transaction.DeliveryAmountTax = itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.DeliveryAmountTot: transaction.DeliveryAmountTot= itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.CostLabourRateHour: transaction.CostLabourRateHour = itemData.GetDecimalValue(column); break; + case SbmTransaction.Column.DeliveryDepartment: transaction.DeliveryDepartment = value; break; + case SbmTransaction.Column.DeliveryNominalCode: transaction.DeliveryNominalCode = value; break; + case SbmTransaction.Column.Notes: transaction.Notes = value; break; + case SbmTransaction.Column.Status: transaction.Status = SacsSystem.GetStatusForCode(value); break; + } + } + transactions.Add(transaction); + } + taskData.ThrowIfCancellationRequested(); + + if (taskData.Debug) Logger.Debug(fn + " Transactions: " + transactions.Count); + return transactions; + } + + + //------------------------------------------------------------------- + // Transaction query execution. + public override DbResultSet ExecuteTransactionQuery (List columns, SbmTransaction.Params prm) + { + ClearErrorState(); + throw new NotImplementedException(); + } + public async Task> ExecuteTransactionQuery_Mobile (List transactionColumns, SbmTransaction.Params prmTransaction, SacsTaskData taskData) + { + ClearErrorState(); + + // Columns. + List columns = new List(); + foreach (SbmTransaction.Column column in transactionColumns) + columns.Add(column.ToString()); + + SbmWebServiceClient.QueryListResponseData responseData = await webServiceClient.RequestQueryList(GetTransactionRequestConfig(SbmWebServiceRequest.RequestType.QueryList, taskData.Debug), GetTransactionQueryFilter_Mobile(prmTransaction), columns, this.GetSortColumns_Mobile(prmTransaction), taskData); + return responseData.Items; + } + + //------------------------------------------------------------------- + private SbmWebServiceRequest.Config GetTransactionRequestConfig (SbmWebServiceRequest.RequestType requestType, bool debug = false) + { + SbmWebServiceRequest.Config configRequest = new SbmWebServiceRequest.Config(); + configRequest.DataType = SbmWebServiceRequest.DataType.Transaction; + configRequest.RequestType = requestType; + configRequest.Context.Debug = debug; + return configRequest; + } + + //------------------------------------------------------------------- + } + //======================================================================= +} \ No newline at end of file diff --git a/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile.cs b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile.cs new file mode 100644 index 0000000..ab664c0 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/Mgr/SbmTransactionMgr_Mobile.cs @@ -0,0 +1,207 @@ +using Sarand.BusinessMgr.Mobile.Core.App; +using Sarand.BusinessMgr.Core.App; +using Sarand.BusinessMgr.Core.Bus; +using Sarand.BusinessMgr.Core.Mgr; +using Sarand.BusinessMgr.Core.WebService; +using Sarand.Core.Bus; +using Sarand.Core.ReferenceData; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.Mgr +{ + //======================================================================= + public partial class SbmTransactionMgr_Mobile : SbmTransactionMgr, ISbmItemMgr_Mobile + { + //------------------------------------------------------------------- + // Definitions. + + //------------------------------------------------------------------- + // Data members. + private SbmWebServiceClient webServiceClient = new SbmWebServiceClient(); + + //------------------------------------------------------------------- + // Construction. + public SbmTransactionMgr_Mobile (SbmUserContext userContext) : + base(userContext) + { + } + + //------------------------------------------------------------------- + // Properties. + public SbmSessionProfile_Mobile SessionProfile { get { return SbmGlobals_Mobile.SessionProfile; } } + public String UserCode { get; } + public String EmailAddress { get; } + + //------------------------------------------------------------------- + // A s s o c i a t e d D a t a + //------------------------------------------------------------------- + public override bool CalculateTotal (SbmRequirement.Data requirementData) + { + throw new NotImplementedException(); + } + + public override bool ChangeTransactionsAssociation (SbmTransaction transaction, SysId assocId) + { + throw new NotImplementedException(); + } + + public override SbmRequirement CloneRequirement (SbmRequirement reqntSource, bool copyAddDescs) + { + throw new NotImplementedException(); + } + + public override bool CostColumnsAreAvailable () + { + throw new NotImplementedException(); + } + + public override bool DeliveryFinancialsAreAvailable () + { + throw new NotImplementedException(); + } + + public override List GetRequirementByIds (SbmTransaction.Params prmTrans) + { + throw new NotImplementedException(); + } + + public override List GetRequirementsForTransaction (SysId transactionId) + { + throw new NotImplementedException(); + } + + public override SaUomType GetTimeTypeForUom (SysId idUom) + { + throw new NotImplementedException(); + } + + public override List GetTransactionTypesForCommodity (SysId commodityId, SbmTransaction.StatusCat statusCat = SbmTransaction.StatusCat.NotCancelled) + { + throw new NotImplementedException(); + } + + public override decimal GetTransCostLabourRateHour (SysId transactionId) + { + throw new NotImplementedException(); + } + + public override decimal GetTransCostLabourRateHourDefault () + { + throw new NotImplementedException(); + } + + public override void PopulateLocationIdLists () + { + throw new NotImplementedException(); + } + + public override bool RefreshAllTotalTimes () + { + throw new NotImplementedException(); + } + + public override bool RefreshReqntTotalTime (SysId Reqnt) + { + throw new NotImplementedException(); + } + + public override bool RefreshTotalTimes (SbmConstituent constituent, SysId TransIdPrevious, SysId ReqntIdPrevious) + { + throw new NotImplementedException(); + } + + public override bool RefreshTransTotalTime (SysId Trans) + { + throw new NotImplementedException(); + } + + public override bool RequirementsExistByParams (SbmRequirement.Params prmRequirement) + { + throw new NotImplementedException(); + } + + public override bool SetTaxCode (SbmRequirement requirement, DateTime effective) + { + throw new NotImplementedException(); + } + + public override bool TransactionHasConstituents (SysId transId, SbmConstituent.StatusCat constituentStatusCat) + { + throw new NotImplementedException(); + } + + public override bool TransactionHasContainerItems (SysId transactionId) + { + throw new NotImplementedException(); + } + + public override bool TransactionHasPendingStockMovements (SysId transactionId) + { + throw new NotImplementedException(); + } + + public override bool TransactionHasRequirements (SysId transId, SbmRequirement.StatusCat requirementStatusCat) + { + throw new NotImplementedException(); + } + + public override bool TransactionHasStockMovements (SysId transactionId) + { + throw new NotImplementedException(); + } + + public override bool TransactionIsReferencedByOtherTransactions (SysId transactionId) + { + throw new NotImplementedException(); + } + public override bool RefreshAssociatedData (SbmTransaction transaction, List requirements = null) + { + throw new NotImplementedException(); + } + + public override bool RefreshAssociatedTransactions (SbmTransaction transaction, List requirements = null) + { + throw new NotImplementedException(); + } + + public override SbmRequirement.Data CloneRequirement (SbmRequirement.Data requirementSource, bool copyAddDescs) + { + throw new NotImplementedException(); + } + + public override List GetRequirementCostEstimates (SbmRequirement.Data requirement) + { + throw new NotImplementedException(); + } + + public override List GetRequirementItemProcesses (SbmRequirement.Data requirement) + { + throw new NotImplementedException(); + } + + public override bool RequirementHasAssociatedRequirements (SysId requirementId) + { + throw new NotImplementedException(); + } + + public override bool RequirementHasConstituents (SysId requirementId, Sbm.ConstituentType constituentType) + { + throw new NotImplementedException(); + } + + public override bool ClearRequirementDependentData (SysId requirementId, SysId commodityId) + { + throw new NotImplementedException(); + } + + public override bool ClearRequirementAssociatedRequirements (SysId requirementId) + { + throw new NotImplementedException(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/Mobile/Core/WebService/SbmWebServiceStoreItemHelper.cs b/SaBusMgrMobCore/Mobile/Core/WebService/SbmWebServiceStoreItemHelper.cs new file mode 100644 index 0000000..5113232 --- /dev/null +++ b/SaBusMgrMobCore/Mobile/Core/WebService/SbmWebServiceStoreItemHelper.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Sarand.BusinessMgr.Mobile.Core.WebService +{ + //======================================================================= + public static class SbmWebServiceStoreItemHelper + { + //------------------------------------------------------------------- + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusMgrMobCore/SaBusMgrMobCore.csproj b/SaBusMgrMobCore/SaBusMgrMobCore.csproj new file mode 100644 index 0000000..4ac6a6a --- /dev/null +++ b/SaBusMgrMobCore/SaBusMgrMobCore.csproj @@ -0,0 +1,14 @@ + + + + netstandard1.3 + Sarand.BusinessMgr + + + + + + + + +