WIP: rename pages
This commit is contained in:
parent
b4819ce547
commit
e740f32fd7
5 changed files with 8 additions and 158 deletions
|
@ -1,150 +0,0 @@
|
|||
|
||||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
//
|
||||
|
||||
using System.Globalization;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Forms;
|
||||
using Microsoft.AspNetCore.Components.Rendering;
|
||||
|
||||
namespace Wonky.Client.Helpers;
|
||||
|
||||
/// <summary>
|
||||
/// InputDateTime Component
|
||||
/// </summary>
|
||||
/// <typeparam name="TValue"></typeparam>
|
||||
public class InputDateTime<TValue> : InputDate<TValue>
|
||||
{
|
||||
private const string DateFormat = "yyyy-MM-ddTHH:mm";
|
||||
|
||||
/// <summary>
|
||||
/// BuildTender
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
protected override void BuildRenderTree(RenderTreeBuilder builder)
|
||||
{
|
||||
builder.OpenElement(0, "input");
|
||||
builder.AddMultipleAttributes(1, AdditionalAttributes);
|
||||
builder.AddAttribute(2, "type", "datetime-local");
|
||||
builder.AddAttribute(3, "class", CssClass);
|
||||
builder.AddAttribute(4, "value", BindConverter.FormatValue(CurrentValueAsString));
|
||||
builder.AddAttribute(5, "onchange",
|
||||
EventCallback.Factory.CreateBinder<string>(this, __value => CurrentValueAsString = __value,
|
||||
CurrentValueAsString));
|
||||
builder.CloseElement();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Format value as string
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <returns></returns>
|
||||
protected override string FormatValueAsString(TValue value)
|
||||
{
|
||||
return value switch
|
||||
{
|
||||
DateTime dateTimeValue =>
|
||||
BindConverter.FormatValue(dateTimeValue, DateFormat, CultureInfo.InvariantCulture),
|
||||
DateTimeOffset dateTimeOffsetValue => BindConverter.FormatValue(dateTimeOffsetValue, DateFormat,
|
||||
CultureInfo.InvariantCulture),
|
||||
_ => string.Empty
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TryParseValueFromString
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="validationErrorMessage"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="InvalidOperationException"></exception>
|
||||
protected override bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage)
|
||||
{
|
||||
// Unwrap nullable types. We don't have to deal with receiving empty values for nullable
|
||||
// types here, because the underlying InputBase already covers that.
|
||||
var targetType = Nullable.GetUnderlyingType(typeof(TValue)) ?? typeof(TValue);
|
||||
|
||||
bool success;
|
||||
if (targetType == typeof(DateTime))
|
||||
{
|
||||
success = TryParseDateTime(value, out result);
|
||||
}
|
||||
else if (targetType == typeof(DateTimeOffset))
|
||||
{
|
||||
success = TryParseDateTimeOffset(value, out result);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidOperationException($"The type '{targetType}' is not a supported date type.");
|
||||
}
|
||||
|
||||
if (success)
|
||||
{
|
||||
validationErrorMessage = null;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
validationErrorMessage = string.Format(ParsingErrorMessage, FieldIdentifier.FieldName);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TrypParseDateTime
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="result"></param>
|
||||
/// <returns></returns>
|
||||
private static bool TryParseDateTime(string value, out TValue result)
|
||||
{
|
||||
var success =
|
||||
BindConverter.TryConvertToDateTime(value, CultureInfo.InvariantCulture, DateFormat, out var parsedValue);
|
||||
if (success)
|
||||
{
|
||||
result = (TValue)(object)parsedValue;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = default;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TryParseDateTimeOffset
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="result"></param>
|
||||
/// <returns></returns>
|
||||
private static bool TryParseDateTimeOffset(string value, out TValue result)
|
||||
{
|
||||
var success =
|
||||
BindConverter.TryConvertToDateTimeOffset(value, CultureInfo.InvariantCulture, DateFormat,
|
||||
out var parsedValue);
|
||||
if (success)
|
||||
{
|
||||
result = (TValue)(object)parsedValue;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = default;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -26,13 +26,13 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class AdvisorActivityViewPage : IDisposable
|
||||
public partial class AdvisorActivityViewEditPage : IDisposable
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Parameter] public string OrderId { get; set; } = "";
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||
[Inject] public ILogger<AdvisorActivityViewPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorActivityViewEditPage> Logger { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
private ReportItemView ReportItem { get; set; } = new();
|
||||
|
@ -55,7 +55,7 @@ public partial class AdvisorActivityViewPage : IDisposable
|
|||
Working = false;
|
||||
}
|
||||
|
||||
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
|
||||
private void HandleFieldChanged(object? sender, FieldChangedEventArgs? e)
|
||||
{
|
||||
StateHasChanged();
|
||||
}
|
|
@ -33,11 +33,11 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class AdvisorCustomerViewPage : IDisposable
|
||||
public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public ILogger<AdvisorCustomerViewPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorCustomerViewEditPage> Logger { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||
|
@ -380,7 +380,7 @@ public partial class AdvisorCustomerViewPage : IDisposable
|
|||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
|
||||
private void HandleFieldChanged(object? sender, FieldChangedEventArgs? e)
|
||||
{
|
||||
NextVisit = LastVisit.AddDays(Company.Interval * 7);
|
||||
// avoid nesting if by assuming ValidVat is false
|
||||
|
@ -402,7 +402,7 @@ public partial class AdvisorCustomerViewPage : IDisposable
|
|||
private void ValidationChanged(object sender, ValidationStateChangedEventArgs e)
|
||||
{
|
||||
ErpContext.OnFieldChanged -= HandleFieldChanged;
|
||||
ErpContext.OnValidationStateChanged -= ValidationChanged;
|
||||
ErpContext.OnValidationStateChanged -= ValidationChanged!;
|
||||
|
||||
ErpContext = new EditContext(Company);
|
||||
|
||||
|
@ -417,6 +417,6 @@ public partial class AdvisorCustomerViewPage : IDisposable
|
|||
{
|
||||
Interceptor.DisposeEvent();
|
||||
ErpContext.OnFieldChanged -= HandleFieldChanged;
|
||||
ErpContext.OnValidationStateChanged -= ValidationChanged;
|
||||
ErpContext.OnValidationStateChanged -= ValidationChanged!;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue