├── .gitattributes ├── .gitignore ├── MobileStore ├── MobileStore.sln ├── MyStore.CustomersApp.sln ├── MyStore.CustomersApp │ ├── MyStore.CustomersApp.Android │ │ ├── Assets │ │ │ └── AboutAssets.txt │ │ ├── MainActivity.cs │ │ ├── MyStore.CustomersApp.Android.csproj │ │ ├── Properties │ │ │ ├── AndroidManifest.xml │ │ │ └── AssemblyInfo.cs │ │ └── Resources │ │ │ ├── AboutResources.txt │ │ │ ├── Resource.designer.cs │ │ │ ├── drawable-hdpi │ │ │ └── icon.png │ │ │ ├── drawable-xhdpi │ │ │ └── icon.png │ │ │ ├── drawable-xxhdpi │ │ │ └── icon.png │ │ │ ├── drawable │ │ │ └── icon.png │ │ │ ├── layout │ │ │ ├── Main.axml │ │ │ ├── Tabbar.axml │ │ │ └── Toolbar.axml │ │ │ ├── mipmap-hdpi │ │ │ └── Icon.png │ │ │ ├── mipmap-mdpi │ │ │ └── Icon.png │ │ │ ├── mipmap-xhdpi │ │ │ └── Icon.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── Icon.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── Icon.png │ │ │ └── values │ │ │ ├── Strings.xml │ │ │ └── styles.xml │ ├── MyStore.CustomersApp.UWP │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── Assets │ │ │ ├── LockScreenLogo.scale-100.png │ │ │ ├── LockScreenLogo.scale-125.png │ │ │ ├── LockScreenLogo.scale-150.png │ │ │ ├── LockScreenLogo.scale-200.png │ │ │ ├── LockScreenLogo.scale-400.png │ │ │ ├── SplashScreen.scale-100.png │ │ │ ├── SplashScreen.scale-125.png │ │ │ ├── SplashScreen.scale-150.png │ │ │ ├── SplashScreen.scale-200.png │ │ │ ├── SplashScreen.scale-400.png │ │ │ ├── Square150x150Logo.scale-100.png │ │ │ ├── Square150x150Logo.scale-125.png │ │ │ ├── Square150x150Logo.scale-150.png │ │ │ ├── Square150x150Logo.scale-200.png │ │ │ ├── Square150x150Logo.scale-400.png │ │ │ ├── Square44x44Logo.scale-100.png │ │ │ ├── Square44x44Logo.scale-125.png │ │ │ ├── Square44x44Logo.scale-150.png │ │ │ ├── Square44x44Logo.scale-200.png │ │ │ ├── Square44x44Logo.scale-400.png │ │ │ ├── Square44x44Logo.targetsize-16_altform-unplated.png │ │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ │ │ ├── Square44x44Logo.targetsize-256_altform-unplated.png │ │ │ ├── Square44x44Logo.targetsize-32_altform-unplated.png │ │ │ ├── Square44x44Logo.targetsize-48_altform-unplated.png │ │ │ ├── StoreLogo.png │ │ │ ├── Wide310x150Logo.scale-100.png │ │ │ ├── Wide310x150Logo.scale-125.png │ │ │ ├── Wide310x150Logo.scale-150.png │ │ │ ├── Wide310x150Logo.scale-200.png │ │ │ └── Wide310x150Logo.scale-400.png │ │ ├── MainPage.xaml │ │ ├── MainPage.xaml.cs │ │ ├── MyStore.CustomersApp.UWP.csproj │ │ ├── Package.appxmanifest │ │ └── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── Default.rd.xml │ ├── MyStore.CustomersApp.iOS │ │ ├── AppDelegate.cs │ │ ├── Entitlements.plist │ │ ├── Info.plist │ │ ├── Main.cs │ │ ├── MyStore.CustomersApp.iOS.csproj │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── Resources │ │ │ ├── Default-568h@2x.png │ │ │ ├── Default-Portrait.png │ │ │ ├── Default-Portrait@2x.png │ │ │ ├── Default.png │ │ │ ├── Default@2x.png │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ ├── Icon-Small@3x.png │ │ │ └── LaunchScreen.storyboard │ └── MyStore.CustomersApp │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── MyStore.CustomersApp.csproj │ │ ├── Notifications │ │ └── StoreNotification.cs │ │ ├── Pages │ │ ├── CustomerOrderListPage.xaml │ │ ├── CustomerOrderListPage.xaml.cs │ │ ├── CustomerOrderPage.xaml │ │ ├── CustomerOrderPage.xaml.cs │ │ ├── LoginPage.xaml │ │ └── LoginPage.xaml.cs │ │ └── Services │ │ └── SignalRService.cs ├── MyStore.EmployeesApp.sln ├── MyStore.EmployeesApp │ ├── MyStore.EmployeesApp.Android │ │ ├── Assets │ │ │ └── AboutAssets.txt │ │ ├── MainActivity.cs │ │ ├── MyStore.EmployeesApp.Android.csproj │ │ ├── Properties │ │ │ ├── AndroidManifest.xml │ │ │ └── AssemblyInfo.cs │ │ └── Resources │ │ │ ├── AboutResources.txt │ │ │ ├── Resource.designer.cs │ │ │ ├── drawable-hdpi │ │ │ └── icon.png │ │ │ ├── drawable-xhdpi │ │ │ └── icon.png │ │ │ ├── drawable-xxhdpi │ │ │ └── icon.png │ │ │ ├── drawable │ │ │ └── icon.png │ │ │ ├── layout │ │ │ ├── Main.axml │ │ │ ├── Tabbar.axml │ │ │ └── Toolbar.axml │ │ │ ├── mipmap-hdpi │ │ │ └── Icon.png │ │ │ ├── mipmap-mdpi │ │ │ └── Icon.png │ │ │ ├── mipmap-xhdpi │ │ │ └── Icon.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── Icon.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── Icon.png │ │ │ └── values │ │ │ ├── Strings.xml │ │ │ └── styles.xml │ ├── MyStore.EmployeesApp.UWP │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── Assets │ │ │ ├── LockScreenLogo.scale-100.png │ │ │ ├── LockScreenLogo.scale-125.png │ │ │ ├── LockScreenLogo.scale-150.png │ │ │ ├── LockScreenLogo.scale-200.png │ │ │ ├── LockScreenLogo.scale-400.png │ │ │ ├── SplashScreen.scale-100.png │ │ │ ├── SplashScreen.scale-125.png │ │ │ ├── SplashScreen.scale-150.png │ │ │ ├── SplashScreen.scale-200.png │ │ │ ├── SplashScreen.scale-400.png │ │ │ ├── Square150x150Logo.scale-100.png │ │ │ ├── Square150x150Logo.scale-125.png │ │ │ ├── Square150x150Logo.scale-150.png │ │ │ ├── Square150x150Logo.scale-200.png │ │ │ ├── Square150x150Logo.scale-400.png │ │ │ ├── Square44x44Logo.scale-100.png │ │ │ ├── Square44x44Logo.scale-125.png │ │ │ ├── Square44x44Logo.scale-150.png │ │ │ ├── Square44x44Logo.scale-200.png │ │ │ ├── Square44x44Logo.scale-400.png │ │ │ ├── Square44x44Logo.targetsize-16_altform-unplated.png │ │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ │ │ ├── Square44x44Logo.targetsize-256_altform-unplated.png │ │ │ ├── Square44x44Logo.targetsize-32_altform-unplated.png │ │ │ ├── Square44x44Logo.targetsize-48_altform-unplated.png │ │ │ ├── StoreLogo.png │ │ │ ├── Wide310x150Logo.scale-100.png │ │ │ ├── Wide310x150Logo.scale-125.png │ │ │ ├── Wide310x150Logo.scale-150.png │ │ │ ├── Wide310x150Logo.scale-200.png │ │ │ └── Wide310x150Logo.scale-400.png │ │ ├── MainPage.xaml │ │ ├── MainPage.xaml.cs │ │ ├── MyStore.EmployeesApp.UWP.csproj │ │ ├── Package.appxmanifest │ │ └── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── Default.rd.xml │ ├── MyStore.EmployeesApp.iOS │ │ ├── AppDelegate.cs │ │ ├── Entitlements.plist │ │ ├── Info.plist │ │ ├── Main.cs │ │ ├── MyStore.EmployeesApp.iOS.csproj │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── Resources │ │ │ ├── Default-568h@2x.png │ │ │ ├── Default-Portrait.png │ │ │ ├── Default-Portrait@2x.png │ │ │ ├── Default.png │ │ │ ├── Default@2x.png │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ ├── Icon-Small@3x.png │ │ │ └── LaunchScreen.storyboard │ └── MyStore.EmployeesApp │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── MyStore.EmployeesApp.csproj │ │ ├── Notifications │ │ └── StoreNotification.cs │ │ ├── Pages │ │ ├── CustomerListPage.xaml │ │ ├── CustomerListPage.xaml.cs │ │ ├── CustomerOrderListPage.xaml │ │ ├── CustomerOrderListPage.xaml.cs │ │ ├── CustomerOrderPage.xaml │ │ ├── CustomerOrderPage.xaml.cs │ │ ├── CustomerPage.xaml │ │ ├── CustomerPage.xaml.cs │ │ ├── LoginPage.xaml │ │ └── LoginPage.xaml.cs │ │ └── Services │ │ └── SignalRService.cs ├── MyStore.Models │ ├── CustomerDTO.cs │ ├── CustomerOrderDTO.cs │ ├── EmployeDTO.cs │ ├── MyStore.Models.csproj │ ├── OrderDetailDTO.cs │ ├── OrderStatusDTO.cs │ └── ProductDTO.cs └── MyStore.Services │ ├── Helpers │ ├── Constants.cs │ └── MD5Security.cs │ ├── MyStore.Services.csproj │ └── Services │ └── StoreWebApiClient.cs ├── StoreDB_Script.sql └── StoreWebApi ├── StoreWebApi.sln └── StoreWebApi ├── Controllers ├── CustomerOrdersController.cs ├── CustomersController.cs ├── EmployeesController.cs ├── OrderDetailsController.cs ├── OrderStatusesController.cs ├── ProductsController.cs └── ValuesController.cs ├── DTOs ├── AutoMapperConfiguration.cs ├── CustomerDTO.cs ├── CustomerOrderDTO.cs ├── EmployeeDTO.cs ├── OrderDetailDTO.cs ├── OrderStatusDTO.cs └── ProductDTO.cs ├── Hubs ├── IStoreHub.cs └── StoreHub.cs ├── Models ├── Customer.cs ├── CustomerOrder.cs ├── Employee.cs ├── OrderDetail.cs ├── OrderStatus.cs ├── Product.cs └── StoreDBContext.cs ├── Program.cs ├── Properties ├── PublishProfiles │ └── CustomProfile.pubxml └── launchSettings.json ├── Startup.cs ├── StoreWebApi.csproj ├── appsettings.Development.json └── appsettings.json /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with you package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); 20 | -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/MainActivity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Android.App; 4 | using Android.Content.PM; 5 | using Android.Runtime; 6 | using Android.Views; 7 | using Android.Widget; 8 | using Android.OS; 9 | 10 | namespace MyStore.CustomersApp.Droid 11 | { 12 | [Activity(Label = "MyStore.CustomersApp", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 13 | public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity 14 | { 15 | protected override void OnCreate(Bundle bundle) 16 | { 17 | TabLayoutResource = Resource.Layout.Tabbar; 18 | ToolbarResource = Resource.Layout.Toolbar; 19 | 20 | base.OnCreate(bundle); 21 | 22 | global::Xamarin.Forms.Forms.Init(this, bundle); 23 | LoadApplication(new App()); 24 | } 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/MyStore.CustomersApp.Android.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | {D497BE95-6E0D-4488-A2C6-FDD898584D96} 7 | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8 | Library 9 | MyStore.CustomersApp.Droid 10 | MyStore.CustomersApp.Android 11 | v8.1 12 | True 13 | Resources\Resource.designer.cs 14 | Resource 15 | Properties\AndroidManifest.xml 16 | Resources 17 | Assets 18 | 19 | 20 | 21 | 22 | true 23 | full 24 | false 25 | bin\Debug 26 | DEBUG; 27 | prompt 28 | 4 29 | None 30 | 31 | 32 | true 33 | pdbonly 34 | true 35 | bin\Release 36 | prompt 37 | 4 38 | true 39 | false 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 1.0.1 51 | 52 | 53 | 3.0.1 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | Designer 85 | 86 | 87 | 88 | 89 | {AFD7B2AD-D61B-4EAB-866E-632D7075ACC8} 90 | MyStore.CustomersApp 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Android.App; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("MyStore.CustomersApp.Android")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("MyStore.CustomersApp.Android")] 14 | [assembly: AssemblyCopyright("Copyright © 2014")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: ComVisible(false)] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | 32 | // Add some common permissions, these can be removed if not needed 33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)] 34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] 35 | -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/AboutResources.txt: -------------------------------------------------------------------------------- 1 | Images, layout descriptions, binary blobs and string dictionaries can be included 2 | in your application as resource files. Various Android APIs are designed to 3 | operate on the resource IDs instead of dealing with images, strings or binary blobs 4 | directly. 5 | 6 | For example, a sample Android app that contains a user interface layout (main.xml), 7 | an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) 8 | would keep its resources in the "Resources" directory of the application: 9 | 10 | Resources/ 11 | drawable-hdpi/ 12 | icon.png 13 | 14 | drawable-ldpi/ 15 | icon.png 16 | 17 | drawable-mdpi/ 18 | icon.png 19 | 20 | layout/ 21 | main.xml 22 | 23 | values/ 24 | strings.xml 25 | 26 | In order to get the build system to recognize Android resources, set the build action to 27 | "AndroidResource". The native Android APIs do not operate directly with filenames, but 28 | instead operate on resource IDs. When you compile an Android application that uses resources, 29 | the build system will package the resources for distribution and generate a class called 30 | "Resource" that contains the tokens for each one of the resources included. For example, 31 | for the above Resources layout, this is what the Resource class would expose: 32 | 33 | public class Resource { 34 | public class drawable { 35 | public const int icon = 0x123; 36 | } 37 | 38 | public class layout { 39 | public const int main = 0x456; 40 | } 41 | 42 | public class strings { 43 | public const int first_string = 0xabc; 44 | public const int second_string = 0xbcd; 45 | } 46 | } 47 | 48 | You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main 49 | to reference the layout/main.xml file, or Resource.strings.first_string to reference the first 50 | string in the dictionary file values/strings.xml. 51 | -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/icebeam7/Store/6869c23cafb73fabb84ead5c5107627226b33a7f/MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/icebeam7/Store/6869c23cafb73fabb84ead5c5107627226b33a7f/MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/drawable-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/icebeam7/Store/6869c23cafb73fabb84ead5c5107627226b33a7f/MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/drawable-xxhdpi/icon.png -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/icebeam7/Store/6869c23cafb73fabb84ead5c5107627226b33a7f/MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/drawable/icon.png -------------------------------------------------------------------------------- /MobileStore/MyStore.CustomersApp/MyStore.CustomersApp.Android/Resources/layout/Main.axml: -------------------------------------------------------------------------------- 1 |  2 | 3 |