├── LICENSE ├── README.md ├── ShoppingAPI ├── App_Start │ ├── AutofacWebapiConfig.cs │ ├── Bootstrapper.cs │ ├── BundleConfig.cs │ ├── FilterConfig.cs │ ├── RouteConfig.cs │ └── WebApiConfig.cs ├── Areas │ └── HelpPage │ │ ├── ApiDescriptionExtensions.cs │ │ ├── App_Start │ │ └── HelpPageConfig.cs │ │ ├── Controllers │ │ └── HelpController.cs │ │ ├── HelpPage.css │ │ ├── HelpPageAreaRegistration.cs │ │ ├── HelpPageConfigurationExtensions.cs │ │ ├── ModelDescriptions │ │ ├── CollectionModelDescription.cs │ │ ├── ComplexTypeModelDescription.cs │ │ ├── DictionaryModelDescription.cs │ │ ├── EnumTypeModelDescription.cs │ │ ├── EnumValueDescription.cs │ │ ├── IModelDocumentationProvider.cs │ │ ├── KeyValuePairModelDescription.cs │ │ ├── ModelDescription.cs │ │ ├── ModelDescriptionGenerator.cs │ │ ├── ModelNameAttribute.cs │ │ ├── ModelNameHelper.cs │ │ ├── ParameterAnnotation.cs │ │ ├── ParameterDescription.cs │ │ └── SimpleTypeModelDescription.cs │ │ ├── Models │ │ └── HelpPageApiModel.cs │ │ ├── SampleGeneration │ │ ├── HelpPageSampleGenerator.cs │ │ ├── HelpPageSampleKey.cs │ │ ├── ImageSample.cs │ │ ├── InvalidSample.cs │ │ ├── ObjectGenerator.cs │ │ ├── SampleDirection.cs │ │ └── TextSample.cs │ │ ├── Views │ │ ├── Help │ │ │ ├── Api.cshtml │ │ │ ├── DisplayTemplates │ │ │ │ ├── ApiGroup.cshtml │ │ │ │ ├── CollectionModelDescription.cshtml │ │ │ │ ├── ComplexTypeModelDescription.cshtml │ │ │ │ ├── DictionaryModelDescription.cshtml │ │ │ │ ├── EnumTypeModelDescription.cshtml │ │ │ │ ├── HelpPageApiModel.cshtml │ │ │ │ ├── ImageSample.cshtml │ │ │ │ ├── InvalidSample.cshtml │ │ │ │ ├── KeyValuePairModelDescription.cshtml │ │ │ │ ├── ModelDescriptionLink.cshtml │ │ │ │ ├── Parameters.cshtml │ │ │ │ ├── Samples.cshtml │ │ │ │ ├── SimpleTypeModelDescription.cshtml │ │ │ │ └── TextSample.cshtml │ │ │ ├── Index.cshtml │ │ │ └── ResourceModel.cshtml │ │ ├── Shared │ │ │ └── _Layout.cshtml │ │ ├── Web.config │ │ └── _ViewStart.cshtml │ │ └── XmlDocumentationProvider.cs ├── Common │ ├── Email.cs │ └── EmailSender.cs ├── Configuration │ ├── AddressConfiguration.cs │ ├── CategoryConfiguration.cs │ ├── EntityBaseConfiguration.cs │ ├── MyorderConfiguration.cs │ ├── PreviewImageConfiguration.cs │ ├── ProductConfiguration.cs │ ├── RecentConfiguration.cs │ ├── ReviewConfiguration.cs │ ├── ReviewImageConfiguration.cs │ ├── SubcategoryConfiguration.cs │ ├── UserCardConfiguration.cs │ ├── UserCartConfiguration.cs │ ├── UserConfiguration.cs │ └── UserWishlistConfiguration.cs ├── Content │ ├── Site.css │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ └── bootstrap.min.css.map ├── Controllers │ ├── CategoryController.cs │ ├── HomeController.cs │ ├── ProductController.cs │ ├── UserController.cs │ └── ValuesController.cs ├── Database │ └── ShoppingContext.cs ├── Global.asax ├── Global.asax.cs ├── Mappings │ ├── DomainToModelMappingProfile.cs │ ├── MapperConfig.cs │ └── ModelToDomainMappingProfile.cs ├── Migrations │ └── Configuration.cs ├── Models │ ├── Address.cs │ ├── Category.cs │ ├── MyOrder.cs │ ├── Payment.cs │ ├── PreviewImage.cs │ ├── Product.cs │ ├── Review.cs │ ├── ReviewImage.cs │ ├── Status.cs │ ├── SubCategory.cs │ ├── User.cs │ ├── UserCart.cs │ └── UserWishlist.cs ├── Properties │ └── AssemblyInfo.cs ├── Repositories │ ├── IRepositoryDataAccessLayer.cs │ └── RepositoryDataAccessLayer.cs ├── Scripts │ ├── bootstrap.js │ ├── bootstrap.min.js │ └── modernizr-2.8.3.js ├── Service │ └── AuthenticationService.cs ├── ShoppingAPI.csproj ├── ShoppingAPI.sln ├── Views │ ├── Home │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ └── _Layout.cshtml │ ├── Web.config │ └── _ViewStart.cshtml ├── Web.Debug.config ├── Web.Release.config ├── Web.config ├── favicon.ico └── packages.config ├── ShoppingApp.Entities ├── AddressEntity.cs ├── BannerEntity.cs ├── CategoryEntity.cs ├── MyOrdersEntity.cs ├── PaymentEntity.cs ├── PreviewImageEntity.cs ├── ProductEntity.cs ├── RecentEntity.cs ├── ReviewEntity.cs ├── ReviewImageEntity.cs ├── ShoppingApp.Entities.csproj ├── SubCategoryEntity.cs ├── UserCardEntity.cs ├── UserCartEntity.cs ├── UserEntity.cs └── UserWishlistEntity.cs ├── ShoppingCart.sln ├── ShoppingCart ├── ShoppingCart.Android │ ├── Assets │ │ ├── AboutAssets.txt │ │ ├── Montserrat-Bold.ttf │ │ ├── Montserrat-Medium.ttf │ │ ├── Montserrat-Regular.ttf │ │ ├── Montserrat-SemiBold.ttf │ │ └── UIFontIcons.ttf │ ├── DependencyService │ │ ├── AndroidLocalStorage.cs │ │ └── CloseApplication.cs │ ├── MainActivity.cs │ ├── Properties │ │ ├── AndroidManifest.xml │ │ └── AssemblyInfo.cs │ ├── Renderers │ │ ├── BorderlessEditorRenderer.cs │ │ └── BorderlessEntryRenderer.cs │ ├── Resources │ │ ├── AboutResources.txt │ │ ├── Resource.designer.cs │ │ ├── drawable-hdpi │ │ │ └── SplashScreen.png │ │ ├── drawable-land-hdpi │ │ │ └── SplashScreen.png │ │ ├── drawable-land-mdpi │ │ │ └── SplashScreen.png │ │ ├── drawable-land-xhdpi │ │ │ └── SplashScreen.png │ │ ├── drawable-land-xxhdpi │ │ │ └── SplashScreen.png │ │ ├── drawable-land-xxxhdpi │ │ │ └── SplashScreen.png │ │ ├── drawable-land │ │ │ └── SplashScreen.png │ │ ├── drawable-mdpi │ │ │ └── SplashScreen.png │ │ ├── drawable-xhdpi │ │ │ └── SplashScreen.png │ │ ├── drawable-xxhdpi │ │ │ └── SplashScreen.png │ │ ├── drawable-xxxhdpi │ │ │ └── SplashScreen.png │ │ ├── drawable │ │ │ ├── Card.png │ │ │ ├── Icon.png │ │ │ ├── Pin.png │ │ │ └── SplashScreen.png │ │ ├── layout │ │ │ ├── Tabbar.xml │ │ │ └── Toolbar.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── icon.xml │ │ │ └── icon_round.xml │ │ ├── mipmap-hdpi │ │ │ ├── icon.png │ │ │ └── launcher_foreground.png │ │ ├── mipmap-mdpi │ │ │ ├── icon.png │ │ │ └── launcher_foreground.png │ │ ├── mipmap-xhdpi │ │ │ ├── icon.png │ │ │ └── launcher_foreground.png │ │ ├── mipmap-xxhdpi │ │ │ ├── icon.png │ │ │ └── launcher_foreground.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── icon.png │ │ │ └── launcher_foreground.png │ │ ├── values-v21 │ │ │ ├── splash.xml │ │ │ └── styles.xml │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── splash.xml │ │ │ └── styles.xml │ ├── ShoppingCart.Android.csproj │ └── SplashScreenActivity.cs ├── ShoppingCart.UWP │ ├── App.xaml │ ├── App.xaml.cs │ ├── Assets │ │ ├── LargeTile.scale-100.png │ │ ├── LargeTile.scale-200.png │ │ ├── LargeTile.scale-400.png │ │ ├── Montserrat-Bold.ttf │ │ ├── Montserrat-Medium.ttf │ │ ├── Montserrat-Regular.ttf │ │ ├── Montserrat-SemiBold.ttf │ │ ├── SmallTile.scale-100.png │ │ ├── SmallTile.scale-200.png │ │ ├── SmallTile.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-200.png │ │ ├── Square150x150Logo.scale-400.png │ │ ├── Square44x44Logo.altform-unplated_targetsize-16.png │ │ ├── Square44x44Logo.altform-unplated_targetsize-256.png │ │ ├── Square44x44Logo.altform-unplated_targetsize-48.png │ │ ├── Square44x44Logo.scale-100.png │ │ ├── Square44x44Logo.scale-200.png │ │ ├── Square44x44Logo.scale-400.png │ │ ├── Square44x44Logo.targetsize-16.png │ │ ├── Square44x44Logo.targetsize-256.png │ │ ├── Square44x44Logo.targetsize-48.png │ │ ├── StoreLogo.backup.png │ │ ├── StoreLogo.scale-100.png │ │ ├── StoreLogo.scale-200.png │ │ ├── StoreLogo.scale-400.png │ │ ├── UIFontIcons.ttf │ │ ├── Wide310x150Logo.scale-100.png │ │ ├── Wide310x150Logo.scale-200.png │ │ └── Wide310x150Logo.scale-400.png │ ├── DependencyService │ │ ├── CloseApplication.cs │ │ └── WindowsLocalStorage.cs │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── Package.appxmanifest │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Default.rd.xml │ ├── Renderers │ │ ├── BorderlessEditorRenderer.cs │ │ └── BorderlessEntryRenderer.cs │ ├── ShoppingCart.UWP.csproj │ └── scale-100 │ │ ├── Card.png │ │ ├── Icon.png │ │ └── Pin.png ├── ShoppingCart.iOS │ ├── AppDelegate.cs │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── 1024.png │ │ │ ├── 120-1.png │ │ │ ├── 120.png │ │ │ ├── 152.png │ │ │ ├── 167.png │ │ │ ├── 180.png │ │ │ ├── 20.png │ │ │ ├── 29.png │ │ │ ├── 40-1.png │ │ │ ├── 40-2.png │ │ │ ├── 40.png │ │ │ ├── 58-1.png │ │ │ ├── 58.png │ │ │ ├── 60.png │ │ │ ├── 76.png │ │ │ ├── 80-1.png │ │ │ ├── 80.png │ │ │ ├── 87.png │ │ │ └── Contents.json │ │ └── LaunchImages.launchimage │ │ │ └── Contents.json │ ├── DependencyService │ │ ├── CloseApplication.cs │ │ └── IOSLocalStorage.cs │ ├── Entitlements.plist │ ├── Info.plist │ ├── Main.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Renderers │ │ ├── BorderlessEntryRenderer.cs │ │ └── FrameShadowRenderer.cs │ ├── Resources │ │ ├── Card.png │ │ ├── Default-568h@2x.png │ │ ├── Default-Portrait.png │ │ ├── Default-Portrait@2x.png │ │ ├── Default.png │ │ ├── Default@2x.png │ │ ├── Icon.png │ │ ├── LaunchScreen.storyboard │ │ ├── Montserrat-Bold.ttf │ │ ├── Montserrat-Medium.ttf │ │ ├── Montserrat-Regular.ttf │ │ ├── Montserrat-SemiBold.ttf │ │ ├── Pin.png │ │ ├── Splash.png │ │ ├── Splash@2x.png │ │ ├── Splash@3x.png │ │ ├── Splash~ipad.png │ │ └── UIFontIcons.ttf │ └── ShoppingCart.iOS.csproj └── ShoppingCart │ ├── App.xaml │ ├── App.xaml.cs │ ├── AssemblyInfo.cs │ ├── Behaviors │ ├── BorderlessEntryCVVBehavior.cs │ ├── Catalog │ │ ├── CartBehavior.cs │ │ └── ListViewBehavior.cs │ ├── Detail │ │ └── SegmentedControlBehavior.cs │ ├── Onboarding │ │ └── SfRotatorBehavior.cs │ ├── SfComboBoxDropDownBehavior.cs │ ├── SfListViewExtendHeightBehavior.cs │ ├── SfListViewTapBehavior.cs │ └── SfPullToRefreshBehavior.cs │ ├── Commands │ └── DelegateCommand.cs │ ├── Controls │ ├── BorderlessEditor.cs │ ├── BorderlessEntry.cs │ ├── CustomShadowFrame.cs │ ├── SVGImage.cs │ └── TitleView.cs │ ├── Converters │ ├── BooleanToColorConverter.cs │ ├── BooleanToStringConverter.cs │ ├── DynamicResourceToColorConverter.cs │ ├── ErrorValidationColorConverter.cs │ ├── IntToBoolConverter.cs │ ├── IntToStringConverter.cs │ ├── IntToThicknessConverter.cs │ ├── StringToBooleanConverter.cs │ ├── StringToColorConverter.cs │ └── VisibilityConverter.cs │ ├── DataService │ ├── CartDataService.cs │ ├── CatalogDataService.cs │ ├── CategoryDataService.cs │ ├── ICartDataService.cs │ ├── ICatalogDataService.cs │ ├── ICategoryDataService.cs │ ├── ILocalStorage.cs │ ├── IMyOrdersDataService.cs │ ├── IProductHomeDataService.cs │ ├── IUserDataService.cs │ ├── IWishlistDataService.cs │ ├── MyOrdersDataService.cs │ ├── ProductHomeDataService.cs │ ├── SQLiteDatabase.cs │ ├── TypeLocator.cs │ ├── UserDataService.cs │ └── WishlistDataService.cs │ ├── DependencyServices │ └── ICloseApplication.cs │ ├── Helpers │ ├── PaymentTemplateSelector.cs │ └── RTLHelper.cs │ ├── Images │ ├── ChooseGradient.svg │ ├── ConfirmGradient.svg │ ├── DeliverGradient.svg │ ├── EmptyCart.svg │ ├── NoInternet.svg │ ├── NoItem.svg │ └── PaymentSuccess.svg │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── Mapping │ ├── DomainToModelMappingProfile.cs │ ├── MapperConfig.cs │ └── ModelToDomainMappingProfile.cs │ ├── MockData │ └── ecommerce.json │ ├── MockDataService │ ├── CartDataService.cs │ ├── CatalogDataService.cs │ ├── CategoryDataService.cs │ ├── MyOrdersDataService.cs │ ├── ProductHomeDataService.cs │ ├── TypeLocator.cs │ ├── UserDataService.cs │ └── WishlistDataService.cs │ ├── Models │ ├── AboutUsModel.cs │ ├── Address.cs │ ├── Banner.cs │ ├── Boarding.cs │ ├── Category.cs │ ├── Customer.cs │ ├── History │ │ └── Orders.cs │ ├── HomePageMasterMenuItem.cs │ ├── LocationMarker.cs │ ├── Payment.cs │ ├── PreviewImage.cs │ ├── Product.cs │ ├── Review.cs │ ├── ReviewImage.cs │ ├── Status.cs │ ├── SubCategory.cs │ ├── User.cs │ ├── UserCard.cs │ ├── UserCart.cs │ └── UserInfo.cs │ ├── ShoppingCart.csproj │ ├── Themes │ ├── LightTheme.xaml │ └── LightTheme.xaml.cs │ ├── ViewModels │ ├── AboutUs │ │ └── AboutUsViewModel.cs │ ├── BaseViewModel.cs │ ├── Bookmarks │ │ ├── CartPageViewModel.cs │ │ └── WishlistViewModel.cs │ ├── Catalog │ │ ├── CatalogPageViewModel.cs │ │ ├── CategoryPageViewModel.cs │ │ └── ProductHomePageViewModel.cs │ ├── ContactUs │ │ └── ContactUsViewModel.cs │ ├── Detail │ │ └── DetailPageViewModel.cs │ ├── ErrorandEmpty │ │ ├── EmptyCartPageViewModel.cs │ │ └── NoInternetConnectionPageViewModel.cs │ ├── Forms │ │ ├── ForgotPasswordViewModel.cs │ │ ├── LoginPageViewModel.cs │ │ ├── LoginViewModel.cs │ │ └── SignUpPageViewModel.cs │ ├── History │ │ └── MyOrdersPageViewModel.cs │ ├── Home │ │ └── HomePageMasterViewModel.cs │ ├── Onboarding │ │ └── OnBoardingAnimationViewModel.cs │ ├── ReviewsandRatings │ │ └── ReviewPageViewModel.cs │ └── Transaction │ │ ├── CheckoutPageViewModel.cs │ │ └── PaymentViewmodel.cs │ └── Views │ ├── AboutUs │ ├── AboutUsSimplePage.xaml │ ├── AboutUsSimplePage.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs │ ├── Bookmarks │ ├── CartPage.xaml │ ├── CartPage.xaml.cs │ ├── PriceDetailView.xaml │ ├── PriceDetailView.xaml.cs │ ├── Styles.xaml │ ├── Styles.xaml.cs │ ├── WishlistPage.xaml │ └── WishlistPage.xaml.cs │ ├── Catalog │ ├── CatalogListPage.xaml │ ├── CatalogListPage.xaml.cs │ ├── CategoryTilePage.xaml │ ├── CategoryTilePage.xaml.cs │ ├── ProductHomePage.xaml │ ├── ProductHomePage.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs │ ├── ContactUs │ ├── ContactUsPage.xaml │ ├── ContactUsPage.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs │ ├── Detail │ ├── DetailPage.xaml │ ├── DetailPage.xaml.cs │ ├── FeedbackView.xaml │ ├── FeedbackView.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs │ ├── ErrorandEmpty │ ├── EmptyCartPage.xaml │ ├── EmptyCartPage.xaml.cs │ ├── EmptyView.xaml │ ├── EmptyView.xaml.cs │ ├── NoInternetConnectionPage.xaml │ ├── NoInternetConnectionPage.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs │ ├── Forms │ ├── SimpleEmailEntry.xaml │ ├── SimpleEmailEntry.xaml.cs │ ├── SimpleForgotPasswordPage.xaml │ ├── SimpleForgotPasswordPage.xaml.cs │ ├── SimpleLoginPage.xaml │ ├── SimpleLoginPage.xaml.cs │ ├── SimpleSignUpPage.xaml │ ├── SimpleSignUpPage.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs │ ├── History │ ├── MyOrdersPage.xaml │ ├── MyOrdersPage.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs │ ├── Home │ ├── HomePage.xaml │ ├── HomePage.xaml.cs │ ├── HomePageMaster.xaml │ ├── HomePageMaster.xaml.cs │ ├── HomeTabbedPage.xaml │ ├── HomeTabbedPage.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs │ ├── Onboarding │ ├── OnBoardingAnimationPage.xaml │ ├── OnBoardingAnimationPage.xaml.cs │ ├── Styles.xaml │ ├── Styles.xaml.cs │ ├── WalkthroughItemPage.xaml │ └── WalkthroughItemPage.xaml.cs │ ├── ReviewsandRatings │ ├── ReviewPage.xaml │ ├── ReviewPage.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs │ └── Transaction │ ├── CheckoutPage.xaml │ ├── CheckoutPage.xaml.cs │ ├── DeliveryView.xaml │ ├── DeliveryView.xaml.cs │ ├── PaymentSuccessPage.xaml │ ├── PaymentSuccessPage.xaml.cs │ ├── PaymentView.xaml │ ├── PaymentView.xaml.cs │ ├── PriceDetailView.xaml │ ├── PriceDetailView.xaml.cs │ ├── Styles.xaml │ └── Styles.xaml.cs └── images ├── EmptyWishList_Android.png ├── EmptyWishList_iOS.png ├── ProductCartScreen_Android.png ├── ProductCartScreen_iOS.png ├── ProductDetailScreen_Android.png ├── ProductDetailScreen_iOS.png ├── ProductHomeScreen_Android.png ├── ProductHomeScreen_UWP.png └── ProductHomeScreen_iOS.png /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Microsoft Corporation. All rights reserved. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE -------------------------------------------------------------------------------- /ShoppingAPI/App_Start/Bootstrapper.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Http; 2 | using ShoppingAPI.Mappings; 3 | 4 | namespace ShoppingAPI.App_Start 5 | { 6 | /// 7 | /// The Class bootstrapper which prepares/configures a group of classes/objects or an entire API for your specific 8 | /// needs and use. 9 | /// 10 | public class Bootstrapper 11 | { 12 | /// 13 | /// Initializes the web api configuration. 14 | /// 15 | public static void Run() 16 | { 17 | AutofacWebapiConfig.Initialize(GlobalConfiguration.Configuration); 18 | MapperConfig.Configure(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingAPI/App_Start/BundleConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Optimization; 2 | 3 | namespace ShoppingAPI 4 | { 5 | /// 6 | /// The Class BundleConfig is nothing more than bundle configuration moved to separate file. 7 | /// 8 | public class BundleConfig 9 | { 10 | /// 11 | /// Bundles register. 12 | /// 13 | /// 14 | // For more information on bundling, visit https://go.microsoft.com/fwlink/?LinkId=301862 15 | public static void RegisterBundles(BundleCollection bundles) 16 | { 17 | bundles.Add(new ScriptBundle("~/bundles/jquery").Include( 18 | "~/Scripts/jquery-{version}.js")); 19 | 20 | // Use the development version of Modernizr to develop with and learn from. Then, when you're 21 | // ready for production, use the build tool at https://modernizr.com to pick only the tests you need. 22 | bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( 23 | "~/Scripts/modernizr-*")); 24 | 25 | bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( 26 | "~/Scripts/bootstrap.js")); 27 | 28 | bundles.Add(new StyleBundle("~/Content/css").Include( 29 | "~/Content/bootstrap.css", 30 | "~/Content/site.css")); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /ShoppingAPI/App_Start/FilterConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Mvc; 2 | 3 | namespace ShoppingAPI 4 | { 5 | /// 6 | /// This class is responsible for filter configuration. 7 | /// 8 | public class FilterConfig 9 | { 10 | /// 11 | /// Registers the global filters. 12 | /// 13 | /// 14 | public static void RegisterGlobalFilters(GlobalFilterCollection filters) 15 | { 16 | filters.Add(new HandleErrorAttribute()); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /ShoppingAPI/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Mvc; 2 | using System.Web.Routing; 3 | 4 | namespace ShoppingAPI 5 | { 6 | /// 7 | /// This class is responsible for route configuration. 8 | /// 9 | public class RouteConfig 10 | { 11 | /// 12 | /// Registers the routes. 13 | /// 14 | /// 15 | public static void RegisterRoutes(RouteCollection routes) 16 | { 17 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 18 | 19 | routes.MapRoute( 20 | "Default", 21 | "{controller}/{action}/{id}", 22 | new {controller = "Home", action = "Index", id = UrlParameter.Optional} 23 | ); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /ShoppingAPI/App_Start/WebApiConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Http; 2 | using Newtonsoft.Json; 3 | 4 | namespace ShoppingAPI 5 | { 6 | /// 7 | /// This class is responsible for Web Api configuration. 8 | /// 9 | public static class WebApiConfig 10 | { 11 | /// 12 | /// Register the web configuration. 13 | /// 14 | /// 15 | public static void Register(HttpConfiguration config) 16 | { 17 | // Web API configuration and services 18 | 19 | // Web API routes 20 | config.MapHttpAttributeRoutes(); 21 | 22 | config.Routes.MapHttpRoute( 23 | "DefaultApi", 24 | "api/{controller}/{id}", 25 | new {id = RouteParameter.Optional} 26 | ); 27 | config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/HelpPageAreaRegistration.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Http; 2 | using System.Web.Mvc; 3 | 4 | namespace ShoppingAPI.Areas.HelpPage 5 | { 6 | /// 7 | /// This class is responsible for help page area registration. 8 | /// 9 | public class HelpPageAreaRegistration : AreaRegistration 10 | { 11 | /// 12 | /// Gets the area name value. 13 | /// 14 | public override string AreaName => "HelpPage"; 15 | 16 | /// 17 | /// Register the area. 18 | /// 19 | /// 20 | public override void RegisterArea(AreaRegistrationContext context) 21 | { 22 | context.MapRoute( 23 | "HelpPage_Default", 24 | "Help/{action}/{apiId}", 25 | new {controller = "Help", action = "Index", apiId = UrlParameter.Optional}); 26 | 27 | HelpPageConfig.Register(GlobalConfiguration.Configuration); 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/CollectionModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | { 3 | /// 4 | /// This class is responsible for CollectionModelDescription. 5 | /// 6 | public class CollectionModelDescription : ModelDescription 7 | { 8 | /// 9 | /// Gets or sets the element description. 10 | /// 11 | public ModelDescription ElementDescription { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/ComplexTypeModelDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | 3 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// This class is responsible for ComplexTypeModelDescription. 7 | /// 8 | public class ComplexTypeModelDescription : ModelDescription 9 | { 10 | /// 11 | /// Initialize the complex type model description. 12 | /// 13 | public ComplexTypeModelDescription() 14 | { 15 | Properties = new Collection(); 16 | } 17 | 18 | /// 19 | /// Gets the paramer description collection. 20 | /// 21 | public Collection Properties { get; } 22 | } 23 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/DictionaryModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | { 3 | /// 4 | /// This class is responsible for dictionary model description. 5 | /// 6 | public class DictionaryModelDescription : KeyValuePairModelDescription 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/EnumTypeModelDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | 3 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// This class is responsible for dictionary model description. 7 | /// 8 | public class EnumTypeModelDescription : ModelDescription 9 | { 10 | /// 11 | /// Initializes the enum type model description. 12 | /// 13 | public EnumTypeModelDescription() 14 | { 15 | Values = new Collection(); 16 | } 17 | 18 | /// 19 | /// Gets the EnumValueDescription collection. 20 | /// 21 | public Collection Values { get; } 22 | } 23 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/EnumValueDescription.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | { 3 | /// 4 | /// This class is responsible for enum value description. 5 | /// 6 | public class EnumValueDescription 7 | { 8 | /// 9 | /// Gets or sets the documentation value. 10 | /// 11 | public string Documentation { get; set; } 12 | 13 | /// 14 | /// Gets or sets the name value. 15 | /// 16 | public string Name { get; set; } 17 | 18 | /// 19 | /// Gets or sets the value. 20 | /// 21 | public string Value { get; set; } 22 | } 23 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/IModelDocumentationProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | 4 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 5 | { 6 | /// 7 | /// This interface is responsible for ModelDocumentationProvider. 8 | /// 9 | public interface IModelDocumentationProvider 10 | { 11 | /// 12 | /// Gets the documentation based on MemberInfo. 13 | /// 14 | /// 15 | /// 16 | string GetDocumentation(MemberInfo member); 17 | 18 | /// 19 | /// Gets the documentation based on Type. 20 | /// 21 | /// 22 | /// 23 | string GetDocumentation(Type type); 24 | } 25 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/KeyValuePairModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | { 3 | /// 4 | /// This class is responsible for KeyValuePairModelDescription. 5 | /// 6 | public class KeyValuePairModelDescription : ModelDescription 7 | { 8 | /// 9 | /// Gets or sets the KeyModelDescription value. 10 | /// 11 | public ModelDescription KeyModelDescription { get; set; } 12 | 13 | /// 14 | /// Gets or sets the ValueModelDescription value. 15 | /// 16 | public ModelDescription ValueModelDescription { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/ModelDescription.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// Describes a type model. 7 | /// 8 | public abstract class ModelDescription 9 | { 10 | /// 11 | /// Gets or sets the Documentation value. 12 | /// 13 | public string Documentation { get; set; } 14 | 15 | /// 16 | /// Gets or sets the ModelType value. 17 | /// 18 | public Type ModelType { get; set; } 19 | 20 | /// 21 | /// Gets or sets the Name value. 22 | /// 23 | public string Name { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/ModelNameAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// Use this attribute to change the name of the generated for a type. 7 | /// 8 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum, Inherited = false)] 9 | public sealed class ModelNameAttribute : Attribute 10 | { 11 | /// 12 | /// Initializes the model name attribute. 13 | /// 14 | /// 15 | public ModelNameAttribute(string name) 16 | { 17 | Name = name; 18 | } 19 | 20 | /// 21 | /// Gets the name value. 22 | /// 23 | public string Name { get; } 24 | } 25 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/ParameterAnnotation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// This class is responsible for ParameterAnnotation. 7 | /// 8 | public class ParameterAnnotation 9 | { 10 | /// 11 | /// Gets or sets the annotation attribute. 12 | /// 13 | public Attribute AnnotationAttribute { get; set; } 14 | 15 | /// 16 | /// Gets or sets the documentation. 17 | /// 18 | public string Documentation { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/ParameterDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | 3 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// This class is responsible for ParameterDescription. 7 | /// 8 | public class ParameterDescription 9 | { 10 | /// 11 | /// initialize the parameter description. 12 | /// 13 | public ParameterDescription() 14 | { 15 | Annotations = new Collection(); 16 | } 17 | 18 | /// 19 | /// Gets the ParameterAnnotation collection. 20 | /// 21 | public Collection Annotations { get; } 22 | 23 | /// 24 | /// Gets or sets the documentation. 25 | /// 26 | public string Documentation { get; set; } 27 | 28 | /// 29 | /// Gets or sets the name. 30 | /// 31 | public string Name { get; set; } 32 | 33 | /// 34 | /// Gets or sets the type description value. 35 | /// 36 | public ModelDescription TypeDescription { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/ModelDescriptions/SimpleTypeModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | { 3 | /// 4 | /// This class is responsible for SimpleTypeModelDescription. 5 | /// 6 | public class SimpleTypeModelDescription : ModelDescription 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/SampleGeneration/SampleDirection.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Areas.HelpPage 2 | { 3 | /// 4 | /// Indicates whether the sample is used for request or response 5 | /// 6 | public enum SampleDirection 7 | { 8 | Request = 0, 9 | Response 10 | } 11 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/Api.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using ShoppingAPI.Areas.HelpPage.Models 3 | @model HelpPageApiModel 4 | 5 | @{ 6 | var description = Model.ApiDescription; 7 | ViewBag.Title = description.HttpMethod.Method + " " + description.RelativePath; 8 | } 9 | 10 | 11 |
12 | 19 |
20 | @Html.DisplayForModel() 21 |
22 |
23 | -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/ApiGroup.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using System.Web.Http.Controllers 3 | @using System.Web.Http.Description 4 | @using ShoppingAPI.Areas.HelpPage 5 | @using ShoppingAPI.Areas.HelpPage.Models 6 | @model IGrouping 7 | 8 | @{ 9 | var controllerDocumentation = ViewBag.DocumentationProvider != null ? 10 | ViewBag.DocumentationProvider.GetDocumentation(Model.Key) : 11 | null; 12 | } 13 | 14 |

@Model.Key.ControllerName

15 | @if (!String.IsNullOrEmpty(controllerDocumentation)) 16 | { 17 |

@controllerDocumentation

18 | } 19 | 20 | 21 | 22 | 23 | 24 | @foreach (var api in Model) 25 | { 26 | 27 | 28 | 38 | 39 | } 40 | 41 |
APIDescription
@api.HttpMethod.Method @api.RelativePath 29 | @if (api.Documentation != null) 30 | { 31 |

@api.Documentation

32 | } 33 | else 34 | { 35 |

No documentation available.

36 | } 37 |
-------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/CollectionModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | @model CollectionModelDescription 3 | @if (Model.ElementDescription is ComplexTypeModelDescription) 4 | { 5 | @Html.DisplayFor(m => m.ElementDescription) 6 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/ComplexTypeModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | @model ComplexTypeModelDescription 3 | @Html.DisplayFor(m => m.Properties, "Parameters") -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/DictionaryModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | @model DictionaryModelDescription 3 | Dictionary of @Html.DisplayFor(m => Model.KeyModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.KeyModelDescription }) [key] 4 | and @Html.DisplayFor(m => Model.ValueModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.ValueModelDescription }) [value] -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/EnumTypeModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | @model EnumTypeModelDescription 3 | 4 |

