├── DatingApp ├── DatingApp │ ├── ClientApp │ │ ├── src │ │ │ ├── assets │ │ │ │ ├── .gitkeep │ │ │ │ └── styles-external.css │ │ │ ├── app │ │ │ │ ├── components │ │ │ │ │ ├── orders │ │ │ │ │ │ ├── orders.component.scss │ │ │ │ │ │ ├── orders.component.html │ │ │ │ │ │ └── orders.component.ts │ │ │ │ │ ├── customers │ │ │ │ │ │ ├── customers.component.scss │ │ │ │ │ │ ├── customers.component.html │ │ │ │ │ │ └── customers.component.ts │ │ │ │ │ ├── products │ │ │ │ │ │ ├── products.component.scss │ │ │ │ │ │ ├── products.component.html │ │ │ │ │ │ └── products.component.ts │ │ │ │ │ ├── controls │ │ │ │ │ │ ├── search-box.component.scss │ │ │ │ │ │ ├── notifications-viewer.component.scss │ │ │ │ │ │ ├── roles-management.component.scss │ │ │ │ │ │ ├── statistics-demo.component.scss │ │ │ │ │ │ ├── search-box.component.html │ │ │ │ │ │ ├── banner-demo.component.ts │ │ │ │ │ │ ├── users-management.component.scss │ │ │ │ │ │ ├── user-preferences.component.scss │ │ │ │ │ │ ├── todo-demo.component.scss │ │ │ │ │ │ ├── search-box.component.ts │ │ │ │ │ │ ├── role-editor.component.scss │ │ │ │ │ │ ├── user-info.component.scss │ │ │ │ │ │ ├── banner-demo.component.html │ │ │ │ │ │ ├── notifications-viewer.component.html │ │ │ │ │ │ ├── statistics-demo.component.html │ │ │ │ │ │ ├── roles-management.component.html │ │ │ │ │ │ └── users-management.component.html │ │ │ │ │ ├── home │ │ │ │ │ │ ├── home.component.scss │ │ │ │ │ │ ├── home.component.ts │ │ │ │ │ │ └── home.component.html │ │ │ │ │ ├── settings │ │ │ │ │ │ ├── settings.component.scss │ │ │ │ │ │ ├── settings.component.ts │ │ │ │ │ │ └── settings.component.html │ │ │ │ │ ├── not-found │ │ │ │ │ │ ├── not-found.component.scss │ │ │ │ │ │ ├── not-found.component.ts │ │ │ │ │ │ └── not-found.component.html │ │ │ │ │ ├── about │ │ │ │ │ │ ├── about.component.ts │ │ │ │ │ │ ├── _about.component.scss │ │ │ │ │ │ ├── about.component.scss │ │ │ │ │ │ └── about.component.html │ │ │ │ │ ├── login │ │ │ │ │ │ ├── login.component.scss │ │ │ │ │ │ └── login.component.html │ │ │ │ │ ├── app.component.scss │ │ │ │ │ └── app.component.spec.ts │ │ │ │ ├── assets │ │ │ │ │ ├── styles │ │ │ │ │ │ ├── _custom-vendor.scss │ │ │ │ │ │ ├── styles-vendor.css │ │ │ │ │ │ ├── bootstrap4-compatibility.css │ │ │ │ │ │ ├── vertical-tabs.scss │ │ │ │ │ │ ├── alertify.default.css │ │ │ │ │ │ └── alertify.core.css │ │ │ │ │ ├── images │ │ │ │ │ │ ├── app-icon.ico │ │ │ │ │ │ ├── demo │ │ │ │ │ │ │ ├── banner1.png │ │ │ │ │ │ │ ├── banner2.png │ │ │ │ │ │ │ ├── banner3.png │ │ │ │ │ │ │ └── banner4.png │ │ │ │ │ │ ├── logo-black.png │ │ │ │ │ │ └── logo-white.png │ │ │ │ │ └── themes │ │ │ │ │ │ ├── minty.scss │ │ │ │ │ │ ├── united.scss │ │ │ │ │ │ ├── spacelab.scss │ │ │ │ │ │ ├── cosmo.scss │ │ │ │ │ │ ├── flatly.scss │ │ │ │ │ │ ├── lumen.scss │ │ │ │ │ │ ├── journal.scss │ │ │ │ │ │ ├── cerulean.scss │ │ │ │ │ │ ├── pulse.scss │ │ │ │ │ │ ├── sketchy.scss │ │ │ │ │ │ ├── _app-theme.scss │ │ │ │ │ │ ├── slate.scss │ │ │ │ │ │ ├── superhero.scss │ │ │ │ │ │ └── solar.scss │ │ │ │ ├── models │ │ │ │ │ ├── enums.ts │ │ │ │ │ ├── app-theme.model.ts │ │ │ │ │ ├── user-login.model.ts │ │ │ │ │ ├── role.model.ts │ │ │ │ │ ├── user-edit.model.ts │ │ │ │ │ ├── notification.model.ts │ │ │ │ │ ├── login-response.model.ts │ │ │ │ │ ├── user.model.ts │ │ │ │ │ └── permission.model.ts │ │ │ │ ├── directives │ │ │ │ │ ├── autofocus.directive.ts │ │ │ │ │ ├── last-element.directive.ts │ │ │ │ │ ├── equal-validator.directive.ts │ │ │ │ │ ├── bootstrap-tab.directive.ts │ │ │ │ │ ├── bootstrap-toggle.directive.ts │ │ │ │ │ └── bootstrap-datepicker.directive.ts │ │ │ │ ├── services │ │ │ │ │ ├── can-deactivate-guard.service.ts │ │ │ │ │ ├── animations.ts │ │ │ │ │ ├── db-keys.ts │ │ │ │ │ ├── auth-guard.service.ts │ │ │ │ │ ├── app-title.service.ts │ │ │ │ │ ├── jwt-helper.ts │ │ │ │ │ └── app-translation.service.ts │ │ │ │ ├── pipes │ │ │ │ │ └── group-by.pipe.ts │ │ │ │ ├── app-error.handler.ts │ │ │ │ └── app-routing.module.ts │ │ │ ├── tsconfig.app.json │ │ │ ├── tsconfig.spec.json │ │ │ ├── environments │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── tslint.json │ │ │ ├── browserslist │ │ │ ├── main.ts │ │ │ ├── test.ts │ │ │ ├── index.html │ │ │ ├── karma.conf.js │ │ │ └── polyfills.ts │ │ ├── e2e │ │ │ ├── tsconfig.e2e.json │ │ │ ├── src │ │ │ │ ├── app.po.ts │ │ │ │ └── app.e2e-spec.ts │ │ │ └── protractor.conf.js │ │ ├── .editorconfig │ │ ├── tsconfig.json │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ └── tslint.json │ ├── wwwroot │ │ └── favicon.ico │ ├── Pages │ │ ├── _ViewImports.cshtml │ │ ├── Error.cshtml.cs │ │ └── Error.cshtml │ ├── Helpers │ │ ├── Templates │ │ │ ├── PlainTextTestEmail.template │ │ │ └── TestEmail.template │ │ ├── LoggingEvents.cs │ │ ├── Extensions.cs │ │ ├── MinimumCountAttribute.cs │ │ ├── Utilities.cs │ │ └── EmailTemplates.cs │ ├── ViewModels │ │ ├── ClaimViewModel.cs │ │ ├── OrderViewModel.cs │ │ ├── PermissionViewModel.cs │ │ ├── RoleViewModel.cs │ │ ├── PageHeader.cs │ │ ├── ProductViewModel.cs │ │ ├── CustomerViewModel.cs │ │ ├── AutoMapperProfile.cs │ │ └── UserViewModels.cs │ ├── AppSettings.cs │ ├── Properties │ │ └── launchSettings.json │ ├── web.config │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── Authorization │ │ ├── ViewRoleAuthorizationRequirement.cs │ │ ├── ProfileService.cs │ │ ├── Policies.cs │ │ ├── AssignRolesAuthorizationRequirement.cs │ │ └── UserAccountAuthorizationRequirement.cs │ ├── DesignTimeDbContextFactory.cs │ ├── AuthorizeCheckOperationFilter.cs │ ├── tempkey.rsa │ ├── Program.cs │ ├── Controllers │ │ └── CustomerController.cs │ └── IdentityServerConfig.cs └── DAL │ ├── Core │ ├── Enums.cs │ ├── ProfileConstants.cs │ ├── Interfaces │ │ └── IAccountManager.cs │ └── ApplicationPermissions.cs │ ├── Repositories │ ├── Interfaces │ │ ├── IOrdersRepository.cs │ │ ├── IProductRepository.cs │ │ ├── ICustomerRepository.cs │ │ └── IRepository.cs │ ├── OrdersRepository.cs │ ├── ProductRepository.cs │ ├── CustomerRepository.cs │ └── Repository.cs │ ├── Models │ ├── Interfaces │ │ └── IAuditableEntity.cs │ ├── OrderDetail.cs │ ├── AuditableEntity.cs │ ├── ProductCategory.cs │ ├── Customer.cs │ ├── Order.cs │ ├── Product.cs │ ├── ApplicationUser.cs │ └── ApplicationRole.cs │ ├── HttpUnitOfWork.cs │ ├── IUnitOfWork.cs │ ├── DAL.csproj │ └── UnitOfWork.cs ├── DatingApp.sln └── .gitattributes /DatingApp/DatingApp/ClientApp/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/components/orders/orders.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/components/customers/customers.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/components/products/products.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/assets/styles/_custom-vendor.scss: -------------------------------------------------------------------------------- 1 | $container-max-widths: ( 2 | xl: 1250px 3 | ); 4 | 5 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/DatingApp/HEAD/DatingApp/DatingApp/wwwroot/favicon.ico -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/components/controls/search-box.component.scss: -------------------------------------------------------------------------------- 1 | 2 | .search-icon { 3 | pointer-events: none; 4 | } 5 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/components/controls/notifications-viewer.component.scss: -------------------------------------------------------------------------------- 1 | 2 | .unread { 3 | font-weight: bold; 4 | } 5 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using DatingApp 2 | @namespace DatingApp.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/models/enums.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | export enum Gender { 7 | None, 8 | Female, 9 | Male 10 | } 11 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/assets/images/app-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/DatingApp/HEAD/DatingApp/DatingApp/ClientApp/src/app/assets/images/app-icon.ico -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/assets/images/demo/banner1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/DatingApp/HEAD/DatingApp/DatingApp/ClientApp/src/app/assets/images/demo/banner1.png -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/assets/images/demo/banner2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/DatingApp/HEAD/DatingApp/DatingApp/ClientApp/src/app/assets/images/demo/banner2.png -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/assets/images/demo/banner3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/DatingApp/HEAD/DatingApp/DatingApp/ClientApp/src/app/assets/images/demo/banner3.png -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/assets/images/demo/banner4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/DatingApp/HEAD/DatingApp/DatingApp/ClientApp/src/app/assets/images/demo/banner4.png -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/assets/images/logo-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/DatingApp/HEAD/DatingApp/DatingApp/ClientApp/src/app/assets/images/logo-black.png -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/assets/images/logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/DatingApp/HEAD/DatingApp/DatingApp/ClientApp/src/app/assets/images/logo-white.png -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/components/home/home.component.scss: -------------------------------------------------------------------------------- 1 | button.close { 2 | position: absolute; 3 | top: 0.25rem; 4 | right: 1.5rem; 5 | z-index: 100; 6 | } 7 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/components/settings/settings.component.scss: -------------------------------------------------------------------------------- 1 | .separator-hr { 2 | margin-top: 0; 3 | margin-bottom: 10px; 4 | } 5 | 6 | [hidden] { 7 | display: none; 8 | } 9 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/Helpers/Templates/PlainTextTestEmail.template: -------------------------------------------------------------------------------- 1 | Hello, 2 | This email was sent using the plain text test email template. 3 | The test was on {date}. 4 | 5 | Regards, 6 | QuickApp Template -------------------------------------------------------------------------------- /DatingApp/DAL/Core/Enums.cs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | using System; 7 | 8 | namespace DAL.Core 9 | { 10 | public enum Gender 11 | { 12 | None, 13 | Female, 14 | Male 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/Helpers/Templates/TestEmail.template: -------------------------------------------------------------------------------- 1 |
Hello {user},
2 |This is a TEST email.
3 |The request was on {testDate}.
4 |Regards,
6 |QuickApp Template
-------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/components/not-found/not-found.component.scss: -------------------------------------------------------------------------------- 1 | 2 | .icon-container { 3 | font-size: 5rem; 4 | } 5 | 6 | .error-description { 7 | font-size: 1.5rem; 8 | padding-bottom: 10px; 9 | } 10 | -------------------------------------------------------------------------------- /DatingApp/DAL/Repositories/Interfaces/IOrdersRepository.cs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | using DAL.Models; 7 | 8 | namespace DAL.Repositories.Interfaces 9 | { 10 | public interface IOrdersRepository : IRepository
13 | Request ID: @Model.RequestId
14 |
19 | Swapping to the Development environment displays detailed information about the error that occurred. 20 |
21 |22 | The Development environment shouldn't be enabled for deployed applications. 23 | It can result in displaying sensitive information from exceptions to end users. 24 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 25 | and restarting the app. 26 |
27 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "Server=SQLEXPRESS01;Database=DatingApp;Trusted_Connection=True;MultipleActiveResultSets=true" 4 | }, 5 | 6 | //Note: In Production change this to your actual host (e.g. https://quickapp.ebenmonney.com) 7 | "ApplicationUrl": "http://localhost:5050", 8 | "HttpsRedirectionPort": 443, //Set this to enable https redirection 9 | 10 | "SmtpConfig": { 11 | "Host": "mail.ebenmonney.com", 12 | "Port": 25, 13 | "UseSSL": false, 14 | "Name": "DatingApp Template", 15 | "Username": "quickapp@ebenmonney.com", 16 | "EmailAddress": "quickapp@ebenmonney.com", 17 | "Password": "tempP@ss123" 18 | }, 19 | 20 | // LogLevel Severity: "Trace", "Debug", "Information", "Warning", "Error", "Critical", "None" 21 | "Logging": { 22 | "PathFormat": "Logs/log-{Date}.log", 23 | "LogLevel": { 24 | "Default": "Warning" 25 | } 26 | }, 27 | "AllowedHosts": "*" 28 | } 29 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | // This file can be replaced during build by using the `fileReplacements` array. 7 | // `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`. 8 | // The list of file replacements can be found in `angular.json`. 9 | 10 | export const environment = { 11 | production: false, 12 | baseUrl: null, // Change this to the address of your backend API if different from frontend address 13 | tokenUrl: null, // For IdentityServer/Authorization Server API. You can set to null if same as baseUrl 14 | loginUrl: '/login' 15 | }; 16 | 17 | /* 18 | * For easier debugging in development mode, you can import the following file 19 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 20 | * 21 | * This import should be commented out in production mode because it will have a negative impact 22 | * on performance if an error is thrown. 23 | */ 24 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 25 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/services/db-keys.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | import { Injectable } from '@angular/core'; 7 | 8 | @Injectable() 9 | export class DBkeys { 10 | 11 | public static readonly CURRENT_USER = 'current_user'; 12 | public static readonly USER_PERMISSIONS = 'user_permissions'; 13 | public static readonly ACCESS_TOKEN = 'access_token'; 14 | public static readonly REFRESH_TOKEN = 'refresh_token'; 15 | public static readonly TOKEN_EXPIRES_IN = 'expires_in'; 16 | 17 | public static readonly REMEMBER_ME = 'remember_me'; 18 | 19 | 20 | public static readonly LANGUAGE = 'language'; 21 | public static readonly HOME_URL = 'home_url'; 22 | public static readonly THEME_ID = 'themeId'; 23 | public static readonly SHOW_DASHBOARD_STATISTICS = 'show_dashboard_statistics'; 24 | public static readonly SHOW_DASHBOARD_NOTIFICATIONS = 'show_dashboard_notifications'; 25 | public static readonly SHOW_DASHBOARD_TODO = 'show_dashboard_todo'; 26 | public static readonly SHOW_DASHBOARD_BANNER = 'show_dashboard_banner'; 27 | } 28 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/ClientApp/src/app/components/controls/role-editor.component.scss: -------------------------------------------------------------------------------- 1 | .row:not(:last-child) { 2 | /*border-bottom: 1px solid #ccc;*/ 3 | } 4 | 5 | .separator-hr { 6 | margin: 0 5px; 7 | border-top-style: dashed; 8 | } 9 | 10 | .edit-separator-hr { 11 | margin: 10px 5px; 12 | border-top-style: dashed; 13 | } 14 | 15 | .last-separator-hr { 16 | margin-top: 5px; 17 | } 18 | 19 | .edit-last-separator-hr { 20 | margin-top: 15px; 21 | } 22 | 23 | 24 | .form-group { 25 | margin-top: 0; 26 | margin-bottom: 0; 27 | } 28 | 29 | input.form-control { 30 | border-left-width: 5px; 31 | } 32 | 33 | .invalid-feedback { 34 | display: block; 35 | } 36 | 37 | .group-name { 38 | padding-top: 0; 39 | font-weight: 500; 40 | padding-right: 0; 41 | } 42 | 43 | .permissionsColumn { 44 | margin-bottom: 20px; 45 | } 46 | 47 | .permissionsRow { 48 | margin: 0 15px; 49 | } 50 | 51 | 52 | .well-sm { 53 | padding: 0.5rem; 54 | } 55 | 56 | @media (min-width: 992px) { 57 | .user-enabled { 58 | margin-left: 40px; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /DatingApp/DatingApp/Authorization/ViewRoleAuthorizationRequirement.cs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | using DAL.Core; 7 | using Microsoft.AspNetCore.Authorization; 8 | using System.Collections.Generic; 9 | using System.Text; 10 | using System.Threading.Tasks; 11 | 12 | namespace DatingApp.Authorization 13 | { 14 | public class ViewRoleAuthorizationRequirement : IAuthorizationRequirement 15 | { 16 | 17 | } 18 | 19 | 20 | 21 | public class ViewRoleAuthorizationHandler : AuthorizationHandler32 | DATING APPLICATION 33 |
34 | 35 |8 | Learn how to build ASP.NET apps that can run anywhere 9 | 10 | Learn More 11 | 12 |
13 |19 | One platform for building modern web, native mobile and native desktop applications 20 | 21 | Learn More 22 | 23 |
24 |30 | Bring in libraries from NuGet and npm, and bundle with angular/cli 31 | 32 | Learn More 33 | 34 |
35 |41 |
42 |This Application build used by following technologies
9 | 10 || 21 | | {{label}} | 22 |
|---|---|
| {{d && d.label.split(' ').pop()}} | 27 |{{d && d.data[j]}} | 28 |