>(
40 | "account", accountId, url);
41 | }
42 |
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/AddAddress.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Add Address";
3 | ViewData["EditMode"] = true;
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 | @if (TempData["ErrorMsg"] != null)
9 | {
10 | @TempData["ErrorMsg"]
11 | }
12 |
13 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/AddPayment.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Add Payment";
3 | ViewData["EditMode"] = true;
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 | @if (TempData["ErrorMsg"] != null)
9 | {
10 | @TempData["ErrorMsg"]
11 | }
12 |
13 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/Address.cshtml:
--------------------------------------------------------------------------------
1 | @using Web.Models.Account;
2 | @model List
3 | @{
4 | ViewData["Title"] = "My Addresses";
5 | ViewData["ShowOptions"] = "True";
6 | }
7 |
8 | @ViewData["Title"]
9 | Here's your list of addresses.
10 |
11 |
12 |
13 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/Create.cshtml:
--------------------------------------------------------------------------------
1 | @model Web.Models.Account.Account
2 | @{
3 | ViewData["Title"] = "Create Account";
4 | ViewData["EditMode"] = true;
5 | ViewData["ShowPassword"] = true;
6 | }
7 |
8 | @if (TempData["ErrorMsg"] != null)
9 | {
10 | @TempData["ErrorMsg"]
11 | }
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/Details.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Account Details";
3 | ViewData["BtnTxt"] = "Update Account";
4 | }
5 |
6 | @ViewData["Title"]
7 | Here's your account info.
8 |
9 |
12 |
16 |
17 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/EditAddress.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Edit Address";
3 | ViewData["EditMode"] = true;
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 | @if (TempData["ErrorMsg"] != null)
9 | {
10 | @TempData["ErrorMsg"]
11 | }
12 |
13 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/EditPayment.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Edit Payment";
3 | ViewData["EditMode"] = true;
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 | @if (TempData["ErrorMsg"] != null)
9 | {
10 | @TempData["ErrorMsg"]
11 | }
12 |
13 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/History.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Account History";
3 | }
4 |
5 |
6 |
@ViewData["Title"]
7 |
These are the last events for your account.
8 |
9 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/Index.cshtml:
--------------------------------------------------------------------------------
1 | @using System.Security.Claims;
2 | @{
3 | ViewData["Title"] = "My Account";
4 | var name = User.FindFirstValue("Name");
5 | }
6 |
7 |
8 |
@ViewData["Title"]
9 |
Welcome back, @name!
10 |
11 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/Orders.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "My orders";
3 | }
4 |
5 |
6 |
@ViewData["Title"]
7 |
These are the existing orders for your account.
8 |
9 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/Payments.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "My Payments";
3 | ViewData["ShowOptions"] = "True";
4 | }
5 |
6 | @ViewData["Title"]
7 | Here's your list of payment types.
8 |
9 |
10 |
11 |
15 |
16 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/SignIn.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Account SignIn";
3 | }
4 |
5 | @if (TempData["Msg"] != null)
6 | {
7 |
8 | @TempData["Msg"]
9 |
10 | }
11 |
12 |
17 |
18 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/Update.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Update Account";
3 | ViewData["EditMode"] = "True";
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Web/Views/Account/UpdatePassword.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Update Password";
3 | }
4 |
5 | @ViewData["Title"]
6 |
7 | @if (TempData["ErrorMsg"] != null)
8 | {
9 | @TempData["ErrorMsg"]
10 | }
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Web/Views/Catalog/Product.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Product";
3 | }
4 |
5 |
6 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/Web/Views/Catalog/Products.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Home Page";
3 | ViewData["Category"] = Model.Name;
4 | ViewData["CategoryId"] = Model.Id;
5 | }
6 |
7 |
8 |
@Model.Name
9 |
@(Model.Description ?? $"Here's our list of products under {Model.Name}")
10 |
11 |
12 |
13 |
21 |
22 |
--------------------------------------------------------------------------------
/src/Web/Views/Home/About.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "About ASP.NET Microservices";
3 | }
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/Web/Views/Home/Cheatsheet.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "About ASP.NET Microservices";
3 | }
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/Web/Views/Home/Help.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "About ASP.NET Microservices";
3 | }
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/Web/Views/Home/Index.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Home Page";
3 | }
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/Web/Views/Order/Checkout.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Checkout";
3 | ViewData["SmWidth"] = "12";
4 | }
5 |
6 | @ViewData["Title"]
7 | Please review the information below. You'll have a chance to review your cart on the next step.
8 |
17 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/Web/Views/Order/Index.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Your Cart";
3 | }
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/Web/Views/Order/Submitted.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Order Submitted";
3 | ViewData["Review"] = true;
4 | }
5 |
6 |
7 |
8 |
9 |
@ViewData["Title"]
10 |
Congratulations, your order was submitted. Here's the summary of your order:
11 |
Order Number: {{ orderNumber }}
12 |
13 |
14 |
Order not found
15 |
Sorry but the order you requested could not be found.
16 |
17 |
18 |
19 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Account/_Create.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Account/_Details.cshtml:
--------------------------------------------------------------------------------
1 | @using Web.Models.Account;
2 | @model AccountDetails
3 |
4 | @{
5 | var editMode = (ViewData["EditMode"] ?? "").ToString() == "True";
6 | }
7 |
8 |
21 |
34 |
35 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Account/_History.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Event
7 | Date
8 |
9 |
10 |
11 |
12 | {{ h.info }}
13 | {{ new Date(h.createdAt).toDateString() }}
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Account/_MyAccount.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
My Account
6 |
7 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
My Orders
22 |
23 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
Other
34 |
35 |
36 | Product Recommendations
37 | Newsletters
38 | etc..
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Account/_SignIn.cshtml:
--------------------------------------------------------------------------------
1 | @using Web.Models.Account;
2 | @model SignIn
3 |
4 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Account/_UpdatePassword.cshtml:
--------------------------------------------------------------------------------
1 | @using Web.Models.Account;
2 | @model UpdatePassword
3 |
4 |
22 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Catalog/_Categories.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Error loading the catalog. Check if you can connect to the
5 | catalog service.
6 |
7 |
19 |
20 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Catalog/_FakeImg.cshtml:
--------------------------------------------------------------------------------
1 | Placeholder
2 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Catalog/_FakeThumbnails.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Catalog/_Products.cshtml:
--------------------------------------------------------------------------------
1 | @using Web.Infrastructure.Global;
2 | @{
3 | var cur = Site.StoreSettings.CurrencyDisplay;
4 | }
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
{{ p.name }}
13 |
14 |
{{ shortDesc(p.description) }}
15 |
@cur {{ parseFloat(p.price).toFixed(2) }}
16 |
View
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_About.cshtml:
--------------------------------------------------------------------------------
1 | @using Web.Infrastructure.Global;
2 |
3 | About
4 | Help and information about the project.
5 |
6 |
7 |
Microservices included in the @Site.StoreSettings.StoreName
8 |
This project is composed of the following microservices:
9 |
20 |
31 |
42 |
43 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_Account.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Account Service
3 |
4 | The Account microservice
5 | manages account information. It persists its data primarily on
6 | a MySQL container and process operations such as creating accounts,
7 | changing password, granting access to the system (no JWT so far), etc.
8 |
9 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_Catalog.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Catalog Service
3 |
4 | The catalog is provided by the
5 | Catalog microservice
6 | which consists of an ASP.NET Core app pulling data from a
7 | MongoDB container. The catalog is initialized with the
8 | docker-compose
script. To change the catalog
9 | information, check th db.js
file on the
10 | CatalogSvc
project.
11 | The catalog information is cached locally
12 | from the Web microservice on a Redis container.
13 |
14 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_Newsletter.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Newsletter Service
3 |
4 | The Newsletter microservice
5 | manages newsletter information. It persists email subscriptions primarily on
6 | a MySQL container. There's no default implementation for newsletter
7 | oprations such as a scheduled job, etc. Feel free to implement yours.
8 |
9 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_Notification.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Email Notifications
3 |
4 | Notifications are provided via asynchronous messages
5 | exchanged via a RabbitMQ Docker container and processed by a .NET Core backend.
6 | Different events (such as newsletter signups, account registrations, etc)
7 | send an async message to the
8 | Notification microservice
9 | that's sends and email to the user using Gmail by default.
10 | The notification service also logs the history of sent messages on a
11 | dedicated MySQL database.
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_Order.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Order Service
3 |
4 | The Order microservice
5 | manages order information and workflow. It persists its data primarily on
6 | a MySQL container and communicates to the other microservices primarily
7 | via asynchronous messages exchanged via a RabbitMQ container.
8 |
9 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_Payment.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Payment Service
3 |
4 | The Payment microservice
5 | simulates a payment gateway and manages the payment workflow.
6 | It persists its data primarily on a MySQL container and communicates
7 | to the other microservices primarily via asynchronous messages exchanges
8 | via a RabbitMQ container.
9 |
10 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_Recommendation.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Recommendation Service
3 |
4 | The Recommendation microservice
5 | simulates a recommendation service by implementing naive recommendations
6 | based on previously completed shopping carts.
7 | It persists its data primarily on a MySQL container and communicates
8 | to the other microservices primarily via asynchronous messages exchanges
9 | via a RabbitMQ container.
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_Shipping.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Shipping Service
3 |
4 | The Shipping microservice
5 | simulates a shipping service and is reached via a RabbitMQ queue
6 | and MassTransit. The service is triggered by the order workflow
7 | whenever shopping carts are approved from the fake
8 | Payment microservice .
9 | The service persists its data primarily on a MySQL container and communicates
10 | to the other microservices primarily via asynchronous messages exchanges
11 | via a RabbitMQ container.
12 |
13 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Help/_Web.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Web
3 |
4 | The Web microservice
5 | is this ASP.NET app that you're accessing at the moment.
6 | It's essentially a BFF (backend for frontend) / Api Gateway
7 | and is the public interface between the user and the other
8 | microservices. Web caches catalog, recommendation and data
9 | from other services on a Redis container.
10 |
11 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Home/_Header.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
ASP.NET Microservices
4 |
5 | This is a sample application to demo Microservices in .NET
6 | using ASP.NET Core, Docker, Redis, MongoDB, MySQL, Vue.js, MassTransit,
7 | Azure and Kubernetes.
8 | The source code is
9 | MIT licensed
10 | and is available at
11 | github.com/hd9/aspnet-microservices .
12 |
13 |
14 | To learn more about this app, microservices, Docker, Azure and Kubernetes,
15 | check: blog.hildenco.com
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Home/_MainContent.cshtml:
--------------------------------------------------------------------------------
1 | @using System.Security.Claims;
2 | @{
3 | var nlSubscribed = User.FindFirstValue("NewsletterSubscribed") == "True";
4 | }
5 |
6 |
7 |
10 |
11 | @if (!User.Identity.IsAuthenticated)
12 | {
13 |
14 | }
15 | else
16 | {
17 |
18 | }
19 |
20 |
21 |
22 | @if (!nlSubscribed)
23 | {
24 |
25 | }
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Home/_SignIn.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Home/_SignInInfo.cshtml:
--------------------------------------------------------------------------------
1 | @using System.Security.Claims;
2 | @{
3 | var name = User.FindFirstValue("Name");
4 | }
5 |
6 |
7 |
8 |
Welcome back, @name!
9 |
You have no unread notifications.
10 |
11 |
My account
12 | @if (User.Identity.IsAuthenticated)
13 | {
14 |
Sign out
15 | }
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Newsletter/_Newsletter.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
Newsletter
3 |
4 |
5 | Want to subscribe to our newsletter?
6 | List managed by our Newsletter Microservice .
7 |
8 |
22 |
23 |
24 |
Thanks for submitting!
25 |
Click here to submit another email.
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Order/_CheckoutPreview.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Account information
5 |
6 |
7 |
8 |
Payment Information
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/Web/Views/Partials/Recommendation/_Recommendation.cshtml:
--------------------------------------------------------------------------------
1 | @using Web.Models.Catalog;
2 | @model Product
3 |
4 |
Related products
5 | Recommendations provided by the
Recommendation Microservice .
6 |
7 |
8 |
9 |
10 |
{{ p.name }}
11 |
Placeholder
12 |
View product
13 |
14 |
15 |
16 |
17 |
Sorry, no recommendations found yet for this product.
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/Web/Views/Shared/Error.cshtml:
--------------------------------------------------------------------------------
1 | @model ErrorViewModel
2 | @{
3 | ViewData["Title"] = "Error";
4 | }
5 |
6 | Error.
7 | An error occurred while processing your request.
8 |
9 | @if (Model.ShowRequestId)
10 | {
11 |
12 | Request ID: @Model.RequestId
13 |
14 | }
15 |
16 | Development Mode
17 |
18 | Swapping to Development environment will display more detailed information about the error that occurred.
19 |
20 |
21 | The Development environment shouldn't be enabled for deployed applications.
22 | It can result in displaying sensitive information from exceptions to end users.
23 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development
24 | and restarting the app.
25 |
26 |
--------------------------------------------------------------------------------
/src/Web/Views/Shared/_Spinner.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Loading...
4 |
5 |
--------------------------------------------------------------------------------
/src/Web/Views/Shared/_ValidationScriptsPartial.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/Web/Views/Shared/_breadcrumbs.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Home
4 | @if (ViewData["ProductName"] == null)
5 | {
6 | @ViewData["Category"]
7 | }
8 | else
9 | {
10 | @ViewData["Category"]
11 | @ViewData["ProductName"]
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/src/Web/Views/Shared/_pagination.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
--------------------------------------------------------------------------------
/src/Web/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using Web
2 | @using Web.Models
3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
4 |
--------------------------------------------------------------------------------
/src/Web/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/src/Web/Web.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/Web/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "AllowedHosts": "*",
10 | "Services": {
11 | "Catalog": "http://localhost:8001",
12 | "Newsletter": "http://localhost:8002",
13 | "Order": "http://localhost:8003",
14 | "Account": "http://localhost:8004",
15 | "Recommendation": "http://localhost:8005",
16 | "Notification": "http://localhost:8006",
17 | "Payment": "http://localhost:8007",
18 | "Shipping": "http://localhost:8008"
19 | },
20 | "Redis": {
21 | "Configuration": "localhost",
22 | "InstanceName": "web"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/Web/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "StoreSettings": {
10 | "Country": "United States",
11 | "Regions": [ "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY" ],
12 | "Currency": "USD",
13 | "CurrencyDisplay": "US$",
14 | "Tax": "0.05",
15 | "StoreName": "HildenCo WebStore",
16 | "StoreUrl": "https://www.hildenco.com"
17 | },
18 | "Services": {
19 | "Catalog": "http://catalog",
20 | "Newsletter": "http://newsletter",
21 | "Order": "http://order",
22 | "Account": "http://account",
23 | "Recommendation": "http://recommendation",
24 | "Notification": "http://notification",
25 | "Payment": "http://payment",
26 | "Shipping": "http://shipping"
27 | },
28 | "Redis": {
29 | "Configuration": "redis",
30 | "InstanceName": "web"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Web/build:
--------------------------------------------------------------------------------
1 | # to run this script run:
2 | # chmod +x ./build
3 | # so it can be executed on your WSL terminal
4 | docker.exe build -t web -q .
5 |
--------------------------------------------------------------------------------
/src/Web/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hd9/aspnet-microservices/fb64d38bc154acb19bed7dc5b29292192c4511f2/src/Web/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/src/Web/wwwroot/js/account.min.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hd9/aspnet-microservices/fb64d38bc154acb19bed7dc5b29292192c4511f2/src/Web/wwwroot/js/account.min.js
--------------------------------------------------------------------------------
/src/Web/wwwroot/js/catalog.min.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hd9/aspnet-microservices/fb64d38bc154acb19bed7dc5b29292192c4511f2/src/Web/wwwroot/js/catalog.min.js
--------------------------------------------------------------------------------
/src/Web/wwwroot/js/home.js:
--------------------------------------------------------------------------------
1 | // newsletter
2 | var nlApp = new Vue({
3 | el: '#nlApp',
4 | data: {
5 | submitted: false,
6 | name: '',
7 | email: ''
8 | },
9 | methods: {
10 | submit: function () {
11 | if (this.name.length < 5 || this.email.length < 5) {
12 | alert("Names and emails should have at least 5 characters");
13 | return;
14 | }
15 |
16 | axios
17 | .post('/api/signup', { Name: this.name, Email: this.email })
18 | .then(response => {
19 | this.submitted = true;
20 | })
21 | .catch(error => console.log(error));
22 |
23 | this.submitted = true;
24 | },
25 | resubmit: function () {
26 | this.submitted = false;
27 | this.name = '';
28 | this.email = '';
29 | }
30 | }
31 | });
32 |
--------------------------------------------------------------------------------
/src/Web/wwwroot/js/home.min.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hd9/aspnet-microservices/fb64d38bc154acb19bed7dc5b29292192c4511f2/src/Web/wwwroot/js/home.min.js
--------------------------------------------------------------------------------
/src/Web/wwwroot/js/site.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Web/wwwroot/lib/bootstrap/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2018 Twitter, Inc.
4 | Copyright (c) 2011-2018 The Bootstrap Authors
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/src/Web/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) .NET Foundation. All rights reserved.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 | these files except in compliance with the License. You may obtain a copy of the
5 | License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software distributed
10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the
12 | specific language governing permissions and limitations under the License.
13 |
--------------------------------------------------------------------------------
/src/Web/wwwroot/lib/jquery-validation/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | =====================
3 |
4 | Copyright Jörn Zaefferer
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/src/grafana/provisioning/dashboards/dashboard.yml:
--------------------------------------------------------------------------------
1 | apiVersion: 1
2 |
3 | providers:
4 | - name: 'Prometheus'
5 | orgId: 1
6 | folder: ''
7 | type: file
8 | disableDeletion: false
9 | editable: true
10 | allowUiUpdates: true
11 | options:
12 | path: /etc/grafana/provisioning/dashboards
--------------------------------------------------------------------------------
/src/grafana/provisioning/datasources/datasource.yml:
--------------------------------------------------------------------------------
1 | apiVersion: 1
2 |
3 | datasources:
4 | - name: Prometheus
5 | type: prometheus
6 | access: proxy
7 | orgId: 1
8 | url: http://prometheus:9090
9 | basicAuth: false
10 | isDefault: true
11 | editable: true
--------------------------------------------------------------------------------
/src/prometheus/prometheus.yml:
--------------------------------------------------------------------------------
1 | scrape_configs:
2 | - job_name: cadvisor
3 | scrape_interval: 5s
4 | static_configs:
5 | - targets:
6 | - cadvisor:8080
7 |
--------------------------------------------------------------------------------