diff --git a/NumberSearch.Mvc/Views/Home/Careers.cshtml b/NumberSearch.Mvc/Views/Home/Careers.cshtml index 86c183b2..ea62e512 100644 --- a/NumberSearch.Mvc/Views/Home/Careers.cshtml +++ b/NumberSearch.Mvc/Views/Home/Careers.cshtml @@ -16,8 +16,8 @@
-
-
+
+

Customer Service Representative (Level 2)

@@ -59,11 +59,9 @@

☎️ Why us?

We are a boutique telephony provider and we pride ourselves on the quality of our customer support and our ability to solve our customer's problems. In this role you'll directly help people everyday and your work will make a difference to our customers.

To apply for this position please email dan at acceleratenetworks dot com. Attach a copy of your current résumé and tell us why you're interested in this position. Please provide 1 professional and 2 personal references to help us verify your credentials.

- Apply Now + Apply Now
-
-

Customer Service Representative (Level 2)

@@ -109,9 +107,8 @@
-
-
-
+
+

Junior PHP Developer

@@ -152,8 +149,7 @@ Apply Now
-
-
+

Junior iOS and Android Developer

diff --git a/NumberSearch.Mvc/Views/Ingest/Index.cshtml b/NumberSearch.Mvc/Views/Ingest/Index.cshtml index 1fcc7870..9558a227 100644 --- a/NumberSearch.Mvc/Views/Ingest/Index.cshtml +++ b/NumberSearch.Mvc/Views/Ingest/Index.cshtml @@ -27,7 +27,7 @@ } } - const inventory = [{ + const inventory = [{ label: 'Total Numbers Ingested', data: numbersretrievedArr, borderWidth: 1 @@ -112,374 +112,388 @@ } -
-
-
-

Ingests

+
+
+
+
+

Numbers Dashboard

+

Numbers Dashboard

+

Stats on the daily ingests.

+
+
- - -
- - +
+
+
+
+ +
+ + +
+
- @{ - if (Model is not null && Model?.Ingests is not null && Model.Ingests.Any() && Model?.AreaCodes is not null) - { - @*var total = $"{Model.Ingests.Count()} ingests have been performed!"; - *@ - var timeAgo = DateTime.Now - Model.Ingests.FirstOrDefault()?.StartDate; - var last = $"Last ingest performed {timeAgo.GetValueOrDefault().ToString(@"hh\:mm\:ss")} seconds ago."; - var oneHour = DateTime.Now - DateTime.Now.AddHours(-6); - if (timeAgo > oneHour) - { - - } - else - { - - } +
+
+ @{ + if (Model is not null && Model?.Ingests is not null && Model.Ingests.Any() && Model?.AreaCodes is not null) + { + @*var total = $"{Model.Ingests.Count()} ingests have been performed!"; + *@ + var timeAgo = DateTime.Now - Model.Ingests.FirstOrDefault()?.StartDate; + var last = $"Last ingest performed {timeAgo.GetValueOrDefault().ToString(@"hh\:mm\:ss")} seconds ago."; + var oneHour = DateTime.Now - DateTime.Now.AddHours(-6); + if (timeAgo > oneHour) + { + + } + else + { + + } - //var statusSymbol = "✔️"; - //foreach (var code in Model.AreaCodes) - //{ - // if (code.Count < 10) - // { - // statusSymbol = "⚠️"; - // } - // else if (code.Count < 1000) - // { - // statusSymbol = "❌"; - // } - //} + //var statusSymbol = "✔️"; + //foreach (var code in Model.AreaCodes) + //{ + // if (code.Count < 10) + // { + // statusSymbol = "⚠️"; + // } + // else if (code.Count < 1000) + // { + // statusSymbol = "❌"; + // } + //} - //

- // Provider Health @statusSymbol - //

-

@Model?.TotalPhoneNumbers Phone Numbers in Inventory

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Number Type - - Count - - % of Total -
- Standard - - @Model?.TotalStandardNumbers - - @{ - var standardPortion = Model?.TotalStandardNumbers * 100M / Model?.TotalPhoneNumbers; - } - @standardPortion!.Value.ToString("F") % -
- Premium - - @Model?.TotalPremiumNumbers - - @{ - var premiumPortion = Model?.TotalPremiumNumbers * 100M / Model?.TotalPhoneNumbers; - } - @premiumPortion!.Value.ToString("F") % -
- Executive - - @Model?.TotalExecutiveNumbers - - @{ - var executivePortion = Model?.TotalExecutiveNumbers * 100M / Model?.TotalPhoneNumbers; - } - @executivePortion!.Value.ToString("F") % -
- Tollfree - - @Model?.TotalTollFreeNumbers - - @{ - var tollfreePortion = Model?.TotalTollFreeNumbers * 100M / Model?.TotalPhoneNumbers; - } - @tollfreePortion!.Value.ToString("F") % -
-
-

- Area Code Health -

-
- - - - - @if (Model?.AreaCodes is not null) - { - foreach (var code in Model.AreaCodes) - { + //

+ // Provider Health @statusSymbol + //

+

@Model?.TotalPhoneNumbers Phone Numbers in Inventory

+
+
Area Code
+ + - } - } - - - - - - @if (Model?.AreaCodes is not null) - { - foreach (var code in Model.AreaCodes) - { + + + + + + - } - } - - -
- (@code.NPA) + Number Type
Count + Count + + % of Total +
- @code.Count + Standard
-
-

- Provider Health -

-
- - - - - - - - - - - - - @if (Model is not null && Model?.Ingests is not null && Model?.CurrentState is not null) - { - var oneDayAgo = DateTime.Now.AddDays(-1); - var providers = Model.Ingests.Select(x => x.IngestedFrom).Distinct(); - - foreach (var provider in providers) - { - var ingests = Model!.Ingests.Where(x => x.IngestedFrom == provider && x.EndDate >= oneDayAgo); - var ingestsSeven = Model!.Ingests.Where(x => x.IngestedFrom == provider && x.EndDate >= DateTime.Now.AddDays(-7)); - var currentCount = Model!.CurrentState.Where(x => x.IngestedFrom == provider).FirstOrDefault(); - + + + + + + + + + + + + - } - } - -
- Number Provider - - Current Count - - Ingest rate - - Run Time (1 Day Average) - - Longest Run (Last 7 Days) - - Churn (Average per Ingest) -
- @provider + @Model?.TotalStandardNumbers @{ - decimal total = Convert.ToDecimal(Model?.TotalPhoneNumbers); - decimal portion = 0M; - if (currentCount?.Count > 0) - { - portion = (currentCount.Count / total) * 100M; - } + var standardPortion = Model?.TotalStandardNumbers * 100M / Model?.TotalPhoneNumbers; } - @currentCount?.Count - (@portion.ToString("F") %) + @standardPortion!.Value.ToString("F") %
- @{ - var output = $"{ingests.Count()} per day"; - } - @output + Premium + + @Model?.TotalPremiumNumbers @{ - var runTimes = new List(); - foreach (var ingest in ingests) - { - runTimes.Add(ingest.EndDate - ingest.StartDate); - } - var formattedRunTime = string.Empty; - // https://stackoverflow.com/questions/8847679/find-average-of-collection-of-timespans - if (runTimes.Count > 0) - { - var doubleTicks = runTimes?.Average(x => x.Ticks); - var longTicks = Convert.ToInt64(doubleTicks); - var averageRunTime = new TimeSpan(longTicks); - if (averageRunTime.Hours > 0) - { - formattedRunTime = $"{averageRunTime.Hours} Hours and {averageRunTime.Minutes} Minutes"; - - } - else - { - formattedRunTime = $"{averageRunTime.Minutes} Minutes"; - } - } - else - { - formattedRunTime = "None"; - } + var premiumPortion = Model?.TotalPremiumNumbers * 100M / Model?.TotalPhoneNumbers; } - @formattedRunTime + @premiumPortion!.Value.ToString("F") % +
+ Executive + + @Model?.TotalExecutiveNumbers @{ - var runTimesSeven = new List(); - foreach (var ingest in ingestsSeven) - { - runTimesSeven.Add(ingest.EndDate - ingest.StartDate); - } - var formattedLongest = string.Empty; - if (runTimesSeven.Count() > 0) - { - var longest = runTimesSeven.Max(); - if (longest.Hours > 0) - { - formattedLongest = $"{longest.Hours} Hours and {longest.Minutes} Minutes"; - } - else - { - formattedLongest = $"{longest.Minutes} Minutes"; - } - } - else - { - formattedRunTime = "None"; - } + var executivePortion = Model?.TotalExecutiveNumbers * 100M / Model?.TotalPhoneNumbers; } - @formattedLongest + @executivePortion!.Value.ToString("F") % +
+ Tollfree + + @Model?.TotalTollFreeNumbers @{ - var churn = ingests.Count() > 0 ? ingests?.Average(x => x.Removed) : 0; - var formattedChurn = $"{churn!.Value.ToString("F0")} Numbers Removed"; + var tollfreePortion = Model?.TotalTollFreeNumbers * 100M / Model?.TotalPhoneNumbers; } - @formattedChurn + @tollfreePortion!.Value.ToString("F") %
-
-

- Logged Ingests -

-
- - - - - - - - - - - - - - - - - @if (Model?.Ingests is not null) - { - foreach (var ingest in Model.Ingests.Take(31)) - { - var timeElapsed = ingest.StartDate - ingest.EndDate; + +
Ingested FromNumbers retrievedIngested NewFailed to IngestUpdated ExistingUnchangedRemovedMinutes ElapsedStart DateEnd Date
+
+

+ Area Code Health +

+
+ + - @{ - if (ingest?.IngestedFrom == "All") + + @if (Model?.AreaCodes is not null) + { + foreach (var code in Model.AreaCodes) { - - - - - - - - - - + } - else + } + + + + + + @if (Model?.AreaCodes is not null) + { + foreach (var code in Model.AreaCodes) { - string badge = string.Empty; - if (ingest?.Priority ?? false) - { - badge = $"Priority"; - } - else - { - badge = $"Complete"; - } - - - - - - - - - - + } } - } - } - -
Area Code@ingest?.IngestedFrom@ingest!.NumbersRetrived@ingest.IngestedNew@ingest.FailedToIngest@ingest.UpdatedExisting@ingest.Unchanged@ingest.Removed@timeElapsed.ToString(@"hh\:mm")@ingest?.StartDate@ingest?.EndDate + (@code.NPA) +
Count
@ingest?.IngestedFrom
@Html.Raw(badge)
@ingest!.NumbersRetrived@ingest.IngestedNew@ingest.FailedToIngest@ingest.UpdatedExisting@ingest.Unchanged@ingest.Removed@timeElapsed.ToString(@"hh\:mm")@ingest?.StartDate@ingest?.EndDate + @code.Count +
-
- } - } + + +
+

+ Provider Health +

+
+ + + + + + + + + + + + + @if (Model is not null && Model?.Ingests is not null && Model?.CurrentState is not null) + { + var oneDayAgo = DateTime.Now.AddDays(-1); + var providers = Model.Ingests.Select(x => x.IngestedFrom).Distinct(); + + foreach (var provider in providers) + { + var ingests = Model!.Ingests.Where(x => x.IngestedFrom == provider && x.EndDate >= oneDayAgo); + var ingestsSeven = Model!.Ingests.Where(x => x.IngestedFrom == provider && x.EndDate >= DateTime.Now.AddDays(-7)); + var currentCount = Model!.CurrentState.Where(x => x.IngestedFrom == provider).FirstOrDefault(); + + + + + + + + + } + } + +
+ Number Provider + + Current Count + + Ingest rate + + Run Time (1 Day Average) + + Longest Run (Last 7 Days) + + Churn (Average per Ingest) +
+ @provider + + @{ + decimal total = Convert.ToDecimal(Model?.TotalPhoneNumbers); + decimal portion = 0M; + if (currentCount?.Count > 0) + { + portion = (currentCount.Count / total) * 100M; + } + } + @currentCount?.Count + (@portion.ToString("F") %) + + @{ + var output = $"{ingests.Count()} per day"; + } + @output + + @{ + var runTimes = new List(); + foreach (var ingest in ingests) + { + runTimes.Add(ingest.EndDate - ingest.StartDate); + } + var formattedRunTime = string.Empty; + // https://stackoverflow.com/questions/8847679/find-average-of-collection-of-timespans + if (runTimes.Count > 0) + { + var doubleTicks = runTimes?.Average(x => x.Ticks); + var longTicks = Convert.ToInt64(doubleTicks); + var averageRunTime = new TimeSpan(longTicks); + if (averageRunTime.Hours > 0) + { + formattedRunTime = $"{averageRunTime.Hours} Hours and {averageRunTime.Minutes} Minutes"; + + } + else + { + formattedRunTime = $"{averageRunTime.Minutes} Minutes"; + } + } + else + { + formattedRunTime = "None"; + } + } + @formattedRunTime + + @{ + var runTimesSeven = new List(); + foreach (var ingest in ingestsSeven) + { + runTimesSeven.Add(ingest.EndDate - ingest.StartDate); + } + var formattedLongest = string.Empty; + if (runTimesSeven.Count() > 0) + { + var longest = runTimesSeven.Max(); + if (longest.Hours > 0) + { + formattedLongest = $"{longest.Hours} Hours and {longest.Minutes} Minutes"; + } + else + { + formattedLongest = $"{longest.Minutes} Minutes"; + } + } + else + { + formattedRunTime = "None"; + } + } + @formattedLongest + + @{ + var churn = ingests.Count() > 0 ? ingests?.Average(x => x.Removed) : 0; + var formattedChurn = $"{churn!.Value.ToString("F0")} Numbers Removed"; + } + @formattedChurn +
+
+

+ Logged Ingests +

+
+ + + + + + + + + + + + + + + + + @if (Model?.Ingests is not null) + { + foreach (var ingest in Model.Ingests.Take(31)) + { + var timeElapsed = ingest.StartDate - ingest.EndDate; + + @{ + if (ingest?.IngestedFrom == "All") + { + + + + + + + + + + + } + else + { + string badge = string.Empty; + if (ingest?.Priority ?? false) + { + badge = $"Priority"; + } + else + { + badge = $"Complete"; + } + + + + + + + + + + + } + } + + } + } + +
Ingested FromNumbers retrievedIngested NewFailed to IngestUpdated ExistingUnchangedRemovedMinutes ElapsedStart DateEnd Date
@ingest?.IngestedFrom@ingest!.NumbersRetrived@ingest.IngestedNew@ingest.FailedToIngest@ingest.UpdatedExisting@ingest.Unchanged@ingest.Removed@timeElapsed.ToString(@"hh\:mm")@ingest?.StartDate@ingest?.EndDate
@ingest?.IngestedFrom
@Html.Raw(badge)
@ingest!.NumbersRetrived@ingest.IngestedNew@ingest.FailedToIngest@ingest.UpdatedExisting@ingest.Unchanged@ingest.Removed@timeElapsed.ToString(@"hh\:mm")@ingest?.StartDate@ingest?.EndDate
+
+ } + } +
+