SignInManager
7 |
8 | @{
9 | ViewData["Title"] = "Log in";
10 | }
11 |
12 | @ViewData["Title"]
13 |
14 |
52 |
53 |
54 | Use another service to log in.
55 |
56 | @{
57 | var loginProviders = (await SignInManager.GetExternalAuthenticationSchemesAsync()).ToList();
58 | if (loginProviders.Count == 0)
59 | {
60 |
61 |
62 | There are no external authentication services configured. See this article
63 | for details on setting up this ASP.NET application to support logging in via external services.
64 |
65 |
66 | }
67 | else
68 | {
69 |
79 | }
80 | }
81 |
82 |
83 |
84 |
85 | @section Scripts {
86 | @await Html.PartialAsync("_ValidationScriptsPartial")
87 | }
88 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Account/LoginWith2fa.cshtml:
--------------------------------------------------------------------------------
1 | @model LoginWith2faViewModel
2 | @{
3 | ViewData["Title"] = "Two-factor authentication";
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 | Your login is protected with an authenticator app. Enter your authenticator code below.
9 |
33 |
34 | Don't have access to your authenticator device? You can
35 | log in with a recovery code .
36 |
37 |
38 | @section Scripts {
39 | @await Html.PartialAsync("_ValidationScriptsPartial")
40 | }
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Account/LoginWithRecoveryCode.cshtml:
--------------------------------------------------------------------------------
1 | @model LoginWithRecoveryCodeViewModel
2 | @{
3 | ViewData["Title"] = "Recovery code verification";
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 |
9 | You have requested to login with a recovery code. This login will not be remembered until you provide
10 | an authenticator app code at login or disable 2FA and login again.
11 |
12 |
25 |
26 | @section Scripts {
27 | @await Html.PartialAsync("_ValidationScriptsPartial")
28 | }
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Account/Register.cshtml:
--------------------------------------------------------------------------------
1 | @model RegisterViewModel
2 | @{
3 | ViewData["Title"] = "Register";
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 |
33 |
34 | @section Scripts {
35 | @await Html.PartialAsync("_ValidationScriptsPartial")
36 | }
37 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Account/ResetPassword.cshtml:
--------------------------------------------------------------------------------
1 | @model ResetPasswordViewModel
2 | @{
3 | ViewData["Title"] = "Reset password";
4 | }
5 |
6 | @ViewData["Title"]
7 | Reset your password.
8 |
9 |
33 |
34 | @section Scripts {
35 | @await Html.PartialAsync("_ValidationScriptsPartial")
36 | }
37 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Account/ResetPasswordConfirmation.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Reset password confirmation";
3 | }
4 |
5 | @ViewData["Title"]
6 |
7 | Your password has been reset. Please click here to log in .
8 |
9 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Account/SignedOut.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Signed out";
3 | }
4 |
5 | @ViewData["Title"]
6 |
7 | You have successfully signed out.
8 |
9 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Home/Index.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Home Page";
3 | }
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Learn how to build ASP.NET apps that can run anywhere.
18 |
19 | Learn More
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | There are powerful new features in Visual Studio for building modern web apps.
29 |
30 | Learn More
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | Bring in libraries from NuGet and npm, and automate tasks using Grunt or Gulp.
40 |
41 | Learn More
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | Learn how Microsoft's Azure cloud platform allows you to build, deploy, and scale web apps.
51 |
52 | Learn More
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | Previous
61 |
62 |
63 |
64 | Next
65 |
66 |
67 |
68 |
69 |
70 |
Application uses
71 |
72 | Sample pages using ASP.NET Core MVC
73 | Theming using Bootstrap
74 |
75 |
76 |
86 |
98 |
99 |
Run & Deploy
100 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/ChangePassword.cshtml:
--------------------------------------------------------------------------------
1 | @model ChangePasswordViewModel
2 | @{
3 | ViewData["Title"] = "Change password";
4 | ViewData.AddActivePage(ManageNavPages.ChangePassword);
5 | }
6 |
7 | @ViewData["Title"]
8 | @Html.Partial("_StatusMessage", Model.StatusMessage)
9 |
32 |
33 | @section Scripts {
34 | @await Html.PartialAsync("_ValidationScriptsPartial")
35 | }
36 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/Disable2fa.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Disable two-factor authentication (2FA)";
3 | ViewData.AddActivePage(ManageNavPages.TwoFactorAuthentication);
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 |
9 |
10 |
11 | This action only disables 2FA.
12 |
13 |
14 | Disabling 2FA does not change the keys used in authenticator apps. If you wish to change the key
15 | used in an authenticator app you should reset your
16 | authenticator keys.
17 |
18 |
19 |
20 |
21 |
24 |
25 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/EnableAuthenticator.cshtml:
--------------------------------------------------------------------------------
1 | @model EnableAuthenticatorViewModel
2 | @{
3 | ViewData["Title"] = "Enable authenticator";
4 | ViewData.AddActivePage(ManageNavPages.TwoFactorAuthentication);
5 | }
6 |
7 | @ViewData["Title"]
8 |
9 |
To use an authenticator app go through the following steps:
10 |
11 |
12 |
13 | Download a two-factor authenticator app like Microsoft Authenticator for
14 | Windows Phone ,
15 | Android and
16 | iOS or
17 | Google Authenticator for
18 | Android and
19 | iOS .
20 |
21 |
22 |
23 | Scan the QR Code or enter this key @Model.SharedKey into your two factor authenticator app. Spaces and casing do not matter.
24 |
25 |
26 |
27 |
28 |
29 |
30 | Once you have scanned the QR code or input the key above, your two factor authentication app will provide you
31 | with a unique code. Enter the code in the confirmation box below.
32 |
33 |
46 |
47 |
48 |
49 |
50 | @section Scripts {
51 | @await Html.PartialAsync("_ValidationScriptsPartial")
52 | }
53 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/ExternalLogins.cshtml:
--------------------------------------------------------------------------------
1 | @model ExternalLoginsViewModel
2 | @{
3 | ViewData["Title"] = "Manage your external logins";
4 | ViewData.AddActivePage(ManageNavPages.ExternalLogins);
5 | }
6 |
7 | @Html.Partial("_StatusMessage", Model.StatusMessage)
8 | @if (Model.CurrentLogins?.Count > 0)
9 | {
10 | Registered Logins
11 |
12 |
13 | @foreach (var login in Model.CurrentLogins)
14 | {
15 |
16 | @login.LoginProvider
17 |
18 | @if (Model.ShowRemoveButton)
19 | {
20 |
27 | }
28 | else
29 | {
30 | @:
31 | }
32 |
33 |
34 | }
35 |
36 |
37 | }
38 | @if (Model.OtherLogins?.Count > 0)
39 | {
40 | Add another service to log in.
41 |
42 |
52 | }
53 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/GenerateRecoveryCodes.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Generate two-factor authentication (2FA) recovery codes";
3 | ViewData.AddActivePage(ManageNavPages.TwoFactorAuthentication);
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 |
9 |
10 |
11 | This action generates new recovery codes.
12 |
13 |
14 | If you lose your device and don't have the recovery codes you will lose access to your account.
15 |
16 |
17 | Generating new recovery codes does not change the keys used in authenticator apps. If you wish to change the key
18 | used in an authenticator app you should reset your authenticator keys.
19 |
20 |
21 |
22 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/Index.cshtml:
--------------------------------------------------------------------------------
1 | @model IndexViewModel
2 | @{
3 | ViewData["Title"] = "Profile";
4 | ViewData.AddActivePage(ManageNavPages.Index);
5 | }
6 |
7 | @ViewData["Title"]
8 | @Html.Partial("_StatusMessage", Model.StatusMessage)
9 |
42 |
43 | @section Scripts {
44 | @await Html.PartialAsync("_ValidationScriptsPartial")
45 | }
46 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/ManageNavPages.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using Microsoft.AspNetCore.Mvc.Rendering;
6 | using Microsoft.AspNetCore.Mvc.ViewFeatures;
7 |
8 | namespace Tax.Web.Views.Manage
9 | {
10 | public static class ManageNavPages
11 | {
12 | public static string ActivePageKey => "ActivePage";
13 |
14 | public static string Index => "Index";
15 |
16 | public static string ChangePassword => "ChangePassword";
17 |
18 | public static string ExternalLogins => "ExternalLogins";
19 |
20 | public static string TwoFactorAuthentication => "TwoFactorAuthentication";
21 |
22 | public static string IndexNavClass(ViewContext viewContext) => PageNavClass(viewContext, Index);
23 |
24 | public static string ChangePasswordNavClass(ViewContext viewContext) => PageNavClass(viewContext, ChangePassword);
25 |
26 | public static string ExternalLoginsNavClass(ViewContext viewContext) => PageNavClass(viewContext, ExternalLogins);
27 |
28 | public static string TwoFactorAuthenticationNavClass(ViewContext viewContext) => PageNavClass(viewContext, TwoFactorAuthentication);
29 |
30 | public static string PageNavClass(ViewContext viewContext, string page)
31 | {
32 | var activePage = viewContext.ViewData["ActivePage"] as string;
33 | return string.Equals(activePage, page, StringComparison.OrdinalIgnoreCase) ? "active" : null;
34 | }
35 |
36 | public static void AddActivePage(this ViewDataDictionary viewData, string activePage) => viewData[ActivePageKey] = activePage;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/ResetAuthenticator.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewData["Title"] = "Reset authenticator key";
3 | ViewData.AddActivePage(ManageNavPages.TwoFactorAuthentication);
4 | }
5 |
6 | @ViewData["Title"]
7 |
8 |
9 |
10 | If you reset your authenticator key your authenticator app will not work until you reconfigure it.
11 |
12 |
13 | This process disables 2FA until you verify your authenticator app and will also reset your 2FA recovery codes.
14 | If you do not complete your authenticator app configuration you may lose access to your account.
15 |
16 |
17 |
18 |
21 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/SetPassword.cshtml:
--------------------------------------------------------------------------------
1 | @model SetPasswordViewModel
2 | @{
3 | ViewData["Title"] = "Set password";
4 | ViewData.AddActivePage(ManageNavPages.ChangePassword);
5 | }
6 |
7 | Set your password
8 | @Html.Partial("_StatusMessage", Model.StatusMessage)
9 |
10 | You do not have a local username/password for this site. Add a local
11 | account so you can log in without an external login.
12 |
13 |
31 |
32 | @section Scripts {
33 | @await Html.PartialAsync("_ValidationScriptsPartial")
34 | }
35 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/ShowRecoveryCodes.cshtml:
--------------------------------------------------------------------------------
1 | @model ShowRecoveryCodesViewModel
2 | @{
3 | ViewData["Title"] = "Recovery codes";
4 | ViewData.AddActivePage(ManageNavPages.TwoFactorAuthentication);
5 | }
6 |
7 | @ViewData["Title"]
8 |
9 |
10 |
11 | Put these codes in a safe place.
12 |
13 |
14 | If you lose your device and don't have the recovery codes you will lose access to your account.
15 |
16 |
17 |
18 |
19 | @for (var row = 0; row < Model.RecoveryCodes.Length; row += 2)
20 | {
21 | @Model.RecoveryCodes[row]
@Model.RecoveryCodes[row + 1]
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/TwoFactorAuthentication.cshtml:
--------------------------------------------------------------------------------
1 | @model TwoFactorAuthenticationViewModel
2 | @{
3 | ViewData["Title"] = "Two-factor authentication";
4 | ViewData.AddActivePage(ManageNavPages.TwoFactorAuthentication);
5 | }
6 |
7 | @ViewData["Title"]
8 | @if (Model.Is2faEnabled)
9 | {
10 | if (Model.RecoveryCodesLeft == 0)
11 | {
12 |
16 | }
17 | else if (Model.RecoveryCodesLeft == 1)
18 | {
19 |
23 | }
24 | else if (Model.RecoveryCodesLeft <= 3)
25 | {
26 |
30 | }
31 |
32 | Disable 2FA
33 | Reset recovery codes
34 | }
35 |
36 | Authenticator app
37 | @if (!Model.HasAuthenticator)
38 | {
39 | Add authenticator app
40 | }
41 | else
42 | {
43 | Configure authenticator app
44 | Reset authenticator key
45 | }
46 |
47 | @section Scripts {
48 | @await Html.PartialAsync("_ValidationScriptsPartial")
49 | }
50 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/_Layout.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "/Views/Shared/_Layout.cshtml";
3 | }
4 |
5 | Manage your account
6 |
7 |
8 |
Change your account settings
9 |
10 |
11 |
12 | @await Html.PartialAsync("_ManageNav")
13 |
14 |
15 | @RenderBody()
16 |
17 |
18 |
19 |
20 | @section Scripts {
21 | @RenderSection("Scripts", required: false)
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/_ManageNav.cshtml:
--------------------------------------------------------------------------------
1 | @using Tax.Web.Views.Manage
2 | @inject SignInManager SignInManager
3 | @{
4 | var hasExternalLogins = (await SignInManager.GetExternalAuthenticationSchemesAsync()).Any();
5 | }
6 |
7 |
16 |
17 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/_StatusMessage.cshtml:
--------------------------------------------------------------------------------
1 | @model string
2 |
3 | @if (!String.IsNullOrEmpty(Model))
4 | {
5 | var statusMessageClass = Model.StartsWith("Error") ? "danger" : "success";
6 |
7 | ×
8 | @Model
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Manage/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using Tax.Web.Views.Manage
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.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 | Development environment should not be enabled in deployed applications , as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development , and restarting the application.
22 |
23 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Shared/_Layout.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | @ViewData["Title"] - Tax.Web
7 |
8 |
9 |
10 |
11 |
12 |
13 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
31 |
32 |
36 | @await Html.PartialAsync("_LoginPartial")
37 |
38 |
39 |
40 |
41 | @RenderBody()
42 |
43 |
44 | © 2018 - Tax.Web
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
60 |
66 |
67 |
68 |
69 | @RenderSection("Scripts", required: false)
70 |
71 |
72 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Shared/_LoginPartial.cshtml:
--------------------------------------------------------------------------------
1 | @using Microsoft.AspNetCore.Identity
2 | @using Tax.Web.Models
3 |
4 | @inject SignInManager SignInManager
5 | @inject UserManager UserManager
6 |
7 | @if (SignInManager.IsSignedIn(User))
8 | {
9 |
19 | }
20 | else
21 | {
22 |
26 | }
27 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Shared/_ValidationScriptsPartial.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
12 |
18 |
19 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Tax/AddTax.cshtml:
--------------------------------------------------------------------------------
1 | @model TaxViewModel
2 |
3 | @{
4 | ViewData["Title"] = "Add Tax";
5 | }
6 |
7 |
37 |
38 | @section Scripts {
39 | @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
40 | }
41 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Tax/GetTax.cshtml:
--------------------------------------------------------------------------------
1 | @model TaxViewModel
2 | @{
3 | ViewData["Title"] = "Tax Per Year";
4 | }
5 | Your tax info for year @Model.Year
6 |
7 |
8 |
9 |
10 | @Model.Year
11 |
12 |
13 |
14 | @Model.TotalIncome.Value.ToString("G29")
15 |
16 |
17 |
18 | @Model.CharityPaidAmount.Value.ToString("G29")
19 |
20 |
21 |
22 | @Model.NumberOfChildren
23 |
24 |
25 |
26 | @Model.TaxDueAmount.Value.ToString("G29")
27 |
28 |
29 |
30 | @section Scripts {
31 | @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
32 | }
33 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/Tax/Index.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 | @{
3 | ViewData["Title"] = "Taxes";
4 | }
5 | List Taxes
6 | Create new Entry
7 |
8 |
9 |
10 | @foreach (var item in Model)
11 | {
12 |
24 | }
25 | @section Scripts {
26 | @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
27 | }
28 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using Microsoft.AspNetCore.Identity
2 | @using Tax.Web
3 | @using Tax.Web.Models
4 | @using Tax.Web.Models.AccountViewModels
5 | @using Tax.Web.Models.ManageViewModels
6 | @using Tax.Data
7 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
8 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "IncludeScopes": false,
4 | "LogLevel": {
5 | "Default": "Debug",
6 | "System": "Information",
7 | "Microsoft": "Information"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ConnectionStrings": {
3 | "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=TaxDb;Trusted_Connection=True;MultipleActiveResultSets=true"
4 | },
5 | "Logging": {
6 | "IncludeScopes": false,
7 | "LogLevel": {
8 | "Default": "Warning"
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/bundleconfig.json:
--------------------------------------------------------------------------------
1 | // Configure bundling and minification for the project.
2 | // More info at https://go.microsoft.com/fwlink/?LinkId=808241
3 | [
4 | {
5 | "outputFileName": "wwwroot/css/site.min.css",
6 | // An array of relative input file paths. Globbing patterns supported
7 | "inputFiles": [
8 | "wwwroot/css/site.css"
9 | ]
10 | },
11 | {
12 | "outputFileName": "wwwroot/js/site.min.js",
13 | "inputFiles": [
14 | "wwwroot/js/site.js"
15 | ],
16 | // Optionally specify minification options
17 | "minify": {
18 | "enabled": true,
19 | "renameLocals": true
20 | },
21 | // Optionally generate .map file
22 | "sourceMap": false
23 | }
24 | ]
25 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/css/site.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 50px;
3 | padding-bottom: 20px;
4 | }
5 |
6 | /* Wrapping element */
7 | /* Set some basic padding to keep content from hitting the edges */
8 | .body-content {
9 | padding-left: 15px;
10 | padding-right: 15px;
11 | }
12 |
13 | /* Carousel */
14 | .carousel-caption p {
15 | font-size: 20px;
16 | line-height: 1.4;
17 | }
18 |
19 | /* Make .svg files in the carousel display properly in older browsers */
20 | .carousel-inner .item img[src$=".svg"] {
21 | width: 100%;
22 | }
23 |
24 | /* QR code generator */
25 | #qrCode {
26 | margin: 15px;
27 | }
28 |
29 | /* Hide/rearrange for smaller screens */
30 | @media screen and (max-width: 767px) {
31 | /* Hide captions */
32 | .carousel-caption {
33 | display: none;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/css/site.min.css:
--------------------------------------------------------------------------------
1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}#qrCode{margin:15px}@media screen and (max-width:767px){.carousel-caption{display:none}}
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IbraheemOsama/WebAutomationTestingCourse/55a88c1befd3ef85ec6e8ea7210c36707d8c8510/Workspace/Tax/Tax.Web/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/images/banner1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/images/banner2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/js/site.js:
--------------------------------------------------------------------------------
1 | // Write your JavaScript code.
2 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/js/site.min.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IbraheemOsama/WebAutomationTestingCourse/55a88c1befd3ef85ec6e8ea7210c36707d8c8510/Workspace/Tax/Tax.Web/wwwroot/js/site.min.js
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": "1.9.1 - 3"
33 | },
34 | "version": "3.3.7",
35 | "_release": "3.3.7",
36 | "_resolution": {
37 | "type": "version",
38 | "tag": "v3.3.7",
39 | "commit": "0b9c4a4007c44201dce9a6cc1a38407005c26c86"
40 | },
41 | "_source": "https://github.com/twbs/bootstrap.git",
42 | "_target": "v3.3.7",
43 | "_originalSource": "bootstrap",
44 | "_direct": true
45 | }
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2016 Twitter, Inc.
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.
22 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IbraheemOsama/WebAutomationTestingCourse/55a88c1befd3ef85ec6e8ea7210c36707d8c8510/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IbraheemOsama/WebAutomationTestingCourse/55a88c1befd3ef85ec6e8ea7210c36707d8c8510/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IbraheemOsama/WebAutomationTestingCourse/55a88c1befd3ef85ec6e8ea7210c36707d8c8510/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IbraheemOsama/WebAutomationTestingCourse/55a88c1befd3ef85ec6e8ea7210c36707d8c8510/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/bootstrap/dist/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/jquery-validation-unobtrusive/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery-validation-unobtrusive",
3 | "version": "3.2.6",
4 | "homepage": "https://github.com/aspnet/jquery-validation-unobtrusive",
5 | "description": "Add-on to jQuery Validation to enable unobtrusive validation options in data-* attributes.",
6 | "main": [
7 | "jquery.validate.unobtrusive.js"
8 | ],
9 | "ignore": [
10 | "**/.*",
11 | "*.json",
12 | "*.md",
13 | "*.txt",
14 | "gulpfile.js"
15 | ],
16 | "keywords": [
17 | "jquery",
18 | "asp.net",
19 | "mvc",
20 | "validation",
21 | "unobtrusive"
22 | ],
23 | "authors": [
24 | "Microsoft"
25 | ],
26 | "license": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm",
27 | "repository": {
28 | "type": "git",
29 | "url": "git://github.com/aspnet/jquery-validation-unobtrusive.git"
30 | },
31 | "dependencies": {
32 | "jquery-validation": ">=1.8",
33 | "jquery": ">=1.8"
34 | },
35 | "_release": "3.2.6",
36 | "_resolution": {
37 | "type": "version",
38 | "tag": "v3.2.6",
39 | "commit": "13386cd1b5947d8a5d23a12b531ce3960be1eba7"
40 | },
41 | "_source": "git://github.com/aspnet/jquery-validation-unobtrusive.git",
42 | "_target": "3.2.6",
43 | "_originalSource": "jquery-validation-unobtrusive"
44 | }
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | ** Unobtrusive validation support library for jQuery and jQuery Validate
3 | ** Copyright (C) Microsoft Corporation. All rights reserved.
4 | */
5 | !function(a){function e(a,e,n){a.rules[e]=n,a.message&&(a.messages[e]=a.message)}function n(a){return a.replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g)}function t(a){return a.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function r(a){return a.substr(0,a.lastIndexOf(".")+1)}function i(a,e){return 0===a.indexOf("*.")&&(a=a.replace("*.",e)),a}function o(e,n){var r=a(this).find("[data-valmsg-for='"+t(n[0].name)+"']"),i=r.attr("data-valmsg-replace"),o=i?a.parseJSON(i)!==!1:null;r.removeClass("field-validation-valid").addClass("field-validation-error"),e.data("unobtrusiveContainer",r),o?(r.empty(),e.removeClass("input-validation-error").appendTo(r)):e.hide()}function d(e,n){var t=a(this).find("[data-valmsg-summary=true]"),r=t.find("ul");r&&r.length&&n.errorList.length&&(r.empty(),t.addClass("validation-summary-errors").removeClass("validation-summary-valid"),a.each(n.errorList,function(){a(" ").html(this.message).appendTo(r)}))}function s(e){var n=e.data("unobtrusiveContainer");if(n){var t=n.attr("data-valmsg-replace"),r=t?a.parseJSON(t):null;n.addClass("field-validation-valid").removeClass("field-validation-error"),e.removeData("unobtrusiveContainer"),r&&n.empty()}}function l(e){var n=a(this),t="__jquery_unobtrusive_validation_form_reset";if(!n.data(t)){n.data(t,!0);try{n.data("validator").resetForm()}finally{n.removeData(t)}n.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"),n.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}}function m(e){var n=a(e),t=n.data(v),r=a.proxy(l,e),i=p.unobtrusive.options||{},m=function(n,t){var r=i[n];r&&a.isFunction(r)&&r.apply(e,t)};return t||(t={options:{errorClass:i.errorClass||"input-validation-error",errorElement:i.errorElement||"span",errorPlacement:function(){o.apply(e,arguments),m("errorPlacement",arguments)},invalidHandler:function(){d.apply(e,arguments),m("invalidHandler",arguments)},messages:{},rules:{},success:function(){s.apply(e,arguments),m("success",arguments)}},attachValidation:function(){n.off("reset."+v,r).on("reset."+v,r).validate(this.options)},validate:function(){return n.validate(),n.valid()}},n.data(v,t)),t}var u,p=a.validator,v="unobtrusiveValidation";p.unobtrusive={adapters:[],parseElement:function(e,n){var t,r,i,o=a(e),d=o.parents("form")[0];d&&(t=m(d),t.options.rules[e.name]=r={},t.options.messages[e.name]=i={},a.each(this.adapters,function(){var n="data-val-"+this.name,t=o.attr(n),s={};void 0!==t&&(n+="-",a.each(this.params,function(){s[this]=o.attr(n+this)}),this.adapt({element:e,form:d,message:t,params:s,rules:r,messages:i}))}),a.extend(r,{__dummy__:!0}),n||t.attachValidation())},parse:function(e){var n=a(e),t=n.parents().addBack().filter("form").add(n.find("form")).has("[data-val=true]");n.find("[data-val=true]").each(function(){p.unobtrusive.parseElement(this,!0)}),t.each(function(){var a=m(this);a&&a.attachValidation()})}},u=p.unobtrusive.adapters,u.add=function(a,e,n){return n||(n=e,e=[]),this.push({name:a,params:e,adapt:n}),this},u.addBool=function(a,n){return this.add(a,function(t){e(t,n||a,!0)})},u.addMinMax=function(a,n,t,r,i,o){return this.add(a,[i||"min",o||"max"],function(a){var i=a.params.min,o=a.params.max;i&&o?e(a,r,[i,o]):i?e(a,n,i):o&&e(a,t,o)})},u.addSingleVal=function(a,n,t){return this.add(a,[n||"val"],function(r){e(r,t||a,r.params[n])})},p.addMethod("__dummy__",function(a,e,n){return!0}),p.addMethod("regex",function(a,e,n){var t;return this.optional(e)?!0:(t=new RegExp(n).exec(a),t&&0===t.index&&t[0].length===a.length)}),p.addMethod("nonalphamin",function(a,e,n){var t;return n&&(t=a.match(/\W/g),t=t&&t.length>=n),t}),p.methods.extension?(u.addSingleVal("accept","mimtype"),u.addSingleVal("extension","extension")):u.addSingleVal("extension","extension","accept"),u.addSingleVal("regex","pattern"),u.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"),u.addMinMax("length","minlength","maxlength","rangelength").addMinMax("range","min","max","range"),u.addMinMax("minlength","minlength").addMinMax("maxlength","minlength","maxlength"),u.add("equalto",["other"],function(n){var o=r(n.element.name),d=n.params.other,s=i(d,o),l=a(n.form).find(":input").filter("[name='"+t(s)+"']")[0];e(n,"equalTo",l)}),u.add("required",function(a){("INPUT"!==a.element.tagName.toUpperCase()||"CHECKBOX"!==a.element.type.toUpperCase())&&e(a,"required",!0)}),u.add("remote",["url","type","additionalfields"],function(o){var d={url:o.params.url,type:o.params.type||"GET",data:{}},s=r(o.element.name);a.each(n(o.params.additionalfields||o.element.name),function(e,n){var r=i(n,s);d.data[r]=function(){var e=a(o.form).find(":input").filter("[name='"+t(r)+"']");return e.is(":checkbox")?e.filter(":checked").val()||e.filter(":hidden").val()||"":e.is(":radio")?e.filter(":checked").val()||"":e.val()}}),e(o,"remote",d)}),u.add("password",["min","nonalphamin","regex"],function(a){a.params.min&&e(a,"minlength",a.params.min),a.params.nonalphamin&&e(a,"nonalphamin",a.params.nonalphamin),a.params.regex&&e(a,"regex",a.params.regex)}),a(function(){p.unobtrusive.parse(document)})}(jQuery);
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/jquery-validation/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery-validation",
3 | "homepage": "http://jqueryvalidation.org/",
4 | "repository": {
5 | "type": "git",
6 | "url": "git://github.com/jzaefferer/jquery-validation.git"
7 | },
8 | "authors": [
9 | "Jörn Zaefferer "
10 | ],
11 | "description": "Form validation made easy",
12 | "main": "dist/jquery.validate.js",
13 | "keywords": [
14 | "forms",
15 | "validation",
16 | "validate"
17 | ],
18 | "license": "MIT",
19 | "ignore": [
20 | "**/.*",
21 | "node_modules",
22 | "bower_components",
23 | "test",
24 | "demo",
25 | "lib"
26 | ],
27 | "dependencies": {
28 | "jquery": ">= 1.7.2"
29 | },
30 | "version": "1.14.0",
31 | "_release": "1.14.0",
32 | "_resolution": {
33 | "type": "version",
34 | "tag": "1.14.0",
35 | "commit": "c1343fb9823392aa9acbe1c3ffd337b8c92fed48"
36 | },
37 | "_source": "git://github.com/jzaefferer/jquery-validation.git",
38 | "_target": ">=1.8",
39 | "_originalSource": "jquery-validation"
40 | }
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.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 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/jquery/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "main": "dist/jquery.js",
4 | "license": "MIT",
5 | "ignore": [
6 | "package.json"
7 | ],
8 | "keywords": [
9 | "jquery",
10 | "javascript",
11 | "browser",
12 | "library"
13 | ],
14 | "homepage": "https://github.com/jquery/jquery-dist",
15 | "version": "2.2.0",
16 | "_release": "2.2.0",
17 | "_resolution": {
18 | "type": "version",
19 | "tag": "2.2.0",
20 | "commit": "6fc01e29bdad0964f62ef56d01297039cdcadbe5"
21 | },
22 | "_source": "git://github.com/jquery/jquery-dist.git",
23 | "_target": "2.2.0",
24 | "_originalSource": "jquery"
25 | }
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.Web/wwwroot/lib/jquery/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright jQuery Foundation and other contributors, https://jquery.org/
2 |
3 | This software consists of voluntary contributions made by many
4 | individuals. For exact contribution history, see the revision history
5 | available at https://github.com/jquery/jquery
6 |
7 | The following license applies to all parts of this software except as
8 | documented below:
9 |
10 | ====
11 |
12 | Permission is hereby granted, free of charge, to any person obtaining
13 | a copy of this software and associated documentation files (the
14 | "Software"), to deal in the Software without restriction, including
15 | without limitation the rights to use, copy, modify, merge, publish,
16 | distribute, sublicense, and/or sell copies of the Software, and to
17 | permit persons to whom the Software is furnished to do so, subject to
18 | the following conditions:
19 |
20 | The above copyright notice and this permission notice shall be
21 | included in all copies or substantial portions of the Software.
22 |
23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 |
31 | ====
32 |
33 | All files located in the node_modules and external directories are
34 | externally maintained libraries used by this software which have their
35 | own licenses; we recommend you read them, as their terms may differ from
36 | the terms above.
37 |
--------------------------------------------------------------------------------
/Workspace/Tax/Tax.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.27004.2006
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tax.Data", "Tax.Data\Tax.Data.csproj", "{421D969D-2FA8-4FFF-B785-BF431B6A990F}"
7 | EndProject
8 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tax.Repository", "Tax.Repository\Tax.Repository.csproj", "{9F006905-5C87-4D67-AC17-94ED3872C08F}"
9 | EndProject
10 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tax.Core", "Tax.Core\Tax.Core.csproj", "{D8277527-C9FA-4EB0-B80D-14F157FEDD49}"
11 | EndProject
12 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{A67C2253-3438-46AB-AB15-7A818E439DCB}"
13 | EndProject
14 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tax.Tests.FunctionalTests", "Tax.Tests.FunctionalTests\Tax.Tests.FunctionalTests.csproj", "{8497E66B-301A-42A5-948B-29A05E2EEC54}"
15 | EndProject
16 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tax.Tests.Common", "Tax.Tests.Common\Tax.Tests.Common.csproj", "{2A0BA80A-D7C1-475A-93BB-CC2C60F62755}"
17 | EndProject
18 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tax.Tests.UnitTests", "Tax.Tests.UnitTests\Tax.Tests.UnitTests.csproj", "{3B9A6237-E3D2-4AA6-B13D-978321E63D03}"
19 | EndProject
20 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tax.Web", "Tax.Web\Tax.Web.csproj", "{A83E4AA1-AECA-4071-9EED-71EC09962930}"
21 | EndProject
22 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tax.Tests.IntegrationTests", "Tax.Tests.IntegrationTests\Tax.Tests.IntegrationTests.csproj", "{DB47A722-A205-4E44-910F-B7FB91F2C0B8}"
23 | EndProject
24 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tax.Tests.AcceptanceTests", "Tax.Tests.AcceptanceTests\Tax.Tests.AcceptanceTests.csproj", "{7801E043-FEFE-4D4D-A01E-C432A845DD89}"
25 | EndProject
26 | Global
27 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
28 | Debug|Any CPU = Debug|Any CPU
29 | Release|Any CPU = Release|Any CPU
30 | EndGlobalSection
31 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
32 | {421D969D-2FA8-4FFF-B785-BF431B6A990F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
33 | {421D969D-2FA8-4FFF-B785-BF431B6A990F}.Debug|Any CPU.Build.0 = Debug|Any CPU
34 | {421D969D-2FA8-4FFF-B785-BF431B6A990F}.Release|Any CPU.ActiveCfg = Release|Any CPU
35 | {421D969D-2FA8-4FFF-B785-BF431B6A990F}.Release|Any CPU.Build.0 = Release|Any CPU
36 | {9F006905-5C87-4D67-AC17-94ED3872C08F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
37 | {9F006905-5C87-4D67-AC17-94ED3872C08F}.Debug|Any CPU.Build.0 = Debug|Any CPU
38 | {9F006905-5C87-4D67-AC17-94ED3872C08F}.Release|Any CPU.ActiveCfg = Release|Any CPU
39 | {9F006905-5C87-4D67-AC17-94ED3872C08F}.Release|Any CPU.Build.0 = Release|Any CPU
40 | {D8277527-C9FA-4EB0-B80D-14F157FEDD49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
41 | {D8277527-C9FA-4EB0-B80D-14F157FEDD49}.Debug|Any CPU.Build.0 = Debug|Any CPU
42 | {D8277527-C9FA-4EB0-B80D-14F157FEDD49}.Release|Any CPU.ActiveCfg = Release|Any CPU
43 | {D8277527-C9FA-4EB0-B80D-14F157FEDD49}.Release|Any CPU.Build.0 = Release|Any CPU
44 | {8497E66B-301A-42A5-948B-29A05E2EEC54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45 | {8497E66B-301A-42A5-948B-29A05E2EEC54}.Debug|Any CPU.Build.0 = Debug|Any CPU
46 | {8497E66B-301A-42A5-948B-29A05E2EEC54}.Release|Any CPU.ActiveCfg = Release|Any CPU
47 | {8497E66B-301A-42A5-948B-29A05E2EEC54}.Release|Any CPU.Build.0 = Release|Any CPU
48 | {2A0BA80A-D7C1-475A-93BB-CC2C60F62755}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
49 | {2A0BA80A-D7C1-475A-93BB-CC2C60F62755}.Debug|Any CPU.Build.0 = Debug|Any CPU
50 | {2A0BA80A-D7C1-475A-93BB-CC2C60F62755}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 | {2A0BA80A-D7C1-475A-93BB-CC2C60F62755}.Release|Any CPU.Build.0 = Release|Any CPU
52 | {3B9A6237-E3D2-4AA6-B13D-978321E63D03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
53 | {3B9A6237-E3D2-4AA6-B13D-978321E63D03}.Debug|Any CPU.Build.0 = Debug|Any CPU
54 | {3B9A6237-E3D2-4AA6-B13D-978321E63D03}.Release|Any CPU.ActiveCfg = Release|Any CPU
55 | {3B9A6237-E3D2-4AA6-B13D-978321E63D03}.Release|Any CPU.Build.0 = Release|Any CPU
56 | {A83E4AA1-AECA-4071-9EED-71EC09962930}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
57 | {A83E4AA1-AECA-4071-9EED-71EC09962930}.Debug|Any CPU.Build.0 = Debug|Any CPU
58 | {A83E4AA1-AECA-4071-9EED-71EC09962930}.Release|Any CPU.ActiveCfg = Release|Any CPU
59 | {A83E4AA1-AECA-4071-9EED-71EC09962930}.Release|Any CPU.Build.0 = Release|Any CPU
60 | {DB47A722-A205-4E44-910F-B7FB91F2C0B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
61 | {DB47A722-A205-4E44-910F-B7FB91F2C0B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
62 | {DB47A722-A205-4E44-910F-B7FB91F2C0B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
63 | {DB47A722-A205-4E44-910F-B7FB91F2C0B8}.Release|Any CPU.Build.0 = Release|Any CPU
64 | {7801E043-FEFE-4D4D-A01E-C432A845DD89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
65 | {7801E043-FEFE-4D4D-A01E-C432A845DD89}.Debug|Any CPU.Build.0 = Debug|Any CPU
66 | {7801E043-FEFE-4D4D-A01E-C432A845DD89}.Release|Any CPU.ActiveCfg = Release|Any CPU
67 | {7801E043-FEFE-4D4D-A01E-C432A845DD89}.Release|Any CPU.Build.0 = Release|Any CPU
68 | EndGlobalSection
69 | GlobalSection(SolutionProperties) = preSolution
70 | HideSolutionNode = FALSE
71 | EndGlobalSection
72 | GlobalSection(NestedProjects) = preSolution
73 | {8497E66B-301A-42A5-948B-29A05E2EEC54} = {A67C2253-3438-46AB-AB15-7A818E439DCB}
74 | {2A0BA80A-D7C1-475A-93BB-CC2C60F62755} = {A67C2253-3438-46AB-AB15-7A818E439DCB}
75 | {3B9A6237-E3D2-4AA6-B13D-978321E63D03} = {A67C2253-3438-46AB-AB15-7A818E439DCB}
76 | {DB47A722-A205-4E44-910F-B7FB91F2C0B8} = {A67C2253-3438-46AB-AB15-7A818E439DCB}
77 | {7801E043-FEFE-4D4D-A01E-C432A845DD89} = {A67C2253-3438-46AB-AB15-7A818E439DCB}
78 | EndGlobalSection
79 | GlobalSection(ExtensibilityGlobals) = postSolution
80 | SolutionGuid = {DEBEC023-E3A7-476B-B6C5-D25FE085F486}
81 | EndGlobalSection
82 | EndGlobal
83 |
--------------------------------------------------------------------------------