Possible enumeration values:

5 | 6 | 7 | 8 | 9 | 10 | 11 | @foreach (EnumValueDescription value in Model.Values) 12 | { 13 | 14 | 15 | 18 | 21 | 22 | } 23 | 24 |
NameValueDescription
@value.Name 16 |

@value.Value

17 |
19 |

@value.Documentation

20 |
-------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/ImageSample.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage 2 | @model ImageSample 3 | 4 | -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/InvalidSample.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage 2 | @model InvalidSample 3 | 4 | @if (HttpContext.Current.IsDebuggingEnabled) 5 | { 6 |
7 |

@Model.ErrorMessage

8 |
9 | } 10 | else 11 | { 12 |

Sample not available.

13 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/KeyValuePairModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | @model KeyValuePairModelDescription 3 | Pair of @Html.DisplayFor(m => Model.KeyModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.KeyModelDescription }) [key] 4 | and @Html.DisplayFor(m => Model.ValueModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.ValueModelDescription }) [value] -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/ModelDescriptionLink.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | @model Type 3 | @{ 4 | ModelDescription modelDescription = ViewBag.modelDescription; 5 | if (modelDescription is ComplexTypeModelDescription || modelDescription is EnumTypeModelDescription) 6 | { 7 | if (Model == typeof(Object)) 8 | { 9 | @:Object 10 | } 11 | else 12 | { 13 | @Html.ActionLink(modelDescription.Name, "ResourceModel", "Help", new { modelName = modelDescription.Name }, null) 14 | } 15 | } 16 | else if (modelDescription is CollectionModelDescription) 17 | { 18 | var collectionDescription = modelDescription as CollectionModelDescription; 19 | var elementDescription = collectionDescription.ElementDescription; 20 | @:Collection of @Html.DisplayFor(m => elementDescription.ModelType, "ModelDescriptionLink", new { modelDescription = elementDescription }) 21 | } 22 | else 23 | { 24 | @Html.DisplayFor(m => modelDescription) 25 | } 26 | } -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/Samples.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Net.Http.Headers 2 | @model Dictionary 3 | 4 | @{ 5 | // Group the samples into a single tab if they are the same. 6 | Dictionary samples = Model.GroupBy(pair => pair.Value).ToDictionary( 7 | pair => String.Join(", ", pair.Select(m => m.Key.ToString()).ToArray()), 8 | pair => pair.Key); 9 | var mediaTypes = samples.Keys; 10 | } 11 |
12 | @foreach (var mediaType in mediaTypes) 13 | { 14 |

@mediaType

15 |
16 | Sample: 17 | @{ 18 | var sample = samples[mediaType]; 19 | if (sample == null) 20 | { 21 |

Sample not available.

22 | } 23 | else 24 | { 25 | @Html.DisplayFor(s => sample); 26 | } 27 | } 28 |
29 | } 30 |
-------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/SimpleTypeModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage.ModelDescriptions 2 | @model SimpleTypeModelDescription 3 | @Model.Documentation -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/DisplayTemplates/TextSample.cshtml: -------------------------------------------------------------------------------- 1 | @using ShoppingAPI.Areas.HelpPage 2 | @model TextSample 3 | 4 |
5 | @Model.Text
6 | 
-------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/Index.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using System.Web.Http.Controllers 3 | @using System.Web.Http.Description 4 | @using System.Collections.ObjectModel 5 | @using ShoppingAPI.Areas.HelpPage.Models 6 | @model Collection 7 | 8 | @{ 9 | ViewBag.Title = "ASP.NET Web API Help Page"; 10 | 11 | // Group APIs by controller 12 | ILookup apiGroups = Model.ToLookup(api => api.ActionDescriptor.ControllerDescriptor); 13 | } 14 | 15 | 16 |
17 |
18 |
19 |

@ViewBag.Title

20 |
21 |
22 |
23 |
24 | 32 |
33 | @foreach (var group in apiGroups) 34 | { 35 | @Html.DisplayFor(m => group, "ApiGroup") 36 | } 37 |
38 |
39 | -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Help/ResourceModel.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using ShoppingAPI.Areas.HelpPage.ModelDescriptions 3 | @model ModelDescription 4 | 5 | 6 |
7 | 14 |

@Model.Name

15 |

@Model.Documentation

16 |
17 | @Html.DisplayFor(m => Model) 18 |
19 |
20 | -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | @ViewBag.Title 7 | @RenderSection("scripts", required: false) 8 | 9 | 10 | @RenderBody() 11 | 12 | -------------------------------------------------------------------------------- /ShoppingAPI/Areas/HelpPage/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | // Change the Layout path below to blend the look and feel of the help page with your existing web pages. 3 | Layout = "~/Areas/HelpPage/Views/Shared/_Layout.cshtml"; 4 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/AddressConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the address configuration. 7 | /// 8 | public class AddressConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the AddressConfiguration. 12 | /// 13 | public AddressConfiguration() 14 | { 15 | Property(a => a.UserId).IsOptional(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/CategoryConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the category configuration. 7 | /// 8 | public class CategoryConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the category configuration. 12 | /// 13 | public CategoryConfiguration() 14 | { 15 | Property(a => a.Name).IsRequired().HasMaxLength(50); 16 | 17 | HasMany(a => a.SubCategories).WithRequired(b => b.Category).HasForeignKey(c => c.CategoryId); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/EntityBaseConfiguration.cs: -------------------------------------------------------------------------------- 1 | using System.Data.Entity.ModelConfiguration; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the entity base configuration. 7 | /// 8 | /// 9 | public class EntityBaseConfiguration : EntityTypeConfiguration where T : class 10 | { 11 | } 12 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/MyorderConfiguration.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ShoppingApp.Entities; 3 | 4 | namespace ShoppingAPI.Configuration 5 | { 6 | public class MyOrderConfiguration : EntityBaseConfiguration 7 | { 8 | public MyOrderConfiguration() 9 | { 10 | Property(a => a.UserId).IsOptional(); 11 | Property(a => a.ProductId).IsOptional(); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/PreviewImageConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the preview image configuration. 7 | /// 8 | public class PreviewImageConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the preview image configuration. 12 | /// 13 | public PreviewImageConfiguration() 14 | { 15 | Property(a => a.ProductId).IsRequired(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/ProductConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the product configuration. 7 | /// 8 | public class ProductConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the product configuration. 12 | /// 13 | public ProductConfiguration() 14 | { 15 | Property(a => a.UserId).IsOptional(); 16 | Property(a => a.SubCategoryId).IsRequired(); 17 | HasMany(a => a.Reviews).WithOptional(b => b.Product).HasForeignKey(c => c.ProductId); 18 | HasMany(a => a.PreviewImages).WithRequired(b => b.Product).HasForeignKey(c => c.ProductId); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/RecentConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the recent configuration. 7 | /// 8 | public class RecentConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the recent configuration. 12 | /// 13 | public RecentConfiguration() 14 | { 15 | Property(a => a.UserId).IsOptional(); 16 | Property(a => a.ProductId).IsOptional(); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/ReviewConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the review configuration. 7 | /// 8 | public class ReviewConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the review configuration. 12 | /// 13 | public ReviewConfiguration() 14 | { 15 | Property(a => a.UserId).IsOptional(); 16 | Property(a => a.ProductId).IsOptional(); 17 | HasMany(a => a.ReviewImages).WithOptional(b => b.Review).HasForeignKey(c => c.ReviewId); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/ReviewImageConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the review image configuration. 7 | /// 8 | public class ReviewImageConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the review image configuration. 12 | /// 13 | public ReviewImageConfiguration() 14 | { 15 | Property(a => a.ReviewId).IsOptional(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/SubcategoryConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the subcategory configuration. 7 | /// 8 | public class SubcategoryConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the subcategory configuration. 12 | /// 13 | public SubcategoryConfiguration() 14 | { 15 | Property(a => a.CategoryId).IsRequired(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/UserCardConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the user card configuration. 7 | /// 8 | public class UserCardConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the usercard configuration. 12 | /// 13 | public UserCardConfiguration() 14 | { 15 | Property(a => a.UserId).IsOptional(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/UserCartConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the user cart configuration. 7 | /// 8 | public class UserCartConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the user card configuration. 12 | /// 13 | public UserCartConfiguration() 14 | { 15 | Property(a => a.UserId).IsOptional(); 16 | Property(a => a.ProductId).IsOptional(); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/UserConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the user configuration. 7 | /// 8 | public class UserConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the user configuration. 12 | /// 13 | public UserConfiguration() 14 | { 15 | HasMany(a => a.UserCards).WithOptional(b => b.User).HasForeignKey(c => c.UserId); 16 | HasMany(a => a.Address).WithOptional(b => b.User).HasForeignKey(c => c.UserId); 17 | HasMany(a => a.Reviews).WithOptional(b => b.User).HasForeignKey(c => c.UserId); 18 | HasMany(a => a.Products).WithOptional(b => b.User).HasForeignKey(c => c.UserId); 19 | HasMany(a => a.UserWishlists).WithOptional(b => b.User).HasForeignKey(c => c.UserId); 20 | HasMany(a => a.UserCarts).WithOptional(b => b.User).HasForeignKey(c => c.UserId); 21 | HasMany(a => a.Recents).WithOptional(b => b.User).HasForeignKey(c => c.UserId); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /ShoppingAPI/Configuration/UserWishlistConfiguration.cs: -------------------------------------------------------------------------------- 1 | using ShoppingApp.Entities; 2 | 3 | namespace ShoppingAPI.Configuration 4 | { 5 | /// 6 | /// This class is responsible for the user wishlist configuration. 7 | /// 8 | public class UserWishlistConfiguration : EntityBaseConfiguration 9 | { 10 | /// 11 | /// Initializes the user wishlist configuration. 12 | /// 13 | public UserWishlistConfiguration() 14 | { 15 | Property(a => a.UserId).IsOptional(); 16 | Property(a => a.ProductId).IsOptional(); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /ShoppingAPI/Content/Site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-bottom: 20px; 3 | padding-top: 50px; 4 | } 5 | 6 | /* Set padding to keep content from hitting the edges */ 7 | 8 | .body-content { 9 | padding-left: 15px; 10 | padding-right: 15px; 11 | } 12 | 13 | /* Set width on the form input elements since they're 100% wide by default */ 14 | 15 | input, 16 | select, 17 | textarea { max-width: 280px; } -------------------------------------------------------------------------------- /ShoppingAPI/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Mvc; 2 | 3 | namespace ShoppingAPI.Controllers 4 | { 5 | /// 6 | /// This class is responsible for the home controller. 7 | /// 8 | public class HomeController : Controller 9 | { 10 | /// 11 | /// Gets the action result. 12 | /// 13 | /// 14 | public ActionResult Index() 15 | { 16 | ViewBag.Title = "Home Page"; 17 | 18 | return View(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingAPI/Controllers/ValuesController.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Web.Http; 3 | 4 | namespace ShoppingAPI.Controllers 5 | { 6 | /// 7 | /// This class is responsible for the value controller. 8 | /// 9 | public class ValuesController : ApiController 10 | { 11 | // GET api/values 12 | public IEnumerable Get() 13 | { 14 | return new[] {"value1", "value2"}; 15 | } 16 | 17 | // GET api/values/5 18 | public string Get(int id) 19 | { 20 | return "value"; 21 | } 22 | 23 | // POST api/values 24 | public void Post([FromBody] string value) 25 | { 26 | } 27 | 28 | // PUT api/values/5 29 | public void Put(int id, [FromBody] string value) 30 | { 31 | } 32 | 33 | // DELETE api/values/5 34 | public void Delete(int id) 35 | { 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /ShoppingAPI/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="ShoppingAPI.WebApiApplication" Language="C#" %> -------------------------------------------------------------------------------- /ShoppingAPI/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Http; 3 | using System.Web.Mvc; 4 | using System.Web.Routing; 5 | using ShoppingAPI.App_Start; 6 | 7 | namespace ShoppingAPI 8 | { 9 | public class WebApiApplication : HttpApplication 10 | { 11 | protected void Application_Start() 12 | { 13 | var config = GlobalConfiguration.Configuration; 14 | 15 | AreaRegistration.RegisterAllAreas(); 16 | WebApiConfig.Register(config); 17 | Bootstrapper.Run(); 18 | //GlobalConfiguration.Configure(WebApiConfig.Register); 19 | //FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 20 | GlobalConfiguration.Configuration.EnsureInitialized(); 21 | RouteConfig.RegisterRoutes(RouteTable.Routes); 22 | //BundleConfig.RegisterBundles(BundleTable.Bundles); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /ShoppingAPI/Mappings/MapperConfig.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | 3 | namespace ShoppingAPI.Mappings 4 | { 5 | /// 6 | /// This class is responsible for the mapper configuration. 7 | /// 8 | public class MapperConfig 9 | { 10 | /// 11 | /// Configure the profiles. 12 | /// 13 | public static void Configure() 14 | { 15 | Mapper.Initialize(cfg => 16 | { 17 | cfg.AddProfile(); 18 | cfg.AddProfile(); 19 | }); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /ShoppingAPI/Migrations/Configuration.cs: -------------------------------------------------------------------------------- 1 | using System.Data.Entity.Migrations; 2 | using ShoppingAPI.Database; 3 | 4 | namespace ShoppingAPI.Migrations 5 | { 6 | /// 7 | /// This class is responsible for the Configuration. 8 | /// 9 | internal sealed class Configuration : DbMigrationsConfiguration 10 | { 11 | /// 12 | /// Initializes the configuration. 13 | /// 14 | public Configuration() 15 | { 16 | AutomaticMigrationsEnabled = true; 17 | AutomaticMigrationDataLossAllowed = true; 18 | } 19 | 20 | /// 21 | /// Seed method. 22 | /// 23 | /// 24 | protected override void Seed(ShoppingContext context) 25 | { 26 | // This method will be called after migrating to the latest version. 27 | 28 | // You can use the DbSet.AddOrUpdate() helper extension method 29 | // to avoid creating duplicate seed data. 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /ShoppingAPI/Models/Category.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace ShoppingAPI.Models 4 | { 5 | /// 6 | /// This class is responsible for the category. 7 | /// 8 | public class Category 9 | { 10 | /// 11 | /// Gets or sets the id. 12 | /// 13 | public int ID { get; set; } 14 | 15 | /// 16 | /// Gets or sets the name. 17 | /// 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Gets or sets the icon. 22 | /// 23 | public string Icon { get; set; } 24 | 25 | /// 26 | /// Gets or sets the subcategories. 27 | /// 28 | public ICollection SubCategories { get; set; } 29 | } 30 | } -------------------------------------------------------------------------------- /ShoppingAPI/Models/MyOrder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | namespace ShoppingAPI.Models 3 | { 4 | public class MyOrder 5 | { 6 | /// 7 | /// Gets or sets the id. 8 | /// 9 | public int ID { get; set; } 10 | 11 | /// 12 | /// Gets or sets the user id. 13 | /// 14 | public int UserId { get; set; } 15 | 16 | /// 17 | /// Gets or sets the product id. 18 | /// 19 | public int ProductId { get; set; } 20 | 21 | /// 22 | /// Gets or sets the added date time. 23 | /// 24 | public DateTime AddedDateTime { get; set; } 25 | 26 | /// 27 | /// Gets or sets the IsDeleted. 28 | /// 29 | public bool IsDeleted { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ShoppingAPI/Models/Payment.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Models 2 | { 3 | /// 4 | /// This class is responsible for the payment. 5 | /// 6 | public class Payment 7 | { 8 | /// 9 | /// Gets or sets the Id. 10 | /// 11 | public int ID { get; set; } 12 | 13 | /// 14 | /// Gets or sets the transaction number. 15 | /// 16 | public string TransactionNumber { get; set; } 17 | 18 | /// 19 | /// Gets or sets the payment mode. 20 | /// 21 | public string PaymentMode { get; set; } 22 | 23 | /// 24 | /// Gets or sets the card number. 25 | /// 26 | public string CardNumber { get; set; } 27 | 28 | /// 29 | /// Gets or sets the cars type. 30 | /// 31 | public string CardType { get; set; } 32 | 33 | /// 34 | /// Get or set the deleted value. 35 | /// 36 | public string IsDeleted { get; set; } 37 | 38 | /// 39 | /// Gets or sets the user Id. 40 | /// 41 | public int UserId { get; set; } 42 | 43 | /// 44 | /// Gets or sets the user. 45 | /// 46 | public virtual User User { get; set; } 47 | } 48 | } -------------------------------------------------------------------------------- /ShoppingAPI/Models/PreviewImage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingAPI.Models 4 | { 5 | /// 6 | /// This class is responsible for the preview image. 7 | /// 8 | public class PreviewImage 9 | { 10 | /// 11 | /// Gets or sets the Id. 12 | /// 13 | public int ID { get; set; } 14 | 15 | /// 16 | /// Gets or sets the product Id. 17 | /// 18 | public int ProductId { get; set; } 19 | 20 | /// 21 | /// Gets or sets the image. 22 | /// 23 | public string Image { get; set; } 24 | 25 | /// 26 | /// Gets or sets the deleted value. 27 | /// 28 | public bool IsDeleted { get; set; } 29 | 30 | /// 31 | /// Gets or sets the created date. 32 | /// 33 | public DateTime CreatedDate { get; set; } 34 | 35 | /// 36 | /// Gets or sets the updated date. 37 | /// 38 | public DateTime UpdatedDate { get; set; } 39 | 40 | /// 41 | /// Gets or sets the product. 42 | /// 43 | public virtual Product Product { get; set; } 44 | } 45 | } -------------------------------------------------------------------------------- /ShoppingAPI/Models/ReviewImage.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Models 2 | { 3 | /// 4 | /// This class is represent the review images data. 5 | /// 6 | public class ReviewImage 7 | { 8 | /// 9 | /// Gets or sets the Id. 10 | /// 11 | public int ID { get; set; } 12 | 13 | /// 14 | /// Gets or sets the image. 15 | /// 16 | public string Image { get; set; } 17 | 18 | /// 19 | /// Gets or sets the IsDeleted value. 20 | /// 21 | public bool IsDeleted { get; set; } 22 | 23 | /// 24 | /// Gets or sets the review Id. 25 | /// 26 | public int ReviewId { get; set; } 27 | 28 | /// 29 | /// Gets or sets the review enetity. 30 | /// 31 | public virtual Review ReviewEntity { get; set; } 32 | } 33 | } -------------------------------------------------------------------------------- /ShoppingAPI/Models/Status.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Models 2 | { 3 | /// 4 | /// This class is responsible for the status. 5 | /// 6 | public class Status 7 | { 8 | /// 9 | /// Gets or sets the whether IsSuccess is enabled or not. 10 | /// 11 | public bool IsSuccess { get; set; } 12 | 13 | /// 14 | /// Gets or sets the message. 15 | /// 16 | public string Message { get; set; } 17 | 18 | /// 19 | /// Gets or sets the user name. 20 | /// 21 | public string UserName { get; set; } 22 | } 23 | } -------------------------------------------------------------------------------- /ShoppingAPI/Models/SubCategory.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Models 2 | { 3 | /// 4 | /// This class is responsible for the subcategory data. 5 | /// 6 | public class SubCategory 7 | { 8 | /// 9 | /// Gets or sets the id. 10 | /// 11 | public int ID { get; set; } 12 | 13 | /// 14 | /// Gets or sets the name. 15 | /// 16 | public string Name { get; set; } 17 | 18 | /// 19 | /// Gets or sets the icon. 20 | /// 21 | public string Icon { get; set; } 22 | 23 | /// 24 | /// Gets or sets the category id. 25 | /// 26 | public int CategoryId { get; set; } 27 | 28 | /// 29 | /// Gets or sets the category. 30 | /// 31 | public Category Category { get; set; } 32 | } 33 | } -------------------------------------------------------------------------------- /ShoppingAPI/Models/User.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingAPI.Models 4 | { 5 | /// 6 | /// This class is responsible for the user data. 7 | /// 8 | public class User 9 | { 10 | /// 11 | /// Gets or sets the id. 12 | /// 13 | public int ID { get; set; } 14 | 15 | /// 16 | /// Gets or sets the name. 17 | /// 18 | public string Name { get; set; } 19 | 20 | /// 21 | /// Gets or sets the email id. 22 | /// 23 | public string EmailId { get; set; } 24 | 25 | /// 26 | /// Gets or sets the password. 27 | /// 28 | public string Password { get; set; } 29 | 30 | /// 31 | /// Gets or sets the salt. 32 | /// 33 | public string Salt { get; set; } 34 | 35 | /// 36 | /// Gets or sets whether the IsDeleted enabled or not. 37 | /// 38 | public bool IsDeleted { get; set; } 39 | 40 | /// 41 | /// Gets or sets the created date. 42 | /// 43 | public DateTime CreatedDate { get; set; } 44 | 45 | /// 46 | /// Gets or sets the updated date. 47 | /// 48 | public DateTime UpdatedDate { get; set; } 49 | } 50 | } -------------------------------------------------------------------------------- /ShoppingAPI/Models/UserCart.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingAPI.Models 4 | { 5 | /// 6 | /// This class is responsible for the user cart data. 7 | /// 8 | public class UserCart 9 | { 10 | /// 11 | /// Gets or sets the id. 12 | /// 13 | public int ID { get; set; } 14 | 15 | /// 16 | /// Gets or sets the user id. 17 | /// 18 | public int UserId { get; set; } 19 | 20 | /// 21 | /// Gets or sets the product id. 22 | /// 23 | public int ProductId { get; set; } 24 | 25 | /// 26 | /// Gets or sets the added date time. 27 | /// 28 | public DateTime AddedDateTime { get; set; } 29 | 30 | /// 31 | /// Gets or sets the IsDeleted. 32 | /// 33 | public bool IsDeleted { get; set; } 34 | } 35 | } -------------------------------------------------------------------------------- /ShoppingAPI/Models/UserWishlist.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingAPI.Models 2 | { 3 | /// 4 | /// This class is responsible for the user wishlist data. 5 | /// 6 | public class UserWishlist 7 | { 8 | /// 9 | /// Gets or sets the id . 10 | /// 11 | public int ID { get; set; } 12 | 13 | /// 14 | /// Gets or sets the user id. 15 | /// 16 | public int UserId { get; set; } 17 | 18 | /// 19 | /// Gets or sets the product id. 20 | /// 21 | public int ProductId { get; set; } 22 | 23 | /// 24 | /// Gets or sets the is favorite value. 25 | /// 26 | public bool IsFavorite { get; set; } 27 | 28 | /// 29 | /// Gets or sets the user. 30 | /// 31 | public virtual User User { get; set; } 32 | 33 | /// 34 | /// Gets or sets the product. 35 | /// 36 | public virtual Product Product { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /ShoppingAPI/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("ShoppingAPI")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("ShoppingAPI")] 12 | [assembly: AssemblyCopyright("Copyright © 2019")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("55359158-d698-4a12-91df-cf6df53fe61f")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Revision and Build Numbers 32 | // by using the '*' as shown below: 33 | [assembly: AssemblyVersion("1.0.0.0")] 34 | [assembly: AssemblyFileVersion("1.0.0.0")] -------------------------------------------------------------------------------- /ShoppingAPI/ShoppingAPI.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29230.61 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShoppingAPI", "ShoppingAPI.csproj", "{273A62E5-E116-4A08-8D76-FDEB9A664185}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {273A62E5-E116-4A08-8D76-FDEB9A664185}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {273A62E5-E116-4A08-8D76-FDEB9A664185}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {273A62E5-E116-4A08-8D76-FDEB9A664185}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {273A62E5-E116-4A08-8D76-FDEB9A664185}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {47840E1E-4EB5-4ADB-B405-6A895EBD47BA} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /ShoppingAPI/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Error 6 | 7 | 8 |
9 |

Error.

10 |

An error occurred while processing your request.

11 |
12 | 13 | -------------------------------------------------------------------------------- /ShoppingAPI/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | @ViewBag.Title 7 | @Styles.Render("~/Content/css") 8 | @Scripts.Render("~/bundles/modernizr") 9 | 10 | 11 | 29 |
30 | @RenderBody() 31 |
32 |
33 |

© @DateTime.Now.Year - My ASP.NET Application

34 |
35 |
36 | 37 | @Scripts.Render("~/bundles/jquery") 38 | @Scripts.Render("~/bundles/bootstrap") 39 | @RenderSection("scripts", false) 40 | 41 | -------------------------------------------------------------------------------- /ShoppingAPI/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } -------------------------------------------------------------------------------- /ShoppingAPI/Web.Debug.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /ShoppingAPI/Web.Release.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /ShoppingAPI/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingAPI/favicon.ico -------------------------------------------------------------------------------- /ShoppingApp.Entities/BannerEntity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingApp.Entities 4 | { 5 | /// 6 | /// This class is responsible for the BannerEntity. 7 | /// 8 | public class BannerEntity 9 | { 10 | /// 11 | /// Gets or sets the id. 12 | /// 13 | public int ID { get; set; } 14 | 15 | /// 16 | /// Gets or sets the banner image. 17 | /// 18 | public string BannerImage { get; set; } 19 | 20 | /// 21 | /// Gets or sets a value indicating whether IsDeleted enabled or not. 22 | /// 23 | public bool IsDeleted { get; set; } 24 | 25 | /// 26 | /// Gets or sets the created date. 27 | /// 28 | public DateTime CreatedDate { get; set; } 29 | } 30 | } -------------------------------------------------------------------------------- /ShoppingApp.Entities/CategoryEntity.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace ShoppingApp.Entities 4 | { 5 | /// 6 | /// This class is responsible for the CategoryEntity. 7 | /// 8 | public class CategoryEntity 9 | { 10 | /// 11 | /// Initializes the CategoryEntity. 12 | /// 13 | public CategoryEntity() 14 | { 15 | SubCategories = new List(); 16 | } 17 | 18 | /// 19 | /// Gets or sets the id. 20 | /// 21 | public int ID { get; set; } 22 | 23 | /// 24 | /// Gets or sets the name. 25 | /// 26 | public string Name { get; set; } 27 | 28 | /// 29 | /// Gets or sets the icon. 30 | /// 31 | public string Icon { get; set; } 32 | 33 | /// 34 | /// Gets or sets the subcategories. 35 | /// 36 | public virtual ICollection SubCategories { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /ShoppingApp.Entities/MyOrdersEntity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | namespace ShoppingApp.Entities 3 | { 4 | public class MyOrderEntity 5 | { 6 | /// 7 | /// Gets or sets the id. 8 | /// 9 | public int ID { get; set; } 10 | 11 | /// 12 | /// Gets or sets the user id. 13 | /// 14 | public int? UserId { get; set; } 15 | 16 | /// 17 | /// Gets or sets the product id. 18 | /// 19 | public int? ProductId { get; set; } 20 | 21 | /// 22 | /// Gets or sets the total quantity. 23 | /// 24 | public int TotalQuantity { get; set; } 25 | 26 | /// 27 | /// Gets or sets the added datetime. 28 | /// 29 | public DateTime AddedDateTime { get; set; } 30 | 31 | /// 32 | /// Gets or sets a value indicating whether IsDeleted enabled or not. 33 | /// 34 | public bool IsDeleted { get; set; } 35 | 36 | /// 37 | /// Gets or sets the user details. 38 | /// 39 | public virtual UserEntity User { get; set; } 40 | 41 | /// 42 | /// Gets or sets the product details. 43 | /// 44 | public virtual ProductEntity Product { get; set; } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /ShoppingApp.Entities/PaymentEntity.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingApp.Entities 2 | { 3 | /// 4 | /// This class is responsible for the PaymentEntity. 5 | /// 6 | public class PaymentEntity 7 | { 8 | /// 9 | /// Gets or sets the id. 10 | /// 11 | public int ID { get; set; } 12 | 13 | /// 14 | /// Gets or sets the payment mode. 15 | /// 16 | public string PaymentMode { get; set; } 17 | 18 | /// 19 | /// Gets or sets the card type icon. 20 | /// 21 | public string CardTypeIcon { get; set; } 22 | 23 | /// 24 | /// Gets or sets a value indicating whether IsDeleted enabled or not. 25 | /// 26 | public bool IsDeleted { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /ShoppingApp.Entities/PreviewImageEntity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingApp.Entities 4 | { 5 | /// 6 | /// This class is responsible for the PreviewImageEntity. 7 | /// 8 | public class PreviewImageEntity 9 | { 10 | /// 11 | /// Gets or sets the id. 12 | /// 13 | public int ID { get; set; } 14 | 15 | /// 16 | /// Gets or seys the product id. 17 | /// 18 | public int ProductId { get; set; } 19 | 20 | /// 21 | /// Gets or sets the preview image. 22 | /// 23 | public string PreviewImage { get; set; } 24 | 25 | /// 26 | /// Gets or sets a value indicating whether IsDeleted enabled or not. 27 | /// 28 | public bool IsDeleted { get; set; } 29 | 30 | /// 31 | /// Gets or sets the created date. 32 | /// 33 | public DateTime CreatedDate { get; set; } 34 | 35 | /// 36 | /// Gets or sets the updated date. 37 | /// 38 | public DateTime UpdatedDate { get; set; } 39 | 40 | /// 41 | /// Gets or sets the product details. 42 | /// 43 | public virtual ProductEntity Product { get; set; } 44 | } 45 | } -------------------------------------------------------------------------------- /ShoppingApp.Entities/RecentEntity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingApp.Entities 4 | { 5 | /// 6 | /// This class is responsible for the RecentEntity. 7 | /// 8 | public class RecentEntity 9 | { 10 | /// 11 | /// Gets or sets the id. 12 | /// 13 | public int ID { get; set; } 14 | 15 | /// 16 | /// Gets or sets the product id. 17 | /// 18 | public int? ProductId { get; set; } 19 | 20 | /// 21 | /// Gets or sets the user id. 22 | /// 23 | public int? UserId { get; set; } 24 | 25 | /// 26 | /// Gets or sets the viewed date. 27 | /// 28 | public DateTime ViewedDate { get; set; } 29 | 30 | /// 31 | /// Gets or sets the user. 32 | /// 33 | public virtual UserEntity User { get; set; } 34 | 35 | /// 36 | /// Gets or sets the product details. 37 | /// 38 | public virtual ProductEntity Product { get; set; } 39 | } 40 | } -------------------------------------------------------------------------------- /ShoppingApp.Entities/ReviewImageEntity.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingApp.Entities 2 | { 3 | /// 4 | /// This class is responsible for the ReviewImageEntity. 5 | /// 6 | public class ReviewImageEntity 7 | { 8 | /// 9 | /// Gets or sets the id. 10 | /// 11 | public int ID { get; set; } 12 | 13 | /// 14 | /// Gets or sets the review images. 15 | /// 16 | public string ReviewImage { get; set; } 17 | 18 | /// 19 | /// Gets or sets a value indicating whether IsDeleted enabled or not. 20 | /// 21 | public bool IsDeleted { get; set; } 22 | 23 | /// 24 | /// Gets or sets the review id. 25 | /// 26 | public int ReviewId { get; set; } 27 | 28 | /// 29 | /// Gets or sets the review details. 30 | /// 31 | public virtual ReviewEntity Review { get; set; } 32 | } 33 | } -------------------------------------------------------------------------------- /ShoppingApp.Entities/ShoppingApp.Entities.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ShoppingApp.Entities/SubCategoryEntity.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingApp.Entities 2 | { 3 | /// 4 | /// This class is responsible for the SubCategoryEntity. 5 | /// 6 | public class SubCategoryEntity 7 | { 8 | /// 9 | /// Gets or sets the id. 10 | /// 11 | public int ID { get; set; } 12 | 13 | /// 14 | /// Gets or sets the name. 15 | /// 16 | public string Name { get; set; } 17 | 18 | /// 19 | /// Gets or sets the icon. 20 | /// 21 | public string Icon { get; set; } 22 | 23 | /// 24 | /// Gets or sets the category id. 25 | /// 26 | public int CategoryId { get; set; } 27 | 28 | /// 29 | /// Gets or sets the category. 30 | /// 31 | public virtual CategoryEntity Category { get; set; } 32 | } 33 | } -------------------------------------------------------------------------------- /ShoppingApp.Entities/UserCardEntity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingApp.Entities 4 | { 5 | /// 6 | /// This class is responsible for the UserCardEntity. 7 | /// 8 | public class UserCardEntity 9 | { 10 | /// 11 | /// Gets or sets the id. 12 | /// 13 | public int ID { get; set; } 14 | 15 | /// 16 | /// Gets or sets the user id. 17 | /// 18 | public int? UserId { get; set; } 19 | 20 | /// 21 | /// Gets or sets the card number. 22 | /// 23 | public string CardNumber { get; set; } 24 | 25 | /// 26 | /// Gets or sets the payment mode. 27 | /// 28 | public string PaymentMode { get; set; } 29 | 30 | /// 31 | /// Gets or sets a value indicating whether IsDeleted enabled or not. 32 | /// 33 | public bool IsDeleted { get; set; } 34 | 35 | /// 36 | /// Gets or sets the added date. 37 | /// 38 | public DateTime AddedDate { get; set; } 39 | 40 | /// 41 | /// Gets or sets the user details. 42 | /// 43 | public virtual UserEntity User { get; set; } 44 | } 45 | } -------------------------------------------------------------------------------- /ShoppingApp.Entities/UserCartEntity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ShoppingApp.Entities 4 | { 5 | /// 6 | /// This class is responsible for the UserCardEntity. 7 | /// 8 | public class UserCartEntity 9 | { 10 | /// 11 | /// Gets or sets the id. 12 | /// 13 | public int ID { get; set; } 14 | 15 | /// 16 | /// Gets or sets the user id. 17 | /// 18 | public int? UserId { get; set; } 19 | 20 | /// 21 | /// Gets or sets the product id. 22 | /// 23 | public int? ProductId { get; set; } 24 | 25 | /// 26 | /// Gets or sets the total quantity. 27 | /// 28 | public int TotalQuantity { get; set; } 29 | 30 | /// 31 | /// Gets or sets the added datetime. 32 | /// 33 | public DateTime AddedDateTime { get; set; } 34 | 35 | /// 36 | /// Gets or sets a value indicating whether IsDeleted enabled or not. 37 | /// 38 | public bool IsDeleted { get; set; } 39 | 40 | /// 41 | /// Gets or sets the user details. 42 | /// 43 | public virtual UserEntity User { get; set; } 44 | 45 | /// 46 | /// Gets or sets the product details. 47 | /// 48 | public virtual ProductEntity Product { get; set; } 49 | } 50 | } -------------------------------------------------------------------------------- /ShoppingApp.Entities/UserWishlistEntity.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingApp.Entities 2 | { 3 | /// 4 | /// This class is responsible for the UserWishlistEntity. 5 | /// 6 | public class UserWishlistEntity 7 | { 8 | /// 9 | /// Gets or sets the id. 10 | /// 11 | public int ID { get; set; } 12 | 13 | /// 14 | /// Gets or sets the user id. 15 | /// 16 | public int? UserId { get; set; } 17 | 18 | /// 19 | /// Gets or sets the product id. 20 | /// 21 | public int? ProductId { get; set; } 22 | 23 | /// 24 | /// Gets or sets a value indicating whether IsFavorite enabled or not. 25 | /// 26 | public bool IsFavorite { get; set; } 27 | 28 | /// 29 | /// Gets or sets the user details 30 | /// 31 | public virtual UserEntity User { get; set; } 32 | 33 | /// 34 | /// Gets or sets the product details. 35 | /// 36 | public virtual ProductEntity Product { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.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 your 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 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Assets/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Assets/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Assets/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Assets/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Assets/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Assets/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Assets/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Assets/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Assets/UIFontIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Assets/UIFontIcons.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/DependencyService/AndroidLocalStorage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using ShoppingCart.DataService; 4 | using ShoppingCart.Droid.DependencyService; 5 | using SQLite; 6 | using Xamarin.Forms; 7 | 8 | [assembly: Dependency(typeof(AndroidLocalStorage))] 9 | 10 | namespace ShoppingCart.Droid.DependencyService 11 | { 12 | public class AndroidLocalStorage : ILocalStorage 13 | { 14 | public SQLiteConnection GetConnection() 15 | { 16 | var path = Environment.GetFolderPath(Environment.SpecialFolder.Personal); 17 | path = Path.Combine(path, "ShoppingKart.db3"); 18 | var connection = new SQLiteConnection(path); 19 | return connection; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/DependencyService/CloseApplication.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using ShoppingCart.DependencyServices; 3 | using ShoppingCart.Droid.DependencyService; 4 | using Xamarin.Forms; 5 | 6 | [assembly: Dependency(typeof(CloseApplication))] 7 | 8 | namespace ShoppingCart.Droid.DependencyService 9 | { 10 | public class CloseApplication : ICloseApplication 11 | { 12 | public void CloseApp() 13 | { 14 | var activity = (Activity) Forms.Context; 15 | activity.FinishAffinity(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using Android; 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("ShoppingCart.Android")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("ShoppingCart.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(Manifest.Permission.Internet)] 34 | [assembly: UsesPermission(Manifest.Permission.WriteExternalStorage)] -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Renderers/BorderlessEditorRenderer.cs: -------------------------------------------------------------------------------- 1 | using Android.Graphics.Drawables; 2 | using ShoppingCart.Controls; 3 | using ShoppingCart.Droid; 4 | using Xamarin.Forms; 5 | using Xamarin.Forms.Platform.Android; 6 | using Application = Android.App.Application; 7 | using Color = Android.Graphics.Color; 8 | 9 | [assembly: ExportRenderer(typeof(BorderlessEditor), typeof(BorderlessEditorRenderer))] 10 | 11 | namespace ShoppingCart.Droid 12 | { 13 | /// 14 | /// Implementation of Borderless editor control. 15 | /// 16 | public class BorderlessEditorRenderer : EditorRenderer 17 | { 18 | #region Constructor 19 | 20 | public BorderlessEditorRenderer() : base(Application.Context) 21 | { 22 | } 23 | 24 | #endregion 25 | 26 | #region Methods 27 | 28 | /// 29 | /// Used to set the transparent color for editor control background property. 30 | /// 31 | /// The editor 32 | protected override void OnElementChanged(ElementChangedEventArgs e) 33 | { 34 | base.OnElementChanged(e); 35 | 36 | if (Control != null) Control.Background = new ColorDrawable(Color.Transparent); 37 | } 38 | 39 | #endregion 40 | } 41 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Renderers/BorderlessEntryRenderer.cs: -------------------------------------------------------------------------------- 1 | using Android.Views; 2 | using ShoppingCart.Controls; 3 | using ShoppingCart.Droid; 4 | using Xamarin.Forms; 5 | using Xamarin.Forms.Platform.Android; 6 | using Application = Android.App.Application; 7 | 8 | [assembly: ExportRenderer(typeof(BorderlessEntry), typeof(BorderlessEntryRenderer))] 9 | 10 | namespace ShoppingCart.Droid 11 | { 12 | public class BorderlessEntryRenderer : EntryRenderer 13 | { 14 | public BorderlessEntryRenderer() : base(Application.Context) 15 | { 16 | } 17 | 18 | protected override void OnElementChanged(ElementChangedEventArgs e) 19 | { 20 | base.OnElementChanged(e); 21 | 22 | if (Control != null) 23 | { 24 | Control.SetBackground(null); 25 | Control.Gravity = GravityFlags.CenterVertical; 26 | Control.SetPadding(0, 0, 0, 0); 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-hdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-hdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-land-hdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-land-hdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-land-mdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-land-mdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-land-xhdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-land-xhdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-land-xxhdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-land-xxhdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-land-xxxhdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-land-xxxhdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-land/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-land/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-mdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-mdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-xhdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-xhdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-xxhdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-xxhdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable-xxxhdpi/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable-xxxhdpi/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable/Card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable/Card.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable/Icon.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable/Pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable/Pin.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/drawable/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/drawable/SplashScreen.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/layout/Tabbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/layout/Toolbar.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-anydpi-v26/icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-anydpi-v26/icon_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-hdpi/icon.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-hdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-hdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-mdpi/icon.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-mdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-mdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-xhdpi/icon.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-xhdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-xhdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-xxhdpi/icon.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-xxhdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-xxhdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-xxxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-xxxhdpi/icon.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/values-v21/splash.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 11 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 7 | 8 | 27 | 28 | 31 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #FFFFFF 5 | #3F51B5 6 | #303F9F 7 | #FF4081 8 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/values/splash.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 10 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/Resources/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 27 | 28 | 31 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.Android/SplashScreenActivity.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.OS; 3 | using Android.Views; 4 | 5 | namespace ShoppingCart.Droid 6 | { 7 | [Activity(Theme = "@style/Theme.Splash", 8 | MainLauncher = true, 9 | NoHistory = true, Icon = "@drawable/Icon")] 10 | public class SplashScreenActivity : Activity 11 | { 12 | protected override void OnCreate(Bundle bundle) 13 | { 14 | Window.DecorView.SystemUiVisibility = 15 | (StatusBarVisibility) ((int) Window.DecorView.SystemUiVisibility ^ (int) SystemUiFlags.LayoutStable ^ 16 | (int) SystemUiFlags.LayoutFullscreen); 17 | Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); 18 | Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); 19 | base.OnCreate(bundle); 20 | StartActivity(typeof(MainActivity)); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/App.xaml: -------------------------------------------------------------------------------- 1 |  7 | 8 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/LargeTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/LargeTile.scale-100.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/LargeTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/LargeTile.scale-200.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/LargeTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/LargeTile.scale-400.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/SmallTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/SmallTile.scale-100.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/SmallTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/SmallTile.scale-200.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/SmallTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/SmallTile.scale-400.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-100.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-125.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-150.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/SplashScreen.scale-400.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square150x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square150x150Logo.scale-100.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square150x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square150x150Logo.scale-400.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.scale-100.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.scale-400.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.targetsize-16.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.targetsize-256.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Square44x44Logo.targetsize-48.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/StoreLogo.backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/StoreLogo.backup.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/StoreLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/StoreLogo.scale-100.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/StoreLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/StoreLogo.scale-200.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/StoreLogo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/StoreLogo.scale-400.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/UIFontIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/UIFontIcons.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Wide310x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Wide310x150Logo.scale-100.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Assets/Wide310x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/Assets/Wide310x150Logo.scale-400.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/DependencyService/CloseApplication.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DependencyServices; 2 | using ShoppingCart.UWP.DependencyService; 3 | using Xamarin.Forms; 4 | 5 | [assembly: Dependency(typeof(CloseApplication))] 6 | 7 | namespace ShoppingCart.UWP.DependencyService 8 | { 9 | public class CloseApplication : ICloseApplication 10 | { 11 | public void CloseApp() 12 | { 13 | Application.Current.Quit(); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/DependencyService/WindowsLocalStorage.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using Windows.Storage; 3 | using ShoppingCart.DataService; 4 | using ShoppingCart.UWP.DependencyService; 5 | using SQLite; 6 | using Xamarin.Forms; 7 | 8 | [assembly: Dependency(typeof(WindowsLocalStorage))] 9 | 10 | namespace ShoppingCart.UWP.DependencyService 11 | { 12 | public class WindowsLocalStorage : ILocalStorage 13 | { 14 | public SQLiteConnection GetConnection() 15 | { 16 | var fileName = "ShoppingKart.db"; 17 | var documentPath = ApplicationData.Current.LocalFolder.Path; 18 | var path = Path.Combine(documentPath, fileName); 19 | var connection = new SQLiteConnection(path); 20 | return connection; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/MainPage.xaml: -------------------------------------------------------------------------------- 1 |  11 | 12 | 13 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingCart.UWP 2 | { 3 | public sealed partial class MainPage 4 | { 5 | public MainPage() 6 | { 7 | InitializeComponent(); 8 | 9 | LoadApplication(new ShoppingCart.App()); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("ShoppingCart.UWP")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("ShoppingCart.UWP")] 12 | [assembly: AssemblyCopyright("Copyright © 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Version information for an assembly consists of the following four values: 17 | // 18 | // Major Version 19 | // Minor Version 20 | // Build Number 21 | // Revision 22 | // 23 | // You can specify all the values or you can default the Build and Revision Numbers 24 | // by using the '*' as shown below: 25 | // [assembly: AssemblyVersion("1.0.*")] 26 | [assembly: AssemblyVersion("1.0.0.0")] 27 | [assembly: AssemblyFileVersion("1.0.0.0")] 28 | [assembly: ComVisible(false)] -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Properties/Default.rd.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Renderers/BorderlessEditorRenderer.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.Controls; 2 | using ShoppingCart.UWP; 3 | using Xamarin.Forms; 4 | using Xamarin.Forms.Platform.UWP; 5 | using Thickness = Windows.UI.Xaml.Thickness; 6 | 7 | [assembly: ExportRenderer(typeof(BorderlessEditor), typeof(BorderlessEditorRenderer))] 8 | 9 | namespace ShoppingCart.UWP 10 | { 11 | /// 12 | /// Implementation of Borderless editor control. 13 | /// 14 | public class BorderlessEditorRenderer : EditorRenderer 15 | { 16 | #region Methods 17 | 18 | /// 19 | /// Used to set the zero border thickness for editor control . 20 | /// 21 | /// The editor 22 | protected override void OnElementChanged(ElementChangedEventArgs e) 23 | { 24 | base.OnElementChanged(e); 25 | if (Control != null) 26 | { 27 | Control.BorderThickness = new Thickness(0); 28 | Control.Margin = new Thickness(0, 4, 0, 0); 29 | } 30 | } 31 | 32 | #endregion 33 | } 34 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/Renderers/BorderlessEntryRenderer.cs: -------------------------------------------------------------------------------- 1 | using Windows.UI.Xaml; 2 | using Windows.UI.Xaml.Controls; 3 | using ShoppingCart.Controls; 4 | using ShoppingCart.UWP; 5 | using Xamarin.Forms; 6 | using Xamarin.Forms.Platform.UWP; 7 | using Setter = Windows.UI.Xaml.Setter; 8 | using Style = Windows.UI.Xaml.Style; 9 | using Thickness = Windows.UI.Xaml.Thickness; 10 | 11 | [assembly: ExportRenderer(typeof(BorderlessEntry), typeof(BorderlessEntryRenderer))] 12 | 13 | namespace ShoppingCart.UWP 14 | { 15 | public class BorderlessEntryRenderer : EntryRenderer 16 | { 17 | protected override void OnElementChanged(ElementChangedEventArgs e) 18 | { 19 | base.OnElementChanged(e); 20 | if (Control != null) 21 | { 22 | Control.BorderThickness = new Thickness(0); 23 | Control.VerticalAlignment = VerticalAlignment.Center; 24 | 25 | // Make the text vertically aligned at centre of the entry. 26 | var style = new Style(typeof(ContentControl)); 27 | style.Setters.Add(new Setter(VerticalAlignmentProperty, VerticalAlignment.Center)); 28 | Control.Resources.Add(typeof(ContentControl), style); 29 | } 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/scale-100/Card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/scale-100/Card.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/scale-100/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/scale-100/Icon.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.UWP/scale-100/Pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.UWP/scale-100/Pin.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/120-1.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/40-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/40-1.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/40-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/40-2.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/58-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/58-1.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/80-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/80-1.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Assets.xcassets/LaunchImages.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "orientation": "portrait", 5 | "extent": "full-screen", 6 | "minimum-system-version": "7.0", 7 | "scale": "2x", 8 | "size": "0x0", 9 | "idiom": "iphone" 10 | }, 11 | { 12 | "orientation": "portrait", 13 | "extent": "full-screen", 14 | "minimum-system-version": "7.0", 15 | "subtype": "retina4", 16 | "scale": "2x", 17 | "size": "0x0", 18 | "idiom": "iphone" 19 | }, 20 | { 21 | "orientation": "portrait", 22 | "extent": "full-screen", 23 | "minimum-system-version": "7.0", 24 | "scale": "1x", 25 | "size": "0x0", 26 | "idiom": "ipad" 27 | }, 28 | { 29 | "orientation": "landscape", 30 | "extent": "full-screen", 31 | "minimum-system-version": "7.0", 32 | "scale": "1x", 33 | "size": "0x0", 34 | "idiom": "ipad" 35 | }, 36 | { 37 | "orientation": "portrait", 38 | "extent": "full-screen", 39 | "minimum-system-version": "7.0", 40 | "scale": "2x", 41 | "size": "0x0", 42 | "idiom": "ipad" 43 | }, 44 | { 45 | "orientation": "landscape", 46 | "extent": "full-screen", 47 | "minimum-system-version": "7.0", 48 | "scale": "2x", 49 | "size": "0x0", 50 | "idiom": "ipad" 51 | } 52 | ], 53 | "properties": {}, 54 | "info": { 55 | "version": 1, 56 | "author": "" 57 | } 58 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/DependencyService/CloseApplication.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using ShoppingCart.DependencyServices; 3 | using ShoppingCart.iOS.DependencyService; 4 | using Xamarin.Forms; 5 | 6 | [assembly: Dependency(typeof(CloseApplication))] 7 | 8 | namespace ShoppingCart.iOS.DependencyService 9 | { 10 | public class CloseApplication : ICloseApplication 11 | { 12 | public void CloseApp() 13 | { 14 | Thread.CurrentThread.Abort(); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/DependencyService/IOSLocalStorage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using ShoppingCart.DataService; 4 | using ShoppingCart.iOS.DependencyService; 5 | using SQLite; 6 | using Xamarin.Forms; 7 | 8 | [assembly: Dependency(typeof(IOSLocalStorage))] 9 | 10 | namespace ShoppingCart.iOS.DependencyService 11 | { 12 | public class IOSLocalStorage : ILocalStorage 13 | { 14 | public SQLiteConnection GetConnection() 15 | { 16 | var fileName = "ShoppingKart.db"; 17 | var documentPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal); 18 | var path = Path.Combine(documentPath, fileName); 19 | var connection = new SQLiteConnection(path); 20 | return connection; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Main.cs: -------------------------------------------------------------------------------- 1 | using UIKit; 2 | 3 | namespace ShoppingCart.iOS 4 | { 5 | public class Application 6 | { 7 | // This is the main entry point of the application. 8 | private static void Main(string[] args) 9 | { 10 | // if you want to use a different Application Delegate class from "AppDelegate" 11 | // you can specify it here. 12 | UIApplication.Main(args, null, "AppDelegate"); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("ShoppingCart.iOS")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("ShoppingCart.iOS")] 12 | [assembly: AssemblyCopyright("Copyright © 2014")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Renderers/BorderlessEntryRenderer.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.Controls; 2 | using ShoppingCart.iOS; 3 | using UIKit; 4 | using Xamarin.Forms; 5 | using Xamarin.Forms.Platform.iOS; 6 | 7 | [assembly: ExportRenderer(typeof(BorderlessEntry), typeof(BorderlessEntryRenderer))] 8 | 9 | namespace ShoppingCart.iOS 10 | { 11 | public class BorderlessEntryRenderer : EntryRenderer 12 | { 13 | protected override void OnElementChanged(ElementChangedEventArgs e) 14 | { 15 | base.OnElementChanged(e); 16 | if (Control != null) Control.BorderStyle = UITextBorderStyle.None; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Renderers/FrameShadowRenderer.cs: -------------------------------------------------------------------------------- 1 | using CoreGraphics; 2 | using ShoppingCart.Controls; 3 | using ShoppingCart.iOS; 4 | using Xamarin.Forms; 5 | using Xamarin.Forms.Platform.iOS; 6 | 7 | [assembly: ExportRenderer(typeof(CustomShadowFrame), typeof(FrameShadowRenderer))] 8 | 9 | namespace ShoppingCart.iOS 10 | { 11 | /// 12 | /// Customize the shadow effects of the Frame control in iOS to make the shadow effects looks similar to Android 13 | /// 14 | public class FrameShadowRenderer : FrameRenderer 15 | { 16 | protected override void OnElementChanged(ElementChangedEventArgs element) 17 | { 18 | base.OnElementChanged(element); 19 | var customShadowFrame = (CustomShadowFrame) Element; 20 | if (customShadowFrame != null) 21 | { 22 | Layer.CornerRadius = customShadowFrame.Radius; 23 | Layer.ShadowOpacity = customShadowFrame.ShadowOpacity; 24 | Layer.ShadowOffset = 25 | new CGSize(customShadowFrame.ShadowOffsetWidth, customShadowFrame.ShadowOffSetHeight); 26 | Layer.Bounds.Inset(customShadowFrame.BorderWidth, customShadowFrame.BorderWidth); 27 | Layer.BorderColor = customShadowFrame.CustomBorderColor.ToCGColor(); 28 | Layer.BorderWidth = (float) customShadowFrame.BorderWidth; 29 | } 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Card.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Default-568h@2x.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Default-Portrait.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Default-Portrait@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Default-Portrait@2x.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Default.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Default@2x.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Icon.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Pin.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Splash.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Splash@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Splash@2x.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Splash@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Splash@3x.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/Splash~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/Splash~ipad.png -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart.iOS/Resources/UIFontIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/ShoppingCart/ShoppingCart.iOS/Resources/UIFontIcons.ttf -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/App.xaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Xaml; 2 | 3 | [assembly: XamlCompilation(XamlCompilationOptions.Compile)] -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Controls/BorderlessEditor.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace ShoppingCart.Controls 5 | { 6 | /// 7 | /// This class is extended from Xamarin.Forms.Editor to extend the size and to remove the border for the editor control 8 | /// in the Android and UWP platforms. 9 | /// 10 | [Preserve(AllMembers = true)] 11 | public class BorderlessEditor : Editor 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public BorderlessEditor() 17 | { 18 | TextChanged += ExtendableEditor_TextChanged; 19 | } 20 | 21 | #region Methods 22 | 23 | /// 24 | /// Invoked when editor text is changed. 25 | /// 26 | /// The editor 27 | /// Text changed event args 28 | private void ExtendableEditor_TextChanged(object sender, TextChangedEventArgs e) 29 | { 30 | InvalidateMeasure(); 31 | } 32 | 33 | #endregion 34 | } 35 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Controls/BorderlessEntry.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace ShoppingCart.Controls 5 | { 6 | /// 7 | /// This class is inherited from Xamarin.Forms.Entry to remove the border for Entry control in the Android platform. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | public class BorderlessEntry : Entry 11 | { 12 | } 13 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/DataService/ICartDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using ShoppingCart.Models; 4 | 5 | namespace ShoppingCart.DataService 6 | { 7 | public interface ICartDataService 8 | { 9 | Task> GetCartItemAsync(int userId); 10 | Task RemoveCartItemAsync(int userId, int productId); 11 | Task AddCartItemAsync(int userId, int productId); 12 | Task UpdateQuantityAsync(int userId, int productId, int quantity); 13 | Task RemoveCartItemsAsync(int userId); 14 | Task> GetOrderedItemsAsync(int userId); 15 | } 16 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/DataService/ICatalogDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using ShoppingCart.Models; 4 | 5 | namespace ShoppingCart.DataService 6 | { 7 | public interface ICatalogDataService 8 | { 9 | Task> GetProductBySubCategoryIdAsync(int subCategoryId); 10 | Task GetProductByIdAsync(int productId); 11 | Task> GetReviewsAsync(int productId); 12 | Task> GetPaymentOptionsAsync(); 13 | Task AddRecentProduct(int userId, int productId); 14 | Task> GetRecentProductsAsync(int userId); 15 | } 16 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/DataService/ICategoryDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using ShoppingCart.Models; 4 | 5 | namespace ShoppingCart.DataService 6 | { 7 | public interface ICategoryDataService 8 | { 9 | Task> GetCategories(); 10 | Task> GetSubCategories(int categoryId); 11 | } 12 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/DataService/ILocalStorage.cs: -------------------------------------------------------------------------------- 1 | using SQLite; 2 | 3 | namespace ShoppingCart.DataService 4 | { 5 | public interface ILocalStorage 6 | { 7 | SQLiteConnection GetConnection(); 8 | } 9 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/DataService/IMyOrdersDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using ShoppingCart.Models; 4 | 5 | namespace ShoppingCart.DataService 6 | { 7 | public interface IMyOrdersDataService 8 | { 9 | Task> GetMyOrderslistAsync(int userId); 10 | Task AddOrUpdateOrderlist(int userId, int productId, bool isFavorite); 11 | } 12 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/DataService/IProductHomeDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using ShoppingCart.Models; 4 | 5 | namespace ShoppingCart.DataService 6 | { 7 | public interface IProductHomeDataService 8 | { 9 | Task> GetOfferProductsAsync(); 10 | Task> GetBannersAsync(); 11 | } 12 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/DataService/IUserDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using ShoppingCart.Models; 4 | 5 | namespace ShoppingCart.DataService 6 | { 7 | public interface IUserDataService 8 | { 9 | Task Login(string email, string password); 10 | Task SignUp(User user); 11 | Task ForgotPassword(string emailId); 12 | Task> GetAddresses(int? userId = null); 13 | Task> GetUserCardsAsync(int userId); 14 | } 15 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/DataService/IWishlistDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using ShoppingCart.Models; 4 | 5 | namespace ShoppingCart.DataService 6 | { 7 | public interface IWishlistDataService 8 | { 9 | Task> GetUserWishlistAsync(int userId); 10 | Task AddOrUpdateUserWishlist(int userId, int productId, bool isFavorite); 11 | } 12 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/DependencyServices/ICloseApplication.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingCart.DependencyServices 2 | { 3 | public interface ICloseApplication 4 | { 5 | void CloseApp(); 6 | } 7 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Helpers/PaymentTemplateSelector.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.Models; 2 | using Xamarin.Forms; 3 | using Xamarin.Forms.Internals; 4 | 5 | namespace ShoppingCart.Helpers 6 | { 7 | /// 8 | /// This is used to set different templates in payment view. 9 | /// 10 | [Preserve(AllMembers = true)] 11 | public class PaymentTemplateSelector : DataTemplateSelector 12 | { 13 | #region Methods 14 | 15 | /// 16 | /// Returns Xamarin.Forms.DataTemplate. 17 | /// 18 | /// The Model 19 | /// The bindable object 20 | protected override DataTemplate OnSelectTemplate(object item, BindableObject container) 21 | { 22 | var payment = item as Payment; 23 | 24 | if (payment.CardNumber != null) 25 | return CardTemplate; 26 | return CommonTemplate; 27 | } 28 | 29 | #endregion 30 | 31 | #region Public Properties 32 | 33 | /// 34 | /// Gets or sets the property that has been bound with ItemTemplate. 35 | /// 36 | public DataTemplate CardTemplate { get; set; } 37 | 38 | /// 39 | /// Gets or sets the property that has been bound with ItemTemplate. 40 | /// 41 | public DataTemplate CommonTemplate { get; set; } 42 | 43 | #endregion 44 | } 45 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/MainPage.xaml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 9 | 10 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using Xamarin.Forms; 3 | 4 | namespace ShoppingCart 5 | { 6 | // Learn more about making custom code visible in the Xamarin.Forms previewer 7 | // by visiting https://aka.ms/xamarinforms-previewer 8 | [DesignTimeVisible(false)] 9 | public partial class MainPage : ContentPage 10 | { 11 | public MainPage() 12 | { 13 | InitializeComponent(); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Mapping/MapperConfig.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | 3 | namespace ShoppingCart.Mapping 4 | { 5 | public class MapperConfig 6 | { 7 | public static void Config() 8 | { 9 | Mapper.Reset(); 10 | Mapper.Initialize(config => 11 | { 12 | config.AddProfile(); 13 | config.AddProfile(); 14 | }); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Mapping/ModelToDomainMappingProfile.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | using ShoppingApp.Entities; 3 | using ShoppingCart.Models; 4 | 5 | namespace ShoppingCart.Mapping 6 | { 7 | public class ModelToDomainMappingProfile : Profile 8 | { 9 | public ModelToDomainMappingProfile() 10 | { 11 | CreateMap(); 12 | CreateMap(); 13 | CreateMap(); 14 | CreateMap(); 15 | CreateMap(); 16 | CreateMap() 17 | .ForMember(s => s.ReviewImages, d => d.MapFrom(e => e.Images)); 18 | CreateMap() 19 | .ForMember(s => s.ReviewImage, d => d.MapFrom(e => e.Image)); 20 | CreateMap() 21 | .ForMember(s => s.PreviewImage, d => d.MapFrom(e => e.Image)); 22 | CreateMap(); 23 | CreateMap(); 24 | CreateMap(); 25 | CreateMap(); 26 | CreateMap(); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/Address.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace ShoppingCart.Models 5 | { 6 | /// 7 | /// Model for address. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | public class Address 11 | { 12 | public int ID { get; set; } 13 | public string Name { get; set; } 14 | public string MobileNo { get; set; } 15 | public string DoorNo { get; set; } 16 | public string Area { get; set; } 17 | public string City { get; set; } 18 | public string State { get; set; } 19 | public string Country { get; set; } 20 | public string PostalCode { get; set; } 21 | public string AddressType { get; set; } 22 | public int UserId { get; set; } 23 | public bool IsDeleted { get; set; } 24 | public DateTime CreatedDate { get; set; } 25 | public DateTime UpdatedDate { get; set; } 26 | } 27 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/Banner.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace ShoppingCart.Models 4 | { 5 | /// 6 | /// Model for banner image. 7 | /// 8 | [Preserve(AllMembers = true)] 9 | public class Banner 10 | { 11 | public string BannerImage { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/Boarding.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace ShoppingCart.Models 5 | { 6 | /// 7 | /// Model for OnBoarding 8 | /// 9 | [Preserve(AllMembers = true)] 10 | public class Boarding 11 | { 12 | #region Properties 13 | 14 | /// 15 | /// Gets or sets the image. 16 | /// 17 | public string ImagePath { get; set; } 18 | 19 | /// 20 | /// Gets or sets the header. 21 | /// 22 | public string Header { get; set; } 23 | 24 | /// 25 | /// Gets or sets the content. 26 | /// 27 | public string Content { get; set; } 28 | 29 | /// 30 | /// Gets or sets the view. 31 | /// 32 | public View RotatorItem { get; set; } 33 | 34 | #endregion 35 | } 36 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/Category.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Runtime.Serialization; 3 | using Xamarin.Forms.Internals; 4 | 5 | namespace ShoppingCart.Models 6 | { 7 | /// 8 | /// Model for category. 9 | /// 10 | [DataContract] 11 | [Preserve(AllMembers = true)] 12 | public class Category 13 | { 14 | #region Fields 15 | 16 | private string icon; 17 | 18 | #endregion 19 | 20 | #region Properties 21 | 22 | [DataMember(Name = "id")] public int ID { get; set; } 23 | 24 | ///// 25 | ///// Gets or sets the property that has been bound with a label in SfExpander header, which displays the main category. 26 | ///// 27 | [DataMember(Name = "name")] public string Name { get; set; } 28 | 29 | ///// 30 | ///// Gets or sets the property that has been bound with an image, which displays the category. 31 | ///// 32 | [DataMember(Name = "icon")] 33 | public string Icon 34 | { 35 | get => App.BaseImageUrl + icon; 36 | set => icon = value; 37 | } 38 | 39 | [DataMember(Name = "subcategories")] public List SubCategories { get; set; } 40 | 41 | #endregion 42 | } 43 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace ShoppingCart.Models 4 | { 5 | /// 6 | /// Model for review list. 7 | /// 8 | [Preserve(AllMembers = true)] 9 | public class Customer 10 | { 11 | /// 12 | /// Gets or sets the property that holds the customer id. 13 | /// 14 | public int CustomerId { get; set; } 15 | 16 | /// 17 | /// Gets or sets the property that has been bound with a label, which displays the customer name. 18 | /// 19 | public string CustomerName { get; set; } 20 | 21 | /// 22 | /// Gets or sets the property that has been bound with label, which displays the address type. 23 | /// 24 | public string AddressType { get; set; } 25 | 26 | /// 27 | /// Gets or sets the property that has been bound with label, which displays the customer address. 28 | /// 29 | public string Address { get; set; } 30 | 31 | /// 32 | /// Gets or sets the property that has been bound with label, which displays the customer mobile number. 33 | /// 34 | public string MobileNumber { get; set; } 35 | } 36 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/HomePageMasterMenuItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | 4 | namespace ShoppingCart.Models 5 | { 6 | public class HomePageMasterMenuItem 7 | { 8 | public HomePageMasterMenuItem() 9 | { 10 | TargetType = typeof(HomePageMasterMenuItem); 11 | } 12 | 13 | public int Id { get; set; } 14 | public string Title { get; set; } 15 | 16 | public Type TargetType { get; set; } 17 | 18 | public string TitleIcon { get; set; } 19 | } 20 | 21 | public enum MenuPage 22 | { 23 | [Description("home")] Home = 1, 24 | [Description("about us")] About = 2, 25 | [Description("contact us")] Contact = 3, 26 | } 27 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/LocationMarker.cs: -------------------------------------------------------------------------------- 1 | using Syncfusion.SfMaps.XForms; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace ShoppingCart.Models 5 | { 6 | [Preserve(AllMembers = true)] 7 | public class LocationMarker : MapMarker 8 | { 9 | #region Properties 10 | 11 | /// 12 | /// Gets or sets the image to pin location. 13 | /// 14 | public string PinImage { get; set; } 15 | 16 | /// 17 | /// Gets or sets the header. 18 | /// 19 | public string Header { get; set; } 20 | 21 | /// 22 | /// Gets or sets the address. 23 | /// 24 | public string Address { get; set; } 25 | 26 | /// 27 | /// Gets or sets the email id. 28 | /// 29 | public string EmailId { get; set; } 30 | 31 | /// 32 | /// Gets or sets the phone number. 33 | /// 34 | public string PhoneNumber { get; set; } 35 | 36 | /// 37 | /// Gets or sets the close icon image. 38 | /// 39 | public string CloseImage { get; set; } 40 | 41 | #endregion 42 | } 43 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/Payment.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace ShoppingCart.Models 4 | { 5 | /// 6 | /// Model for list view item in payment view. 7 | /// 8 | [Preserve(AllMembers = true)] 9 | public class Payment 10 | { 11 | /// 12 | /// Gets or sets the property that has been bound with a label, which displays the payment mode. 13 | /// 14 | public string PaymentMode { get; set; } 15 | 16 | /// 17 | /// Gets or sets the property that has been bound with a label, which displays the card number. 18 | /// 19 | public string CardNumber { get; set; } 20 | 21 | /// 22 | /// Gets or sets the property that has been bound with an image, which displays the card type. 23 | /// 24 | public string CardTypeIcon { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/PreviewImage.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace ShoppingCart.Models 5 | { 6 | /// 7 | /// Model for preview image. 8 | /// 9 | [DataContract] 10 | [Preserve(AllMembers = true)] 11 | public class PreviewImage 12 | { 13 | #region Fields 14 | 15 | private string image; 16 | 17 | #endregion 18 | 19 | #region Properties 20 | 21 | [DataMember(Name = "id")] public int ID { get; set; } 22 | 23 | [DataMember(Name = "previewimage")] 24 | public string Image 25 | { 26 | get => App.BaseImageUrl + image; 27 | set => image = value; 28 | } 29 | 30 | #endregion 31 | } 32 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/ReviewImage.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace ShoppingCart.Models 5 | { 6 | /// 7 | /// Model for review image. 8 | /// 9 | [DataContract] 10 | [Preserve(AllMembers = true)] 11 | public class ReviewImage 12 | { 13 | #region 14 | 15 | private string image; 16 | 17 | #endregion 18 | 19 | [DataMember(Name = "id")] public int ID { get; set; } 20 | 21 | [DataMember(Name = "reviewimage")] 22 | public string Image 23 | { 24 | get => App.BaseImageUrl + image; 25 | set => image = value; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/Status.cs: -------------------------------------------------------------------------------- 1 | namespace ShoppingCart.Models 2 | { 3 | public class Status 4 | { 5 | public bool IsSuccess { get; set; } 6 | public string Message { get; set; } 7 | public string UserName { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/SubCategory.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace ShoppingCart.Models 5 | { 6 | /// 7 | /// Model for subcategory. 8 | /// 9 | [DataContract] 10 | [Preserve(AllMembers = true)] 11 | public class SubCategory 12 | { 13 | #region Fields 14 | 15 | #endregion 16 | 17 | #region Properties 18 | 19 | [DataMember(Name = "id")] public int ID { get; set; } 20 | 21 | [DataMember(Name = "icon")] public string Icon { get; set; } 22 | 23 | [DataMember(Name = "name")] public string Name { get; set; } 24 | 25 | [DataMember(Name = "categoryid")] public int CategoryId { get; set; } 26 | 27 | #endregion 28 | } 29 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/User.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace ShoppingCart.Models 4 | { 5 | /// 6 | /// Model for user. 7 | /// 8 | [Preserve(AllMembers = true)] 9 | public class User 10 | { 11 | public int ID { get; set; } 12 | public string Name { get; set; } 13 | public string EmailId { get; set; } 14 | public string Password { get; set; } 15 | public string Salt { get; set; } 16 | public int AddressId { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/UserCard.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace ShoppingCart.Models 5 | { 6 | /// 7 | /// Model for usercard. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | public class UserCard 11 | { 12 | public int ID { get; set; } 13 | public int UserId { get; set; } 14 | public string CardNumber { get; set; } 15 | public string PaymentMode { get; set; } 16 | public bool IsDeleted { get; set; } 17 | public DateTime AddedDate { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/UserCart.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.Serialization; 4 | using Xamarin.Forms.Internals; 5 | 6 | namespace ShoppingCart.Models 7 | { 8 | /// 9 | /// Model for user cart. 10 | /// 11 | [DataContract] 12 | [Preserve(AllMembers = true)] 13 | public class UserCart : INotifyPropertyChanged 14 | { 15 | private Product product; 16 | 17 | [DataMember(Name = "id")] public int ID { get; set; } 18 | 19 | [DataMember(Name = "userid")] public int? UserId { get; set; } 20 | 21 | [DataMember(Name = "productid")] public int? ProductId { get; set; } 22 | 23 | [DataMember(Name = "totalquantity")] public int TotalQuantity { get; set; } 24 | 25 | [DataMember(Name = "product")] 26 | public Product Product 27 | { 28 | get => product; 29 | set 30 | { 31 | product = value; 32 | OnPropertyChanged(); 33 | } 34 | } 35 | 36 | 37 | public event PropertyChangedEventHandler PropertyChanged; 38 | 39 | private void OnPropertyChanged([CallerMemberName] string propertyName = "") 40 | { 41 | if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Models/UserInfo.cs: -------------------------------------------------------------------------------- 1 | using SQLite; 2 | 3 | namespace ShoppingCart.Models 4 | { 5 | public class UserInfo 6 | { 7 | [PrimaryKey] [AutoIncrement] public int ID { get; set; } 8 | 9 | public int UserId { get; set; } 10 | public string EmailId { get; set; } 11 | public string UserName { get; set; } 12 | public bool IsNewUser { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Themes/LightTheme.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Themes 5 | { 6 | [Preserve(AllMembers = true)] 7 | [XamlCompilation(XamlCompilationOptions.Compile)] 8 | public partial class LightTheme 9 | { 10 | public LightTheme() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/ViewModels/BaseViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.CompilerServices; 3 | 4 | namespace ShoppingCart.ViewModels 5 | { 6 | public class BaseViewModel : INotifyPropertyChanged 7 | { 8 | #region Private 9 | 10 | private bool isBusy; 11 | 12 | #endregion 13 | 14 | #region Properties 15 | 16 | public bool IsBusy 17 | { 18 | get => isBusy; 19 | set 20 | { 21 | isBusy = value; 22 | OnPropertyChanged(); 23 | } 24 | } 25 | 26 | #endregion 27 | 28 | #region INotifyPropertyChanged 29 | 30 | public event PropertyChangedEventHandler PropertyChanged; 31 | 32 | protected void OnPropertyChanged([CallerMemberName] string propertyName = "") 33 | { 34 | var changed = PropertyChanged; 35 | if (changed == null) return; 36 | 37 | changed.Invoke(this, new PropertyChangedEventArgs(propertyName)); 38 | } 39 | 40 | #endregion 41 | } 42 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/ViewModels/Forms/LoginViewModel.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace ShoppingCart.ViewModels.Forms 4 | { 5 | /// 6 | /// ViewModel for login page. 7 | /// 8 | [Preserve(AllMembers = true)] 9 | public class LoginViewModel : BaseViewModel 10 | { 11 | #region Fields 12 | 13 | private string email; 14 | 15 | private bool isInvalidEmail; 16 | 17 | #endregion 18 | 19 | #region Property 20 | 21 | /// 22 | /// Gets or sets the property that bounds with an entry that gets the email ID from user in the login page. 23 | /// 24 | public string Email 25 | { 26 | get => email; 27 | 28 | set 29 | { 30 | if (email == value) return; 31 | 32 | email = value; 33 | OnPropertyChanged(); 34 | } 35 | } 36 | 37 | /// 38 | /// Gets or sets a value indicating whether the entered email is valid or invalid. 39 | /// 40 | public bool IsInvalidEmail 41 | { 42 | get => isInvalidEmail; 43 | 44 | set 45 | { 46 | if (isInvalidEmail == value) return; 47 | 48 | isInvalidEmail = value; 49 | OnPropertyChanged(); 50 | } 51 | } 52 | 53 | #endregion 54 | } 55 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/AboutUs/AboutUsSimplePage.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.AboutUs 5 | { 6 | /// 7 | /// About us simple page. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class AboutUsSimplePage 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public AboutUsSimplePage() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/AboutUs/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace ShoppingCart.Views.AboutUs 4 | { 5 | [Preserve(AllMembers = true)] 6 | public partial class Styles 7 | { 8 | public Styles() 9 | { 10 | InitializeComponent(); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Bookmarks/CartPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DataService; 2 | using ShoppingCart.ViewModels.Bookmarks; 3 | using Xamarin.Forms.Internals; 4 | using Xamarin.Forms.Xaml; 5 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 6 | 7 | namespace ShoppingCart.Views.Bookmarks 8 | { 9 | /// 10 | /// Page to show the cart list. 11 | /// 12 | [Preserve(AllMembers = true)] 13 | [XamlCompilation(XamlCompilationOptions.Compile)] 14 | public partial class CartPage 15 | { 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | public CartPage() 20 | { 21 | InitializeComponent(); 22 | var cartDataService = App.MockDataService 23 | ? TypeLocator.Resolve() 24 | : DataService.TypeLocator.Resolve(); 25 | BindingContext = new CartPageViewModel(cartDataService); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Bookmarks/PriceDetailView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Internals; 3 | using Xamarin.Forms.Xaml; 4 | 5 | namespace ShoppingCart.Views.Bookmarks 6 | { 7 | /// 8 | /// The PriceDetail View. 9 | /// 10 | [Preserve(AllMembers = true)] 11 | [XamlCompilation(XamlCompilationOptions.Compile)] 12 | public partial class PriceDetailView 13 | { 14 | /// 15 | /// Gets or sets the ActionTextProperty, and it is a bindable property. 16 | /// 17 | public static readonly BindableProperty ActionTextProperty = 18 | BindableProperty.Create("ActionText", typeof(string), typeof(PriceDetailView)); 19 | 20 | #region Constructor 21 | 22 | /// 23 | /// Initializes a new instance of the class. 24 | /// 25 | public PriceDetailView() 26 | { 27 | InitializeComponent(); 28 | } 29 | 30 | #endregion 31 | 32 | #region Public properties 33 | 34 | /// 35 | /// Gets or sets the Action Text. 36 | /// 37 | public string ActionText 38 | { 39 | get => (string) GetValue(ActionTextProperty); 40 | set => SetValue(ActionTextProperty, value); 41 | } 42 | 43 | #endregion 44 | } 45 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Bookmarks/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Bookmarks 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup and allows to change the appearance of apps more easily. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Bookmarks/WishlistPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DataService; 2 | using ShoppingCart.ViewModels.Bookmarks; 3 | using Xamarin.Forms; 4 | using Xamarin.Forms.Internals; 5 | using Xamarin.Forms.Xaml; 6 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 7 | 8 | namespace ShoppingCart.Views.Bookmarks 9 | { 10 | /// 11 | /// Page to show the wishlist. 12 | /// 13 | [Preserve(AllMembers = true)] 14 | [XamlCompilation(XamlCompilationOptions.Compile)] 15 | public partial class WishlistPage : ContentPage 16 | { 17 | public WishlistPage() 18 | { 19 | InitializeComponent(); 20 | var wishlistDataService = App.MockDataService 21 | ? TypeLocator.Resolve() 22 | : DataService.TypeLocator.Resolve(); 23 | var cartDataService = App.MockDataService 24 | ? TypeLocator.Resolve() 25 | : DataService.TypeLocator.Resolve(); 26 | BindingContext = new WishlistViewModel(wishlistDataService, cartDataService); 27 | } 28 | 29 | protected override void OnAppearing() 30 | { 31 | base.OnAppearing(); 32 | var wishListVM = BindingContext as WishlistViewModel; 33 | if (wishListVM != null) 34 | Device.BeginInvokeOnMainThread(() => { wishListVM.FetchWishlist(); }); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Catalog/CatalogListPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DataService; 2 | using ShoppingCart.ViewModels.Catalog; 3 | using Xamarin.Forms.Internals; 4 | using Xamarin.Forms.Xaml; 5 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 6 | 7 | namespace ShoppingCart.Views.Catalog 8 | { 9 | /// 10 | /// Page to show the catalog list. 11 | /// 12 | [Preserve(AllMembers = true)] 13 | [XamlCompilation(XamlCompilationOptions.Compile)] 14 | public partial class CatalogListPage 15 | { 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | public CatalogListPage(string selectedCategory) 20 | { 21 | InitializeComponent(); 22 | var catalogDataService = App.MockDataService 23 | ? TypeLocator.Resolve() 24 | : DataService.TypeLocator.Resolve(); 25 | var cartDataService = App.MockDataService 26 | ? TypeLocator.Resolve() 27 | : DataService.TypeLocator.Resolve(); 28 | var wishlistDataService = App.MockDataService 29 | ? TypeLocator.Resolve() 30 | : DataService.TypeLocator.Resolve(); 31 | BindingContext = new CatalogPageViewModel(catalogDataService, cartDataService, wishlistDataService, 32 | selectedCategory); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Catalog/CategoryTilePage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DataService; 2 | using ShoppingCart.ViewModels.Catalog; 3 | using Xamarin.Forms.Internals; 4 | using Xamarin.Forms.Xaml; 5 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 6 | 7 | namespace ShoppingCart.Views.Catalog 8 | { 9 | /// 10 | /// The Category Tile page. 11 | /// 12 | [Preserve(AllMembers = true)] 13 | [XamlCompilation(XamlCompilationOptions.Compile)] 14 | public partial class CategoryTilePage 15 | { 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | public CategoryTilePage(string selectedCategory) 20 | { 21 | InitializeComponent(); 22 | var categoryDataService = App.MockDataService 23 | ? TypeLocator.Resolve() 24 | : DataService.TypeLocator.Resolve(); 25 | BindingContext = new CategoryPageViewModel(categoryDataService, selectedCategory); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Catalog/ProductHomePage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DataService; 2 | using ShoppingCart.ViewModels.Catalog; 3 | using Xamarin.Forms; 4 | using Xamarin.Forms.Internals; 5 | using Xamarin.Forms.Xaml; 6 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 7 | 8 | namespace ShoppingCart.Views.Catalog 9 | { 10 | [Preserve(AllMembers = true)] 11 | [XamlCompilation(XamlCompilationOptions.Compile)] 12 | public partial class ProductHomePage : ContentPage 13 | { 14 | public ProductHomePage() 15 | { 16 | InitializeComponent(); 17 | var productHomeDataService = App.MockDataService 18 | ? TypeLocator.Resolve() 19 | : DataService.TypeLocator.Resolve(); 20 | var catalogDataService = App.MockDataService 21 | ? TypeLocator.Resolve() 22 | : DataService.TypeLocator.Resolve(); 23 | BindingContext = new ProductHomePageViewModel(productHomeDataService, catalogDataService); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Catalog/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Catalog 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup, and allows an apps appearance to be more easily changed. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/ContactUs/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace ShoppingCart.Views.ContactUs 4 | { 5 | /// 6 | /// Class helps to reduce repetitive markup and allows to change the appearance of apps more easily. 7 | /// 8 | [Preserve(AllMembers = true)] 9 | public partial class Styles 10 | { 11 | public Styles() 12 | { 13 | InitializeComponent(); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Detail/FeedbackView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Detail 5 | { 6 | /// 7 | /// The Feedback view 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class FeedbackView 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public FeedbackView() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Detail/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Detail 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup, and allows an apps appearance to be more easily changed. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/ErrorandEmpty/EmptyView.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.ViewModels.ErrorAndEmpty; 2 | using Xamarin.Forms; 3 | using Xamarin.Forms.Internals; 4 | using Xamarin.Forms.Xaml; 5 | 6 | namespace ShoppingCart.Views.ErrorAndEmpty 7 | { 8 | /// 9 | /// Page to show the empty cart 10 | /// 11 | [Preserve(AllMembers = true)] 12 | [XamlCompilation(XamlCompilationOptions.Compile)] 13 | public partial class EmptyView 14 | { 15 | /// 16 | /// Initializes a new instance of the class. 17 | /// 18 | public EmptyView(bool IsCartPage, string headerText, string contentText, string imagepath = "EmptyCart.svg") 19 | { 20 | InitializeComponent(); 21 | BindingContext = new EmptyCartPageViewModel(IsCartPage, headerText, contentText, imagepath); 22 | } 23 | 24 | /// 25 | /// Invoked when view size is changed. 26 | /// 27 | /// The Width 28 | /// The Height 29 | protected override void OnSizeAllocated(double width, double height) 30 | { 31 | base.OnSizeAllocated(width, height); 32 | 33 | if (width > height) 34 | { 35 | if (Device.Idiom == TargetIdiom.Phone) ErrorImage.IsVisible = false; 36 | } 37 | else 38 | { 39 | ErrorImage.IsVisible = true; 40 | } 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/ErrorandEmpty/NoInternetConnectionPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Internals; 3 | using Xamarin.Forms.Xaml; 4 | 5 | namespace ShoppingCart.Views.ErrorAndEmpty 6 | { 7 | /// 8 | /// Page to show the no internet connection error 9 | /// 10 | [Preserve(AllMembers = true)] 11 | [XamlCompilation(XamlCompilationOptions.Compile)] 12 | public partial class NoInternetConnectionPage 13 | { 14 | /// 15 | /// Initializes a new instance of the class. 16 | /// 17 | public NoInternetConnectionPage() 18 | { 19 | InitializeComponent(); 20 | } 21 | 22 | /// 23 | /// Invoked when view size is changed. 24 | /// 25 | /// The Width 26 | /// The Height 27 | protected override void OnSizeAllocated(double width, double height) 28 | { 29 | base.OnSizeAllocated(width, height); 30 | 31 | if (width > height) 32 | { 33 | if (Device.Idiom == TargetIdiom.Phone) ErrorImage.IsVisible = false; 34 | } 35 | else 36 | { 37 | ErrorImage.IsVisible = true; 38 | } 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/ErrorandEmpty/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.ErrorAndEmpty 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup, and allows an apps appearance to be more easily changed. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Forms/SimpleEmailEntry.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Forms 5 | { 6 | /// 7 | /// View used to show the email entry with validation status. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class SimpleEmailEntry 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public SimpleEmailEntry() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Forms/SimpleForgotPasswordPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DataService; 2 | using ShoppingCart.ViewModels.Forms; 3 | using Xamarin.Forms.Internals; 4 | using Xamarin.Forms.Xaml; 5 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 6 | 7 | namespace ShoppingCart.Views.Forms 8 | { 9 | /// 10 | /// Page to retrieve the password forgotten. 11 | /// 12 | [Preserve(AllMembers = true)] 13 | [XamlCompilation(XamlCompilationOptions.Compile)] 14 | public partial class SimpleForgotPasswordPage 15 | { 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | public SimpleForgotPasswordPage() 20 | { 21 | InitializeComponent(); 22 | var userDataService = App.MockDataService 23 | ? TypeLocator.Resolve() 24 | : DataService.TypeLocator.Resolve(); 25 | BindingContext = new ForgotPasswordViewModel(userDataService); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Forms/SimpleLoginPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DataService; 2 | using ShoppingCart.ViewModels.Forms; 3 | using Xamarin.Forms.Internals; 4 | using Xamarin.Forms.Xaml; 5 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 6 | 7 | namespace ShoppingCart.Views.Forms 8 | { 9 | /// 10 | /// Page to login with user name and password 11 | /// 12 | [Preserve(AllMembers = true)] 13 | [XamlCompilation(XamlCompilationOptions.Compile)] 14 | public partial class SimpleLoginPage 15 | { 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | public SimpleLoginPage() 20 | { 21 | InitializeComponent(); 22 | var userDataService = App.MockDataService 23 | ? TypeLocator.Resolve() 24 | : DataService.TypeLocator.Resolve(); 25 | BindingContext = new LoginPageViewModel(userDataService); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Forms/SimpleSignUpPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DataService; 2 | using ShoppingCart.ViewModels.Forms; 3 | using Xamarin.Forms.Internals; 4 | using Xamarin.Forms.Xaml; 5 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 6 | 7 | namespace ShoppingCart.Views.Forms 8 | { 9 | /// 10 | /// Page to sign in with user details. 11 | /// 12 | [Preserve(AllMembers = true)] 13 | [XamlCompilation(XamlCompilationOptions.Compile)] 14 | public partial class SimpleSignUpPage 15 | { 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | public SimpleSignUpPage() 20 | { 21 | InitializeComponent(); 22 | var userDataService = App.MockDataService 23 | ? TypeLocator.Resolve() 24 | : DataService.TypeLocator.Resolve(); 25 | BindingContext = new SignUpPageViewModel(userDataService); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Forms/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Forms 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup, and allows an apps appearance to be more easily changed. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/History/MyOrdersPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using ShoppingCart.DataService; 3 | using ShoppingCart.Models; 4 | using ShoppingCart.ViewModels.History; 5 | using Xamarin.Forms; 6 | using Xamarin.Forms.Xaml; 7 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 8 | 9 | namespace ShoppingCart.Views.History 10 | { 11 | [XamlCompilation(XamlCompilationOptions.Compile)] 12 | public partial class MyOrdersPage : ContentPage 13 | { 14 | public MyOrdersPage() 15 | { 16 | InitializeComponent(); 17 | FetchData(); 18 | } 19 | 20 | public ObservableCollection Data { get; set; } 21 | 22 | private async void FetchData() 23 | { 24 | var cartDataService = App.MockDataService 25 | ? TypeLocator.Resolve() 26 | : DataService.TypeLocator.Resolve(); 27 | var orderedItem = await cartDataService.GetOrderedItemsAsync(App.CurrentUserId); 28 | if (orderedItem != null && orderedItem.Count > 0) 29 | (BindingContext as MyOrdersPageViewModel).MyOrders = new ObservableCollection(orderedItem); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/History/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.History 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup, and allows an apps appearance to be more easily changed. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Home/HomePage.xaml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Home/HomePageMaster.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.ViewModels.Home; 2 | using Syncfusion.ListView.XForms; 3 | using Xamarin.Forms; 4 | using Xamarin.Forms.Xaml; 5 | 6 | namespace ShoppingCart.Views.Home 7 | { 8 | [XamlCompilation(XamlCompilationOptions.Compile)] 9 | public partial class HomePageMaster : ContentPage 10 | { 11 | public SfListView ListView; 12 | 13 | public HomePageMaster() 14 | { 15 | InitializeComponent(); 16 | 17 | BindingContext = new HomePageMasterViewModel(); 18 | ListView = MenuItemsListView; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Home/HomeTabbedPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Home 5 | { 6 | [XamlCompilation(XamlCompilationOptions.Compile)] 7 | public partial class HomeTabbedPage : TabbedPage 8 | { 9 | public HomeTabbedPage() 10 | { 11 | InitializeComponent(); 12 | NavigationPage.SetHasNavigationBar(this, false); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Home/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Home 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup, and allows an apps appearance to be more easily changed. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Onboarding/OnBoardingAnimationPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Onboarding 5 | { 6 | /// 7 | /// Page to display on-boarding gradient with animation 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class OnBoardingAnimationPage 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public OnBoardingAnimationPage() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Onboarding/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Onboarding 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup and allows to change the appearance of apps more easily. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Onboarding/WalkthroughItemPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Onboarding 5 | { 6 | /// 7 | /// Page to display on-boarding gradient with animation 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class WalkthroughItemPage 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public WalkthroughItemPage() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/ReviewsandRatings/ReviewPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.Models; 2 | using Xamarin.Forms.Internals; 3 | using Xamarin.Forms.Xaml; 4 | 5 | namespace ShoppingCart.Views.ReviewsandRatings 6 | { 7 | /// 8 | /// Page to get review from customer 9 | /// 10 | [Preserve(AllMembers = true)] 11 | [XamlCompilation(XamlCompilationOptions.Compile)] 12 | public partial class ReviewPage 13 | { 14 | public ReviewPage(object obj) 15 | { 16 | InitializeComponent(); 17 | productTitle.Text = (obj as UserCart).Product.Name; 18 | ProductImage.Source = (obj as UserCart).Product.PreviewImage; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/ReviewsandRatings/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.ReviewsandRatings 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup and allows to change the appearance of apps more easily. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Transaction/CheckoutPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ShoppingCart.DataService; 2 | using ShoppingCart.ViewModels.Transaction; 3 | using Xamarin.Forms.Internals; 4 | using Xamarin.Forms.Xaml; 5 | using TypeLocator = ShoppingCart.MockDataService.TypeLocator; 6 | 7 | namespace ShoppingCart.Views.Transaction 8 | { 9 | /// 10 | /// Page to show the Checkout details. 11 | /// 12 | [Preserve(AllMembers = true)] 13 | [XamlCompilation(XamlCompilationOptions.Compile)] 14 | public partial class CheckoutPage 15 | { 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | public CheckoutPage() 20 | { 21 | InitializeComponent(); 22 | var userDataService = App.MockDataService 23 | ? TypeLocator.Resolve() 24 | : DataService.TypeLocator.Resolve(); 25 | var cartDataService = App.MockDataService 26 | ? TypeLocator.Resolve() 27 | : DataService.TypeLocator.Resolve(); 28 | var catalogDataService = App.MockDataService 29 | ? TypeLocator.Resolve() 30 | : DataService.TypeLocator.Resolve(); 31 | BindingContext = new CheckoutPageViewModel(userDataService, cartDataService, catalogDataService); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Transaction/DeliveryView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Transaction 5 | { 6 | /// 7 | /// The Delivery view. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class DeliveryView 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public DeliveryView() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Transaction/PaymentSuccessPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Internals; 3 | using Xamarin.Forms.Xaml; 4 | 5 | namespace ShoppingCart.Views.Transaction 6 | { 7 | /// 8 | /// Page to show the payment success. 9 | /// 10 | [Preserve(AllMembers = true)] 11 | [XamlCompilation(XamlCompilationOptions.Compile)] 12 | public partial class PaymentSuccessPage : ContentPage 13 | { 14 | /// 15 | /// Initializes a new instance of the class. 16 | /// 17 | public PaymentSuccessPage() 18 | { 19 | InitializeComponent(); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Transaction/PaymentView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Transaction 5 | { 6 | /// 7 | /// The Payment view. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class PaymentView 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public PaymentView() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Transaction/PriceDetailView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Internals; 3 | using Xamarin.Forms.Xaml; 4 | 5 | namespace ShoppingCart.Views.Transaction 6 | { 7 | /// 8 | /// The PriceDetail View. 9 | /// 10 | [Preserve(AllMembers = true)] 11 | [XamlCompilation(XamlCompilationOptions.Compile)] 12 | public partial class PriceDetailView 13 | { 14 | /// 15 | /// Gets or sets the ActionTextProperty, and it is a bindable property. 16 | /// 17 | public static readonly BindableProperty ActionTextProperty = 18 | BindableProperty.Create("ActionText", typeof(string), typeof(PriceDetailView)); 19 | 20 | #region Constructor 21 | 22 | /// 23 | /// Initializes a new instance of the class. 24 | /// 25 | public PriceDetailView() 26 | { 27 | InitializeComponent(); 28 | } 29 | 30 | #endregion 31 | 32 | #region Public properties 33 | 34 | /// 35 | /// Gets or sets the Action Text. 36 | /// 37 | public string ActionText 38 | { 39 | get => (string) GetValue(ActionTextProperty); 40 | set => SetValue(ActionTextProperty, value); 41 | } 42 | 43 | #endregion 44 | } 45 | } -------------------------------------------------------------------------------- /ShoppingCart/ShoppingCart/Views/Transaction/Styles.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ShoppingCart.Views.Transaction 5 | { 6 | /// 7 | /// Class helps to reduce repetitive markup and allows to change the appearance of apps more easily. 8 | /// 9 | [Preserve(AllMembers = true)] 10 | [XamlCompilation(XamlCompilationOptions.Compile)] 11 | public partial class Styles 12 | { 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public Styles() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /images/EmptyWishList_Android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/images/EmptyWishList_Android.png -------------------------------------------------------------------------------- /images/EmptyWishList_iOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/images/EmptyWishList_iOS.png -------------------------------------------------------------------------------- /images/ProductCartScreen_Android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/images/ProductCartScreen_Android.png -------------------------------------------------------------------------------- /images/ProductCartScreen_iOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/images/ProductCartScreen_iOS.png -------------------------------------------------------------------------------- /images/ProductDetailScreen_Android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/images/ProductDetailScreen_Android.png -------------------------------------------------------------------------------- /images/ProductDetailScreen_iOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/images/ProductDetailScreen_iOS.png -------------------------------------------------------------------------------- /images/ProductHomeScreen_Android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/images/ProductHomeScreen_Android.png -------------------------------------------------------------------------------- /images/ProductHomeScreen_UWP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/images/ProductHomeScreen_UWP.png -------------------------------------------------------------------------------- /images/ProductHomeScreen_iOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syncfusion/xamarin-shopping-cart/3bd368a07649032cc08407c27182d5b2a69f8b50/images/ProductHomeScreen_iOS.png --------------------------------------------------------------------------------