This commit is contained in:
RDeck 2025-05-29 13:33:02 -04:00
parent bba2f28bcf
commit dc97ce2906
8 changed files with 507 additions and 492 deletions

Binary file not shown.

View File

@ -2,13 +2,21 @@
"Version": 1,
"WorkspaceRootPath": "C:\\Repos\\SummerBestWebForm2\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\components\\pages\\home.razor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:components\\pages\\home.razor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\components\\pages\\home.razor||{40D31677-CBC0-4297-A9EF-89D907823A98}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:components\\pages\\home.razor||{40D31677-CBC0-4297-A9EF-89D907823A98}"
},
{
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\components\\pages\\home.razor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:components\\pages\\home.razor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\components\\app.razor||{40D31677-CBC0-4297-A9EF-89D907823A98}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:components\\app.razor||{40D31677-CBC0-4297-A9EF-89D907823A98}"
}
],
"DocumentGroupContainers": [
@ -18,7 +26,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 11,
"SelectedChildIndex": 12,
"Children": [
{
"$type": "Bookmark",
@ -66,29 +74,55 @@
},
{
"$type": "Document",
"DocumentIndex": 0,
"DocumentIndex": 1,
"Title": "Home.razor",
"DocumentMoniker": "C:\\Repos\\SummerBestWebForm2\\Components\\Pages\\Home.razor",
"RelativeDocumentMoniker": "Components\\Pages\\Home.razor",
"ToolTip": "C:\\Repos\\SummerBestWebForm2\\Components\\Pages\\Home.razor",
"RelativeToolTip": "Components\\Pages\\Home.razor",
"ViewState": "AgIAAJgBAAAAAAAAAAAcwL4BAAAAAAAAAAAAAA==",
"ViewState": "AgIAABMAAAAAAAAAAAAAADEAAAAwAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000759|",
"WhenOpened": "2025-05-29T13:04:23.98Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"DocumentIndex": 0,
"Title": "Home.razor.cs",
"DocumentMoniker": "C:\\Repos\\SummerBestWebForm2\\Components\\Pages\\Home.razor.cs",
"RelativeDocumentMoniker": "Components\\Pages\\Home.razor.cs",
"ToolTip": "C:\\Repos\\SummerBestWebForm2\\Components\\Pages\\Home.razor.cs",
"RelativeToolTip": "Components\\Pages\\Home.razor.cs",
"ViewState": "AgIAAKMBAAAAAAAAAAAcwLoBAAAvAAAAAAAAAA==",
"ViewState": "AgIAAF4AAAAAAAAAAAAAAGcAAAA+AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-05-29T14:37:32.314Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "App.razor",
"DocumentMoniker": "C:\\Repos\\SummerBestWebForm2\\Components\\App.razor",
"RelativeDocumentMoniker": "Components\\App.razor",
"ToolTip": "C:\\Repos\\SummerBestWebForm2\\Components\\App.razor",
"RelativeToolTip": "Components\\App.razor",
"ViewState": "AgIAACYAAAAAAAAAAAAYwEsAAABNAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000759|",
"WhenOpened": "2025-05-29T16:20:24.809Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "Program.cs",
"DocumentMoniker": "C:\\Repos\\SummerBestWebForm2\\Program.cs",
"RelativeDocumentMoniker": "Program.cs",
"ToolTip": "C:\\Repos\\SummerBestWebForm2\\Program.cs",
"RelativeToolTip": "Program.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-05-29T16:21:02.367Z",
"EditorCaption": ""
}
]
}

View File

