mirror of
https://github.com/tribufu/ServerManagers
synced 2026-05-18 09:35:48 +00:00
asm: update NewYear to nullable value
This commit is contained in:
parent
70ed633bc0
commit
a14ee7c108
4 changed files with 32 additions and 33 deletions
|
|
@ -1229,19 +1229,19 @@ namespace ServerManagerTool.Lib
|
||||||
set { SetValue(EventColorsChanceOverrideProperty, value); }
|
set { SetValue(EventColorsChanceOverrideProperty, value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public static readonly DependencyProperty NewYear1UTCProperty = DependencyProperty.Register(nameof(NewYear1UTC), typeof(DateTime), typeof(ServerProfile), new PropertyMetadata(DateTime.MinValue));
|
public static readonly DependencyProperty NewYear1UTCProperty = DependencyProperty.Register(nameof(NewYear1UTC), typeof(NullableValue<DateTime>), typeof(ServerProfile), new PropertyMetadata(new NullableValue<DateTime>()));
|
||||||
[DataMember]
|
[DataMember]
|
||||||
public DateTime NewYear1UTC
|
public NullableValue<DateTime> NewYear1UTC
|
||||||
{
|
{
|
||||||
get { return (DateTime)GetValue(NewYear1UTCProperty); }
|
get { return (NullableValue<DateTime>)GetValue(NewYear1UTCProperty); }
|
||||||
set { SetValue(NewYear1UTCProperty, value); }
|
set { SetValue(NewYear1UTCProperty, value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public static readonly DependencyProperty NewYear2UTCProperty = DependencyProperty.Register(nameof(NewYear2UTC), typeof(DateTime), typeof(ServerProfile), new PropertyMetadata(DateTime.MinValue));
|
public static readonly DependencyProperty NewYear2UTCProperty = DependencyProperty.Register(nameof(NewYear2UTC), typeof(NullableValue<DateTime>), typeof(ServerProfile), new PropertyMetadata(new NullableValue<DateTime>()));
|
||||||
[DataMember]
|
[DataMember]
|
||||||
public DateTime NewYear2UTC
|
public NullableValue<DateTime> NewYear2UTC
|
||||||
{
|
{
|
||||||
get { return (DateTime)GetValue(NewYear2UTCProperty); }
|
get { return (NullableValue<DateTime>)GetValue(NewYear2UTCProperty); }
|
||||||
set { SetValue(NewYear2UTCProperty, value); }
|
set { SetValue(NewYear2UTCProperty, value); }
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -4131,17 +4131,17 @@ namespace ServerManagerTool.Lib
|
||||||
{
|
{
|
||||||
serverArgs.Append("?EventColorsChanceOverride=").Append(this.EventColorsChanceOverride);
|
serverArgs.Append("?EventColorsChanceOverride=").Append(this.EventColorsChanceOverride);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.NewYear1UTC != DateTime.MinValue)
|
if (this.NewYear1UTC.HasValue)
|
||||||
{
|
{
|
||||||
serverArgs.Append("?NewYear1UTC=").Append((new DateTimeOffset(this.NewYear1UTC.ToUniversalTime())).ToUnixTimeSeconds().ToString());
|
serverArgs.Append("?NewYear1UTC=").Append((new DateTimeOffset(this.NewYear1UTC.Value.ToUniversalTime())).ToUnixTimeSeconds().ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.NewYear2UTC != DateTime.MinValue)
|
if (this.NewYear2UTC.HasValue)
|
||||||
{
|
{
|
||||||
serverArgs.Append("?NewYear2UTC=").Append((new DateTimeOffset(this.NewYear2UTC.ToUniversalTime())).ToUnixTimeSeconds().ToString());
|
serverArgs.Append("?NewYear2UTC=").Append((new DateTimeOffset(this.NewYear2UTC.Value.ToUniversalTime())).ToUnixTimeSeconds().ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(this.AdditionalArgs))
|
if (!string.IsNullOrWhiteSpace(this.AdditionalArgs))
|
||||||
{
|
{
|
||||||
var addArgs = this.AdditionalArgs.TrimStart();
|
var addArgs = this.AdditionalArgs.TrimStart();
|
||||||
|
|
@ -4448,12 +4448,12 @@ namespace ServerManagerTool.Lib
|
||||||
{
|
{
|
||||||
serverArgs.Append(" -MaxNumOfSaveBackups=").Append(this.MaxNumOfSaveBackups);
|
serverArgs.Append(" -MaxNumOfSaveBackups=").Append(this.MaxNumOfSaveBackups);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.NewYear1UTC != DateTime.MinValue || this.NewYear2UTC != DateTime.MinValue)
|
if (this.NewYear1UTC.HasValue || this.NewYear2UTC.HasValue)
|
||||||
{
|
{
|
||||||
serverArgs.Append(" -NewYearEvent");
|
serverArgs.Append(" -NewYearEvent");
|
||||||
}
|
}
|
||||||
|
|
||||||
return serverArgs.ToString();
|
return serverArgs.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -6167,8 +6167,8 @@ namespace ServerManagerTool.Lib
|
||||||
|
|
||||||
this.ClearValue(EventNameProperty);
|
this.ClearValue(EventNameProperty);
|
||||||
this.ClearValue(EventColorsChanceOverrideProperty);
|
this.ClearValue(EventColorsChanceOverrideProperty);
|
||||||
this.ClearValue(NewYear1UTCProperty);
|
this.ClearNullableValue(NewYear1UTCProperty);
|
||||||
this.ClearValue(NewYear2UTCProperty);
|
this.ClearNullableValue(NewYear2UTCProperty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResetSOTFSection()
|
public void ResetSOTFSection()
|
||||||
|
|
@ -6956,8 +6956,8 @@ namespace ServerManagerTool.Lib
|
||||||
|
|
||||||
this.SetValue(EventNameProperty, sourceProfile.EventName);
|
this.SetValue(EventNameProperty, sourceProfile.EventName);
|
||||||
this.SetValue(EventColorsChanceOverrideProperty, sourceProfile.EventColorsChanceOverride);
|
this.SetValue(EventColorsChanceOverrideProperty, sourceProfile.EventColorsChanceOverride);
|
||||||
this.SetValue(NewYear1UTCProperty, sourceProfile.NewYear1UTC);
|
this.SetNullableValue(NewYear1UTCProperty, sourceProfile.NewYear1UTC);
|
||||||
this.SetValue(NewYear2UTCProperty, sourceProfile.NewYear2UTC);
|
this.SetNullableValue(NewYear2UTCProperty, sourceProfile.NewYear2UTC);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SyncServerFiles(ServerProfile sourceProfile)
|
private void SyncServerFiles(ServerProfile sourceProfile)
|
||||||
|
|
|
||||||
|
|
@ -1847,7 +1847,7 @@
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="NewYear1UTC">
|
<Binding Path="NewYear1UTC">
|
||||||
<Binding.Converter>
|
<Binding.Converter>
|
||||||
<cc:DateTimeToStringConverter />
|
<cc:NullableDateTimeToStringConverter />
|
||||||
</Binding.Converter>
|
</Binding.Converter>
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
<cvr:DateTimeValidationRule ValidatesOnTargetUpdated="true" />
|
<cvr:DateTimeValidationRule ValidatesOnTargetUpdated="true" />
|
||||||
|
|
@ -1870,7 +1870,7 @@
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="NewYear2UTC">
|
<Binding Path="NewYear2UTC">
|
||||||
<Binding.Converter>
|
<Binding.Converter>
|
||||||
<cc:DateTimeToStringConverter />
|
<cc:NullableDateTimeToStringConverter />
|
||||||
</Binding.Converter>
|
</Binding.Converter>
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
<cvr:DateTimeValidationRule ValidatesOnTargetUpdated="true" />
|
<cvr:DateTimeValidationRule ValidatesOnTargetUpdated="true" />
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1,30 @@
|
||||||
using System;
|
using ServerManagerTool.Common.Model;
|
||||||
|
using System;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Windows.Data;
|
using System.Windows.Data;
|
||||||
using System.Windows.Markup;
|
using System.Windows.Markup;
|
||||||
|
|
||||||
namespace ServerManagerTool.Common.Converters
|
namespace ServerManagerTool.Common.Converters
|
||||||
{
|
{
|
||||||
public class DateTimeToStringConverter : MarkupExtension, IValueConverter
|
public class NullableDateTimeToStringConverter : MarkupExtension, IValueConverter
|
||||||
{
|
{
|
||||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
{
|
{
|
||||||
DateTime datetime = (DateTime)value;
|
if (value != null && value is NullableValue<DateTime> && ((NullableValue<DateTime>)value).Value != DateTime.MinValue)
|
||||||
if (datetime == DateTime.MinValue)
|
return ((NullableValue<DateTime>)value).Value.ToString("yyyy.MM.dd HH:mm:ss");
|
||||||
return "";
|
|
||||||
|
|
||||||
return datetime.ToString("yyyy.MM.dd HH:mm:ss");
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
{
|
{
|
||||||
if (value is null || value.ToString() == string.Empty)
|
if (value is null || value.ToString() == string.Empty)
|
||||||
return DateTime.MinValue;
|
return (new NullableValue<DateTime>());
|
||||||
|
|
||||||
if (!DateTime.TryParse(value.ToString(), out DateTime datetime))
|
if (!DateTime.TryParse(value.ToString(), out DateTime datetime))
|
||||||
return DateTime.MinValue;
|
return (new NullableValue<DateTime>());
|
||||||
|
|
||||||
return datetime;
|
return (new NullableValue<DateTime>(datetime));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override object ProvideValue(IServiceProvider serviceProvider)
|
public override object ProvideValue(IServiceProvider serviceProvider)
|
||||||
|
|
@ -23,17 +23,16 @@ namespace ServerManagerTool.Common.ValidationRules
|
||||||
return new ValidationResult(false, "Invalid Date. Date must be formatted as yyyy.mm.dd hh:mm:ss");
|
return new ValidationResult(false, "Invalid Date. Date must be formatted as yyyy.mm.dd hh:mm:ss");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (datetime.ToUniversalTime() <= MinUnixDate)
|
if (datetime.ToUniversalTime() < MinUnixDate)
|
||||||
{
|
{
|
||||||
return new ValidationResult(false, $"Invalid Date. The Date must be after {MinUnixDate.ToLocalTime().ToString("yyyy.MM.dd HH:mm:ss")}");
|
return new ValidationResult(false, $"Invalid Date. The Date must be after {MinUnixDate.ToLocalTime().ToString("yyyy.MM.dd HH:mm:ss")}");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (datetime.ToUniversalTime() >= MaxUnixDate)
|
if (datetime.ToUniversalTime() > MaxUnixDate)
|
||||||
{
|
{
|
||||||
return new ValidationResult(false, $"Invalid Date. The Date must be before {MaxUnixDate.ToLocalTime().ToString("yyyy.MM.dd HH:mm:ss")}");
|
return new ValidationResult(false, $"Invalid Date. The Date must be before {MaxUnixDate.ToLocalTime().ToString("yyyy.MM.dd HH:mm:ss")}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return new ValidationResult(true, null);
|
return new ValidationResult(true, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue