ResetPassword(ResetPasswordCommand command);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Interfaces/IStripeService.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Beniamin Jitca. All rights reserved.
3 | //
4 |
5 | namespace BlazorShop.WebClient.Interfaces
6 | {
7 | ///
8 | /// The service to interact with the stripe.
9 | ///
10 | public interface IStripeService
11 | {
12 | ///
13 | /// Cancel the membership.
14 | ///
15 | /// The id of the stripe created subscription.
16 | /// A representing the result of the asynchronous operation.
17 | Task CancelMembership(string stripeSubscriptionCreationId);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Pages/Account/Logout.razor:
--------------------------------------------------------------------------------
1 | @*
2 |
3 | Copyright (c) Beniamin Jitca. All rights reserved.
4 |
5 | *@
6 |
7 | @page "/logout"
8 |
9 | @attribute [Authorize]
10 |
11 | @inject NavigationManager NavManager
12 | @inject IAuthenticationService AuthService
13 |
14 | @code {
15 | ///
16 | /// Initialize the component on load.
17 | ///
18 | protected override async Task OnInitializedAsync()
19 | {
20 | await AuthService.Logout();
21 | NavManager.NavigateTo("/");
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Pages/Admin/Todos/Index.razor:
--------------------------------------------------------------------------------
1 | @*
2 |
3 | Copyright (c) Beniamin Jitca. All rights reserved.
4 |
5 | *@
6 |
7 | @page "/admin/todo"
8 |
9 | Todos
10 |
11 | Todos
12 |
13 | This component demonstrates ...
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Pages/Admin/Todos/TodoItems.razor.css:
--------------------------------------------------------------------------------
1 | #todo-items .item-input-control {
2 | border: 0;
3 | box-shadow: none;
4 | background-color: transparent;
5 | }
6 |
7 | #todo-items .done-todo {
8 | text-decoration: line-through;
9 | }
10 |
11 | #todo-items .todo-item-title {
12 | padding-top: 8px;
13 | }
14 |
15 | #todo-items .list-group-item {
16 | padding-top: 8px;
17 | padding-bottom: 8px;
18 | }
19 |
20 | #todo-items .list-group-item .btn-xs {
21 | padding: 0;
22 | }
23 |
24 | #todo-items .todo-item-checkbox {
25 | padding-top: 8px;
26 | }
27 |
28 | #todo-items .todo-item-commands {
29 | padding-top: 4px;
30 | }
31 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Pages/Admin/Todos/TodoState.razor:
--------------------------------------------------------------------------------
1 | @*
2 |
3 | Copyright (c) Beniamin Jitca. All rights reserved.
4 |
5 | *@
6 |
7 |
8 | @ChildContent
9 |
10 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Pages/Internal/Not-found.razor:
--------------------------------------------------------------------------------
1 | @*
2 |
3 | Copyright (c) Beniamin Jitca. All rights reserved.
4 |
5 | *@
6 |
7 | @page "/not-found"
8 |
9 | @inject AuthenticationStateProvider AuthStateProvider
10 | @inject IAuthenticationService AuthService
11 | @inject NavigationManager NavManager
12 |
13 | Not Found
14 |
15 |
16 |
The requested resource was not found....
17 |
18 |
19 | @code {
20 |
21 | ///
22 | /// Initialize the component on load.
23 | ///
24 | protected override async Task OnInitializedAsync()
25 | {
26 | await this.AuthService.Logout();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Pages/Internal/Server-error.razor:
--------------------------------------------------------------------------------
1 | @*
2 |
3 | Copyright (c) Beniamin Jitca. All rights reserved.
4 |
5 | *@
6 |
7 | @page "/server-error"
8 |
9 | @inject AuthenticationStateProvider AuthStateProvider
10 | @inject IAuthenticationService AuthService
11 | @inject NavigationManager NavManager
12 |
13 | Server Error
14 |
15 |
16 |
Something went wrong, please contact Administrator or try again later...
17 |
18 |
19 | @code {
20 |
21 | ///
22 | /// Initialize the component on load.
23 | ///
24 | protected override async Task OnInitializedAsync()
25 | {
26 | await this.AuthService.Logout();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Pages/Internal/Unauthorized.razor:
--------------------------------------------------------------------------------
1 | @*
2 |
3 | Copyright (c) Beniamin Jitca. All rights reserved.
4 |
5 | *@
6 |
7 | @page "/unauthorized"
8 |
9 | @inject AuthenticationStateProvider AuthStateProvider
10 | @inject IAuthenticationService AuthService
11 | @inject NavigationManager NavManager
12 |
13 | Unauthorized Request
14 |
15 |
16 |
User is not authorized...
17 |
18 |
19 | @code {
20 |
21 | ///
22 | /// Initialize the component on load.
23 | ///
24 | protected override async Task OnInitializedAsync()
25 | {
26 | await this.AuthService.Logout();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "iisSettings": {
3 | "windowsAuthentication": false,
4 | "anonymousAuthentication": true,
5 | "iisExpress": {
6 | "applicationUrl": "http://localhost:15337",
7 | "sslPort": 44321
8 | }
9 | },
10 | "profiles": {
11 | "WebClient": {
12 | "commandName": "Project",
13 | "dotnetRunMessages": true,
14 | "launchBrowser": true,
15 | "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
16 | "applicationUrl": "https://localhost:7066;http://localhost:5066",
17 | "environmentVariables": {
18 | "ASPNETCORE_ENVIRONMENT": "Development"
19 | }
20 | },
21 | "IIS Express": {
22 | "commandName": "IISExpress",
23 | "launchBrowser": true,
24 | "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
25 | "environmentVariables": {
26 | "ASPNETCORE_ENVIRONMENT": "Development"
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Shared/AppState.razor:
--------------------------------------------------------------------------------
1 | @*
2 |
3 | Copyright (c) Beniamin Jitca. All rights reserved.
4 |
5 | *@
6 |
7 | @inject IJSInProcessRuntime JS
8 |
9 |
10 | @ChildContent
11 |
12 |
13 | @code {
14 | [Parameter] public RenderFragment? ChildContent { get; set; }
15 |
16 | private int _currentCount;
17 |
18 | public int CurrentCount
19 | {
20 | get
21 | {
22 | return _currentCount;
23 | }
24 | set
25 | {
26 | _currentCount = value;
27 | JS.InvokeVoid(JsInteropConstants.SetSessionStorage, nameof(CurrentCount), value);
28 | StateHasChanged();
29 | }
30 | }
31 |
32 | ///
33 | /// Initialize the component on load.
34 | ///
35 | protected override void OnInitialized()
36 | {
37 | var value = JS.Invoke(JsInteropConstants.GetSessionStorage, nameof(CurrentCount));
38 | int.TryParse(value, out _currentCount);
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Shared/JsInteropConstants.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Beniamin Jitca. All rights reserved.
3 | //
4 |
5 | namespace BlazorShop.WebClient.Shared
6 | {
7 | ///
8 | /// A runtime JS constants.
9 | ///
10 | public static class JsInteropConstants
11 | {
12 | ///
13 | /// Gets the session storage.
14 | ///
15 | public const string GetSessionStorage = $"{FuncPrefix}.getSessionStorage";
16 |
17 | ///
18 | /// Sets the session storage.
19 | ///
20 | public const string SetSessionStorage = $"{FuncPrefix}.setSessionStorage";
21 |
22 | ///
23 | /// The modal name.
24 | ///
25 | public const string HideModal = $"{FuncPrefix}.hideModal";
26 |
27 | ///
28 | /// The name of the JS runtimes.
29 | ///
30 | private const string FuncPrefix = "BlazorShop";
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/Shared/NavMenu.razor.css:
--------------------------------------------------------------------------------
1 | .navbar-toggler {
2 | background-color: rgba(255, 255, 255, 0.1);
3 | }
4 |
5 | .top-row {
6 | height: 3.5rem;
7 | background-color: rgba(0,0,0,0.4);
8 | }
9 |
10 | .navbar-brand {
11 | font-size: 1.1rem;
12 | }
13 |
14 | .oi {
15 | width: 2rem;
16 | font-size: 1.1rem;
17 | vertical-align: text-top;
18 | top: -2px;
19 | }
20 |
21 | .nav-item {
22 | font-size: 0.9rem;
23 | padding-bottom: 0.5rem;
24 | }
25 |
26 | .nav-item:first-of-type {
27 | padding-top: 1rem;
28 | }
29 |
30 | .nav-item:last-of-type {
31 | padding-bottom: 1rem;
32 | }
33 |
34 | .nav-item ::deep a {
35 | color: #d7d7d7;
36 | border-radius: 4px;
37 | height: 3rem;
38 | display: flex;
39 | align-items: center;
40 | line-height: 3rem;
41 | }
42 |
43 | .nav-item ::deep a.active {
44 | background-color: rgba(255,255,255,0.25);
45 | color: white;
46 | }
47 |
48 | .nav-item ::deep a:hover {
49 | background-color: rgba(255,255,255,0.1);
50 | color: white;
51 | }
52 |
53 | @media (min-width: 641px) {
54 | .navbar-toggler {
55 | display: none;
56 | }
57 |
58 | .collapse {
59 | /* Never collapse the sidebar for wide screens */
60 | display: block;
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/_Imports.razor:
--------------------------------------------------------------------------------
1 | @*
2 |
3 | Copyright (c) Beniamin Jitca. All rights reserved.
4 |
5 | *@
6 |
7 | @using System.Net.Http
8 | @using System.Net.Http.Json
9 | @using Microsoft.AspNetCore.Authorization
10 | @using Microsoft.AspNetCore.Components.Authorization
11 | @using Microsoft.AspNetCore.Components.Forms
12 | @using Microsoft.AspNetCore.Components.Routing
13 | @using Microsoft.AspNetCore.Components.Web
14 | @using Microsoft.AspNetCore.Components.Web.Virtualization
15 | @using Microsoft.AspNetCore.Components.WebAssembly.Http
16 | @using Microsoft.JSInterop
17 | @using BlazorShop.WebClient
18 | @using BlazorShop.WebClient.Shared
19 | @using BlazorShop.WebClient.Auth
20 | @using BlazorShop.Application.Responses
21 | @using BlazorShop.WebClient.Interfaces;
22 | @using BlazorShop.Application.Commands.UserCommand
23 | @using Blazored.Toast
24 | @using Blazored.Toast.Services
25 | @using Blazored.Toast.Configuration
26 | @using System.ComponentModel.DataAnnotations
27 | @using MatBlazor
28 | @using Radzen.Blazor
29 | @using Radzen
30 | @using BlazorShop.Domain.Enums
31 | @using System.Text.RegularExpressions
32 | @using BlazorShop.Application.Utils;
33 | @using FluentValidation
34 | @using Blazored.FluentValidation
35 | @using BlazorShop.Application.Validators.RoleValidator
36 | @using MudBlazor
37 | @using BlazorShop.WebClient.Interceptor;
38 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/stylecop.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
3 |
4 | "settings": {
5 | "orderingRules": {
6 | "usingDirectivesPlacement": "outsideNamespace",
7 | "blankLinesBetweenUsingGroups": "require"
8 | },
9 | "documentationRules": {
10 | "companyName": "Beniamin Jitca"
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "JwtToken": {
3 | "SecretKey": "!#fDSfdsc47584@?*!",
4 | "Issuer": "https://localhost:5001",
5 | "Audience": "https://localhost:5001"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/audio/music_audio.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/audio/music_audio.mp3
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/css/open-iconic/ICON-LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Waybury
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
13 | all 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
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/css/open-iconic/font/fonts/open-iconic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/css/open-iconic/font/fonts/open-iconic.eot
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/css/open-iconic/font/fonts/open-iconic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/css/open-iconic/font/fonts/open-iconic.otf
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/css/open-iconic/font/fonts/open-iconic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/css/open-iconic/font/fonts/open-iconic.woff
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/icon-192.png
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/basic_subscription.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/basic_subscription.png
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/buy-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/buy-3.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/category-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/category-1.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/category-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/category-2.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/product-10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/product-10.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/product-11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/product-11.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/product-12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/product-12.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/product-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/product-2.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/product-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/product-3.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/product-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/product-4.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/product-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/product-5.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/product-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/product-6.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/clothes/product-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/clothes/product-7.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/enterprise_subscription.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/enterprise_subscription.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/musics/music-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/musics/music-1.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/musics/music-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/musics/music-2.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/musics/music-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/musics/music-3.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/musics/music-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/musics/music-4.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/musics/music-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/musics/music-5.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/musics/music-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/musics/music-6.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/order.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/order.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/orders.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/orders.png
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/pizzas/bacon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/pizzas/bacon.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/pizzas/brit.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/pizzas/brit.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/pizzas/cheese.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/pizzas/cheese.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/pizzas/margherita.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/pizzas/margherita.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/pizzas/meaty.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/pizzas/meaty.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/pizzas/mushroom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/pizzas/mushroom.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/pizzas/pepperoni.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/pizzas/pepperoni.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/pizzas/salad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/pizzas/salad.jpg
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/pro_subscription.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/pro_subscription.png
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/receipt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/receipt.png
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/receipts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/receipts.png
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/subscriptions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/subscriptions.png
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/images/user-profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JBeni/BlazorShop/26a1b08da3e57c1b6500c355a0a1fc61e31bfc7b/BlazorShop.WebClient/wwwroot/images/user-profile.png
--------------------------------------------------------------------------------
/BlazorShop.WebClient/wwwroot/scripts/BlazorShop.js:
--------------------------------------------------------------------------------
1 | var BlazorShop = {};
2 |
3 | BlazorShop.setSessionStorage = function (key, data) {
4 | sessionStorage.setItem(key, data);
5 | }
6 |
7 | BlazorShop.getSessionStorage = function (key) {
8 | return sessionStorage.getItem(key);
9 | }
10 |
11 | BlazorShop.hideModal = function (element) {
12 | bootstrap.Modal.getInstance(element).hide();
13 | }
14 |
--------------------------------------------------------------------------------
/BlazorShop.WorkerService/BlazorShop.WorkerService.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net7.0
5 | enable
6 | enable
7 | BlazorShop.WorkerService
8 | BlazorShop.WorkerService
9 | dotnet-BlazorShop.WorkerService-DB4A398E-2E65-4CE5-BC68-439078003E8F
10 | True
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | all
22 | runtime; build; native; contentfiles; analyzers; buildtransitive
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/BlazorShop.WorkerService/Program.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Beniamin Jitca. All rights reserved.
3 | //
4 |
5 | // The configurations for the background worker.
6 | try
7 | {
8 | IHost host = Host.CreateDefaultBuilder(args)
9 | .ConfigureServices((hostContext, services) =>
10 | {
11 | IConfiguration configuration = hostContext.Configuration;
12 |
13 | services.AddHttpClient();
14 | services.AddDbContext(opts =>
15 | opts.UseSqlServer(
16 | configuration["ConnectionStrings:WebApiConnection"],
17 | b => b.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)));
18 |
19 | services.AddHostedService();
20 | })
21 | .Build();
22 |
23 | await host.RunAsync();
24 | }
25 | catch (Exception ex)
26 | {
27 | Log.Fatal(ex, "Unhandled exception");
28 | }
29 |
--------------------------------------------------------------------------------
/BlazorShop.WorkerService/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "BlazorShop.WorkerService": {
4 | "commandName": "Project",
5 | "dotnetRunMessages": true,
6 | "environmentVariables": {
7 | "DOTNET_ENVIRONMENT": "Development"
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/BlazorShop.WorkerService/_Imports.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Beniamin Jitca. All rights reserved.
3 | //
4 |
5 | global using BlazorShop.Domain.Enums;
6 | global using BlazorShop.Infrastructure.Persistence;
7 | global using BlazorShop.WorkerService;
8 | global using Microsoft.EntityFrameworkCore;
9 | global using Serilog;
10 |
--------------------------------------------------------------------------------
/BlazorShop.WorkerService/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.Hosting.Lifetime": "Information"
6 | }
7 | },
8 |
9 | "ConnectionStrings": {
10 | "WebApiConnection": "Server=.;Database=BlazorShopDb;Trusted_Connection=True;MultipleActiveResultSets=true;"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/BlazorShop.WorkerService/stylecop.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
3 |
4 | "settings": {
5 | "orderingRules": {
6 | "usingDirectivesPlacement": "outsideNamespace",
7 | "blankLinesBetweenUsingGroups": "require"
8 | },
9 | "documentationRules": {
10 | "companyName": "Beniamin Jitca"
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Jîtcă Beniamin
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.
22 |
--------------------------------------------------------------------------------
/README_ToImplement.txt:
--------------------------------------------------------------------------------
1 |
2 | # -> TO DO
3 |
4 | * -> Refresh Token ?! Optional
5 |
--------------------------------------------------------------------------------
/Stripe_WebHook.txt:
--------------------------------------------------------------------------------
1 | Using ngrok
2 |
3 | ngrok authtoken
4 |
5 | Then take the url with ssl from web api, run the below command
6 | ngrok http https://localhost:44351 -host-header="localhost:44351"
7 |
8 | Go to stripe dashboard, webhook section and set the endpoint with the value provided at the above step adding /api/Payments/webhook
9 |
--------------------------------------------------------------------------------