@ -2,13 +2,21 @@
"Version": 1,
"WorkspaceRootPath": "C:\\Repos\\SummerBestWebForm2\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\components\\pages\\home.razor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:components\\pages\\home.razor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\components\\pages\\home.razor||{40D31677-CBC0-4297-A9EF-89D907823A98}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:components\\pages\\home.razor||{40D31677-CBC0-4297-A9EF-89D907823A98}"
},
{
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\components\\pages\\home.razor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:components\\pages\\home.razor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|c:\\repos\\summerbestwebform2\\components\\app.razor||{40D31677-CBC0-4297-A9EF-89D907823A98}",
"RelativeMoniker": "D:0:0:{10E16044-8880-42A4-866B-B0461C450A71}|SummerBestWebForm2.csproj|solutionrelative:components\\app.razor||{40D31677-CBC0-4297-A9EF-89D907823A98}"
}
],
"DocumentGroupContainers": [
@ -18,7 +26,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 11,
"SelectedChildIndex": 12,
"Children": [
{
"$type": "Bookmark",
@ -66,29 +74,55 @@
},
{
"$type": "Document",
"DocumentIndex": 0,
"DocumentIndex": 1,
"Title": "Home.razor",
"DocumentMoniker": "C:\\Repos\\SummerBestWebForm2\\Components\\Pages\\Home.razor",
"RelativeDocumentMoniker": "Components\\Pages\\Home.razor",
"ToolTip": "C:\\Repos\\SummerBestWebForm2\\Components\\Pages\\Home.razor",
"RelativeToolTip": "Components\\Pages\\Home.razor",
"ViewState": "AgIAAJgBAAAAAAAAAAAcwL4BAAAAAAAAAAAAAA==",
"ViewState": "AgIAABMAAAAAAAAAAAAAADEAAAAwAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000759|",
"WhenOpened": "2025-05-29T13:04:23.98Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"DocumentIndex": 0,
"Title": "Home.razor.cs",
"DocumentMoniker": "C:\\Repos\\SummerBestWebForm2\\Components\\Pages\\Home.razor.cs",
"RelativeDocumentMoniker": "Components\\Pages\\Home.razor.cs",
"ToolTip": "C:\\Repos\\SummerBestWebForm2\\Components\\Pages\\Home.razor.cs",
"RelativeToolTip": "Components\\Pages\\Home.razor.cs",
"ViewState": "AgIAAKMBAAAAAAAAAAAcwLoBAAAvAAAAAAAAAA==",
"ViewState": "AgIAAF4AAAAAAAAAAAAAAGcAAAA+AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-05-29T14:37:32.314Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "App.razor",
"DocumentMoniker": "C:\\Repos\\SummerBestWebForm2\\Components\\App.razor",
"RelativeDocumentMoniker": "Components\\App.razor",
"ToolTip": "C:\\Repos\\SummerBestWebForm2\\Components\\App.razor",
"RelativeToolTip": "Components\\App.razor",
"ViewState": "AgIAACYAAAAAAAAAAAAYwEsAAABNAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000759|",
"WhenOpened": "2025-05-29T16:20:24.809Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "Program.cs",
"DocumentMoniker": "C:\\Repos\\SummerBestWebForm2\\Program.cs",
"RelativeDocumentMoniker": "Program.cs",
"ToolTip": "C:\\Repos\\SummerBestWebForm2\\Program.cs",
"RelativeToolTip": "Program.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-05-29T16:21:02.367Z",
"EditorCaption": ""
}
]
}

View File

