aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2020-05-31 08:20:46 +0300
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2020-05-31 08:20:46 +0300
commit03e6652ef104a70370968142594df3a01db7744e (patch)
tree3b995d1ecf27907de526f45c353a07d10db74c6e /Software/Visual_Studio/MachineStudio
parent52956d3598177de58c0d742e374888cfb44276da (diff)
downloadTango-03e6652ef104a70370968142594df3a01db7744e.tar.gz
Tango-03e6652ef104a70370968142594df3a01db7744e.zip
Statistics page. Added validation rule to check start date less or equals to end date and enable/disable 'Analyze' button according to validation.
Related Work Items: #2877
Diffstat (limited to 'Software/Visual_Studio/MachineStudio')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj1
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ValidationRules/DateExpiredRule.cs21
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml39
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml.cs41
5 files changed, 100 insertions, 5 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj
index 12c1faa7d..e484754bc 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj
@@ -95,6 +95,7 @@
<DependentUpon>PieChartTooltipControl.xaml</DependentUpon>
</Compile>
<Compile Include="StatisticsModule.cs" />
+ <Compile Include="ValidationRules\DateExpiredRule.cs" />
<Compile Include="ViewModelLocator.cs" />
<Compile Include="ViewModels\ChartsViewVM.cs" />
<Compile Include="ViewModels\JobRunsViewVM.cs" />
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ValidationRules/DateExpiredRule.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ValidationRules/DateExpiredRule.cs
new file mode 100644
index 000000000..98b90f855
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ValidationRules/DateExpiredRule.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Controls;
+
+
+namespace Tango.MachineStudio.Statistics.ValidationRules
+{
+ public class DateExpiredRule : ValidationRule
+ {
+ public override ValidationResult Validate(object value, CultureInfo cultureInfo)
+ {
+ DateTime orderDate = (DateTime)value;
+
+ return new ValidationResult(orderDate < DateTime.Now, "Please enter a date until today.");
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs
index a6a477053..6d19b7a7e 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs
@@ -85,7 +85,8 @@ namespace Tango.MachineStudio.Statistics.ViewModels
{
get { return _startSelectedDate; }
set { _startSelectedDate = value;
- RaisePropertyChangedAuto(); }
+ RaisePropertyChangedAuto();
+ }
}
private DateTime _endSelectedDate;
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml
index 7e6ebe405..9617361f7 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml
@@ -6,6 +6,7 @@
xmlns:sharedConverters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:localConverters="clr-namespace:Tango.MachineStudio.Statistics.Converters"
+ xmlns:localrule="clr-namespace:Tango.MachineStudio.Statistics.ValidationRules"
xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
@@ -163,11 +164,28 @@
<StackPanel Margin="50 10 0 0" HorizontalAlignment="Center">
<TextBlock FontSize="11">Start Date:</TextBlock>
- <DatePicker x:Name="startdatePicker" Margin="0 5 0 0" SelectedDate="{Binding StartSelectedDate}" materialDesign:HintAssist.Hint="Pick start date" Width="130" VerticalAlignment="Center" FontSize="11" />
+ <DatePicker x:Name="startdatePicker" SelectedDateChanged="StartDatePicker_SelectedDateChanged" Margin="0 5 0 0" materialDesign:HintAssist.Hint="Pick start date" Width="130" VerticalAlignment="Center" FontSize="11" >
+ <DatePicker.SelectedDate>
+ <Binding Path="StartSelectedDate" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
+ <Binding.ValidationRules>
+ <localrule:DateExpiredRule x:Name="StartDateExpiredRule"/>
+ </Binding.ValidationRules>
+ </Binding>
+ </DatePicker.SelectedDate>
+ </DatePicker>
</StackPanel>
<StackPanel Margin="50 10 0 0" HorizontalAlignment="Center">
<TextBlock FontSize="11">End Date:</TextBlock>
- <DatePicker x:Name="endDatePicker" Margin="0 5 0 0" SelectedDate="{Binding EndSelectedDate}" materialDesign:HintAssist.Hint="Pick end date" Width="130" VerticalAlignment="Center" FontSize="11" />
+ <DatePicker x:Name="endDatePicker" Margin="0 5 0 0" materialDesign:HintAssist.Hint="Pick end date" Width="130" VerticalAlignment="Center" FontSize="11" SelectedDateChanged="EndDatePicker_SelectedDateChanged">
+ <DatePicker.SelectedDate>
+ <Binding Path="EndSelectedDate" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
+ <Binding.ValidationRules>
+ <localrule:DateExpiredRule x:Name="EndDateExpiredRule"/>
+ </Binding.ValidationRules>
+ </Binding>
+ </DatePicker.SelectedDate>
+
+ </DatePicker>
</StackPanel>
</StackPanel>
@@ -326,7 +344,22 @@
</StackPanel>
</StackPanel>
</Grid>
- <Button Grid.Column="1" HorizontalAlignment="Right" Command="{Binding LoadJobRunsCommand}" Margin="0 0 10 0" Padding="70 15" Height="Auto" VerticalAlignment="Center">ANALYZE</Button>
+ <Button Grid.Column="1" HorizontalAlignment="Right" Command="{Binding LoadJobRunsCommand}" Margin="0 0 10 0" Padding="70 15" Height="Auto" VerticalAlignment="Center" Content="ANALYZE">
+ <Button.Style>
+ <Style TargetType="Button">
+ <Setter Property="IsEnabled" Value="False"/>
+ <Style.Triggers>
+ <MultiDataTrigger>
+ <MultiDataTrigger.Conditions>
+ <Condition Binding="{Binding Path=(Validation.HasError), Source={x:Reference startdatePicker}}" Value="False"/>
+ <Condition Binding="{Binding Path=(Validation.HasError), Source={x:Reference endDatePicker}}" Value="False"/>
+ </MultiDataTrigger.Conditions>
+ <Setter Property="IsEnabled" Value="True"/>
+ </MultiDataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Button.Style>
+ </Button>
</Grid>
</Border>
</Grid>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml.cs
index 2b3ed79ca..bd5d88c3b 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml.cs
@@ -81,6 +81,45 @@ namespace Tango.MachineStudio.Statistics.Views
}
}
}
-
+
+ private void StartDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
+ {
+ DatePicker datePickerObj = sender as DatePicker;
+ if(datePickerObj != null && datePickerObj.SelectedDate != null && endDatePicker.SelectedDate != null)
+ {
+ if(datePickerObj.SelectedDate> endDatePicker.SelectedDate)
+ {
+ BindingExpression start_be = datePickerObj.GetBindingExpression(DatePicker.SelectedDateProperty);
+ ValidationError validationError = new ValidationError(StartDateExpiredRule, start_be);
+ validationError.ErrorContent = "The start time must be less than or equal to end time.";
+ Validation.MarkInvalid(start_be, validationError);
+ }
+ else if (Validation.GetHasError(endDatePicker))
+ {
+ BindingExpression end_be = endDatePicker.GetBindingExpression(DatePicker.SelectedDateProperty);
+ Validation.ClearInvalid(end_be);
+ }
+ }
+ }
+
+ private void EndDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
+ {
+ DatePicker datePickerObj = sender as DatePicker;
+ if (datePickerObj.SelectedDate != null && startdatePicker.SelectedDate != null )
+ {
+ if(datePickerObj != null && datePickerObj.SelectedDate < startdatePicker.SelectedDate)
+ {
+ BindingExpression end_be = datePickerObj.GetBindingExpression(DatePicker.SelectedDateProperty);
+ ValidationError validationError = new ValidationError(EndDateExpiredRule, end_be);
+ validationError.ErrorContent = "The end time must be greater than or equal to the start time.";
+ Validation.MarkInvalid(end_be, validationError);
+ }
+ else if (Validation.GetHasError(startdatePicker))
+ {
+ BindingExpression start_be = startdatePicker.GetBindingExpression(DatePicker.SelectedDateProperty);
+ Validation.ClearInvalid(start_be);
+ }
+ }
+ }
}
}