@ -73,6 +73,7 @@
}
}
</script>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<pre>@errMsg</pre>
@if (appState != null)
{

View File

@ -443,9 +443,6 @@
<FormButtons />
</TelerikForm>
</div>
<div class="col-12">
</div>
</div>
</div>
</Content>
@ -465,8 +462,24 @@
<TelerikButtonGroup SelectionMode="@ButtonGroupSelectionMode.Single" Class="vertical-buttons block-buttons mb-5">
<ButtonGroupToggleButton @bind-Selected="@ccOnFile">Credit Card On File</ButtonGroupToggleButton>
<ButtonGroupToggleButton @bind-Selected="@callWithInfo">Call With Payment Info</ButtonGroupToggleButton>
<ButtonGroupToggleButton @bind-Selected="@check">Check (due by 6/13/25)</ButtonGroupToggleButton>
<ButtonGroupToggleButton @bind-Selected="@check">Check</ButtonGroupToggleButton>
</TelerikButtonGroup>
</div>
<div class="col-12 mb-5">
@if (ccOnFile)
{
<h4>Use our preferred payment method already on file.</h4>
}
else if (callWithInfo)
{
<h4>Please call me.</h4>
<p>I'll specify method of payment when reviewing the order.</p>
}
else if (check)
{
<h4>I'll be sending in a check</h4>
<p>I'll be sending in a check by the invoice's due date (6/13/2025).</p>
}
</div>
<div class="col-12">
<label style="display:block" for="RequestedQuantity" class="text-center mb-3">Requested Quantity</label>

View File

@ -4,6 +4,9 @@ using Telerik.Blazor;
using Telerik.Blazor.Components;
using Telerik.SvgIcons;
using kmCommonLibsCore;
using System.Net.Http;
using System.Text.Json;
using Microsoft.Extensions.Options;
namespace SummerBestWebForm2.Components.Pages;
@ -12,24 +15,26 @@ public partial class Home
async Task OnFinishHandler()
//private void SaveIt()
{
using (var em = new kmCommonLibsCore.Emails())
using (var em = new kmCommonLibsCore.Emails() { HandleOptOuts = false, SendMethod = enuSendMethod.OnsiteServer })
{
// Parsing the submitted form to pull the relevant information
string cardType = isPostcard ? "Postcard" : "Plastic Card";
string cardDesign = string.Empty;
var cardType = isPostcard ? "Postcard" : "Plastic Card";
var cardDesign = string.Empty;
if (designOne)
cardDesign = "A";
else if (designTwo)
cardDesign = "B";
else if (designThree)
cardDesign = "C";
else if (designCustom)
cardDesign = "CUSTOM";
// Postcard or Plastic specific options
string customizationInfo = string.Empty;
var customizationInfo = string.Empty;
if (isPostcard)
{
string verseChoice = string.Empty;
string sigChoice = string.Empty;
var verseChoice = string.Empty;
var sigChoice = string.Empty;
if (verseOne)
verseChoice = "1";
@ -46,132 +51,40 @@ public partial class Home
sigChoice = string.Format("Option F - {0}", customSignature);
// combine these into customizationInfo
customizationInfo = string.Format("Verse: {0}<br />Signature: {1}", verseChoice, sigChoice);
customizationInfo = string.Format("<tr><td>Verse:</td><td>{0}</td></tr><tr><td>Signature:</td><td>{1}</td></tr>", verseChoice, sigChoice);
}
else // isPlasticCard
{
string smallOfferString = string.Empty;
string bigOfferString = string.Empty;
var smallOfferList = new List<string>();
var bigOfferList = new List<string>();
int[] smallIndexes = new int[4];
int[] bigIndexes = new int[2];
int smallCount = 0;
for (int index = 0; index < smallOffers.Length; index++)
{
if (smallOffers[index])
{
smallIndexes[smallCount] = index;
smallCount++;
smallOfferList.Add(string.Format("B{0}", index));
}
}
int bigCount = 0;
for (int index = 0; index < bigOffers.Length; index++)
{
if (bigOffers[index])
{
bigIndexes[bigCount] = index;
bigCount++;
}
bigOfferList.Add(string.Format("A{0}", index + 1));
}
foreach (int index in smallIndexes)
{
switch (index)
{
case 0:
smallOfferString = smallOfferString + "B1 ";
break;
case 1:
smallOfferString = smallOfferString + "B2 ";
break;
case 2:
smallOfferString = smallOfferString + "B3 ";
break;
case 3:
smallOfferString = smallOfferString + "B4 ";
break;
case 4:
smallOfferString = smallOfferString + "B5 ";
break;
case 5:
smallOfferString = smallOfferString + "B6 ";
break;
case 6:
smallOfferString = smallOfferString + "B7 ";
break;
case 7:
smallOfferString = smallOfferString + "B8 ";
break;
case 8:
smallOfferString = smallOfferString + "B9 ";
break;
case 9:
smallOfferString = smallOfferString + "B10 ";
break;
case 10:
smallOfferString = smallOfferString + "B11 ";
break;
case 11:
smallOfferString = smallOfferString + "B12 ";
break;
}
}
foreach (int index in bigIndexes)
{
switch (index)
{
case 0:
bigOfferString = bigOfferString + "A1 ";
break;
case 1:
bigOfferString = bigOfferString + "A2 ";
break;
case 2:
bigOfferString = bigOfferString + "A3 ";
break;
case 3:
bigOfferString = bigOfferString + "A4 ";
break;
case 4:
bigOfferString = bigOfferString + "A5 ";
break;
case 5:
bigOfferString = bigOfferString + "A6 ";
break;
}
}
customizationInfo = string.Format("Offers: {0} - {1}", bigOfferString, smallOfferString);
customizationInfo = string.Format("<tr><td>BIG Offers:</td><td>{0}</td></tr><tr><td>SMALL Offers:</td><td>{1}</td></tr>",
string.Join(", ", bigOfferList), string.Join(", ", smallOfferList));
}
// Logo info
string logos = string.Empty;
if (!goodyear && !michelin && !custom)
logos = "NA";
else
{
var logos = new List<string>();
if (goodyear)
{
logos += "Goodyear";
logos.Add("Goodyear");
if (michelin)
logos += ", Michelin";
logos.Add("Michelin");
if (custom)
logos += ", Custom";
}
else if (michelin)
{
logos += "Michelin";
if (custom)
logos += ", Custom";
}
else if (custom)
logos += "Custom";
}
logos.Add("Custom");
if (logos.Count == 0)
logos.Add("NONE");
// Payment info
string paymentMethod = string.Empty;
@ -187,16 +100,35 @@ public partial class Home
em.AddAddress(enuAddressType.From, "support@keymotive.us", "Summer Growth Enrollment");
em.AddAddress(enuAddressType.To, "support@keymotive.us", "KeyMotive Support");
string locInfoString = string.Format("<pre>Location Name: {0}<br />Manager: {1}<br />Address: {2}<br />City: {3}<br />State: {4}<br />Zip: {5}<br /><br />Phone Number: {6}<br />Contact Name: {7}<br />Contact Phone: {8}<br />Contact Email: {9}<br />",
var targetAudience = string.Format("<tr><td>Audience:</td><td>{0}</td></tr>", string.IsNullOrWhiteSpace(audienceType) ? "NOTHING!" : audienceType);
var locInfoString = string.Format("<tr style='padding-top:14px'><td>Location Name:</td><td>{0}</td></tr>" +
"<tr><td>Manager:</td><td>{1}</td></tr>" +
"<tr><td>Address:</td><td>{2}</td></tr>" +
"<tr><td>City:</td><td>{3}</td></tr>" +
"<tr><td>State:</td><td>{4}</td></tr>" +
"<tr><td>Zip:</td><td>{5}</td></tr>" +
"<tr style='padding-top:14px'><td>Phone Number:</td><td>{6}</td></tr>" +
"<tr><td>Contact Name:</td><td>{7}</td></tr>" +
"<tr><td>Contact Phone:</td><td>{8}</td></tr>" +
"<tr><td>Contact Email:</td><td>{9}</td></tr>",
locationInfo.LocationName, locationInfo.Manager, locationInfo.Address, locationInfo.City, locationInfo.State,
locationInfo.Zip, locationInfo.PhoneNumber, locationInfo.ContactName,
locationInfo.ContactPhone, locationInfo.ContactEmail);
string cardInfoString = string.Format("Card type: {0}, Design {1}<br /><br />Customization Options:<br />{2}<br />Logos: {3}<br />",
cardType, cardDesign, customizationInfo, logos);
var cardInfoString = string.Format("<tr><td>Card type:</td><td>{0}, Design {1}</td></tr>" +
"<tr style='padding-top:14px'><td colspan='2'>Customization Options:</td></tr>" +
"{2}" +
"<tr><td>Logos:</td><td>{3}</td></tr>",
cardType, cardDesign, customizationInfo, string.Join(", ", logos));
string paymentString = string.Format("Payment Method: {0}<br /><br />Requested Quantity: {1}<br />Additional Comments: {2}", paymentMethod, requestedQuantity, additionalComments);
em.HtmlBody = "<b>You have a new enrollment:</b><br />" + locInfoString + cardInfoString + paymentString + "</pre>";
if (int.TryParse(requestedQuantity, out _))
requestedQuantity = string.Format("{0:#,##0}", int.Parse(requestedQuantity));
var paymentString = string.Format("<tr><td>Payment Method:</td><td>{0}</td></tr>" +
"<tr style='padding-top:14px'><td>Requested Quantity:</td><td>{1}</td></tr>" +
"<tr><td>Additional Comments:</td><td>{2}</td></tr>", paymentMethod, requestedQuantity, additionalComments);
em.HtmlBody = "<div style='font-size:1.25em'><b>You have a new enrollment:</b><br /><br /><table style='font-size:1.25em;display:block;font-family: monospace;'>" +
targetAudience + locInfoString + cardInfoString + paymentString + "</table></div>";
try
{
@ -213,6 +145,7 @@ public partial class Home
}
#region "User Selections - Model"
public bool? IsAudienceChoiceValid { get; set; } = false;
public bool? IsCardChoiceValid { get; set; } = false;

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("SummerBestWebForm2")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8d5f8fbc0b180ec316bb0694deca84493cd04c44")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+bba2f28bcf896d983f52e111581ce2a65da9bc7c")]
[assembly: System.Reflection.AssemblyProductAttribute("SummerBestWebForm2")]
[assembly: System.Reflection.AssemblyTitleAttribute("SummerBestWebForm2")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
498c48e569ca977ccb10053e88c4f50ed1c99a69b6b43726cfc5e871d74b9091
be988df5edd5a7019169378b5ebfacb2a2da0e7d7d3f8ebfb0e8795b082a956f