aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2020-05-24 14:35:45 +0300
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2020-05-24 14:35:45 +0300
commit524804c73ecf09511d88598e30c3dd89f3a64efe (patch)
treee43ccb0cd8c31b63f3060c064d5a3bc26bda20b3 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels
parentaaf9291bed25209830f68a56e55234944b39d32b (diff)
downloadTango-524804c73ecf09511d88598e30c3dd89f3a64efe.tar.gz
Tango-524804c73ecf09511d88598e30c3dd89f3a64efe.zip
Added export to Excel button to Statistics report
Related Work Items: #2805
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs94
1 files changed, 89 insertions, 5 deletions
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 800346ff9..a6a477053 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
@@ -21,6 +21,8 @@ using LiveCharts.Wpf;
using LiveCharts;
using Tango.BL.ValueObjects;
using System.Diagnostics;
+using Microsoft.Win32;
+using Tango.CSV;
namespace Tango.MachineStudio.Statistics.ViewModels
{
@@ -200,11 +202,14 @@ namespace Tango.MachineStudio.Statistics.ViewModels
public RelayCommand LoadJobRunsCommand { get; set; }
+ public RelayCommand ExportToExcelCommand { get; set; }
+
public JobRunsViewVM(INotificationProvider notificationProvider)
{
_notification = notificationProvider;
JobRuns = new ObservableCollection<JobRunModel>();
LoadJobRunsCommand = new RelayCommand(async () => await LoadJobRuns(), () => IsFree);
+ ExportToExcelCommand = new RelayCommand(ExportToExcel, () => IsFree);
LengthUpperValue = 5000.0;
LengthLowerValue = 0.0;
DateTime now = DateTime.Now;
@@ -444,12 +449,91 @@ namespace Tango.MachineStudio.Statistics.ViewModels
}
}
- #region GenerateS_StatisticsValueCollection
+ private void ExportToExcel()
+ {
+ SaveFileDialog dlg = new SaveFileDialog();
+ dlg.Title = "Job Runs Statistic Report";
+ dlg.Filter = "CSV Files|*.csv";
+ dlg.FileName = $"Statistics_Job_runs";
+ dlg.DefaultExt = ".csv";
+ if (dlg.ShowDialog().Value)
+ {
+ try
+ {
+ CsvFile<ExcelModel> csvFile = new CsvFile<ExcelModel>(new CsvDestination(dlg.FileName), new CsvDefinition()
+ {
+ Columns = new List<String>()
+ {
+ "ID",
+ "Machine",
+ "User",
+ "Job Name",
+ "Thread",
+ "Length",
+ "Source",
+ "Upload Duration",
+ "Heating Duration",
+ "Start Time",
+ "IsGradient",
+ "Gradient Resolution",
+ "Status",
+ "End Date",
+ "End Position",
+ "Cyan",
+ "Magenta",
+ "Yellow",
+ "Black",
+ "Transparent",
+ "Lubricant",
+ "Cleaner"
+ },
+ });
+ var selection = JobRuns.Where(z => z.JobRun.EndPosition > 0 && z.JobRun.EndDate != null && z.JobRun.ActualStartDate != null);
+ foreach (var jobRunModel in selection)
+ {
+ ExcelModel excel_model = new ExcelModel();
+ excel_model.ID = jobRunModel.JobRun.ID.ToString();
+ excel_model.Machine = jobRunModel.Machine != null ? jobRunModel.Machine.SerialNumber : "";
+ excel_model.User = jobRunModel.User != null ? jobRunModel.User.Contact.FullName: "";
+ excel_model.JobName = jobRunModel.JobRun.JobName;
+ excel_model.Thread = jobRunModel.Rml != null ? jobRunModel.Rml.Name : "";
+ excel_model.Length = String.Format("{0:0.##}", jobRunModel.JobRun.JobLength);
+ excel_model.Source = jobRunModel.JobRun.Source.ToString();
+ excel_model.UploadDuration = jobRunModel.UploadDuration != null ? ((TimeSpan)(jobRunModel.UploadDuration)).ToString(@"hh\:mm\:ss") : TimeSpan.FromSeconds(0).ToString(@"hh\:mm\:ss");
+ excel_model.HeatingDuration = jobRunModel.HeatingDuration != null ? ((TimeSpan)(jobRunModel.HeatingDuration)).ToString(@"hh\:mm\:ss") : TimeSpan.FromSeconds(0).ToString(@"hh\:mm\:ss");
+ excel_model.StartTime = jobRunModel.JobRun.ActualStartDate != null ? ((DateTime)jobRunModel.JobRun.ActualStartDate).ToLocalTime().ToString("MM/dd/yy HH:mm"): "";
+ excel_model.IsGradient = jobRunModel.JobRun.IsGradient ? "Yes" : "No";
+ excel_model.GR = jobRunModel.JobRun.GradientResolutionCm.ToString();
+ excel_model.Status = jobRunModel.JobRun.JobRunStatus.ToString();
+ excel_model.EndTime = jobRunModel.JobRun.EndDate != null ? ((DateTime)jobRunModel.JobRun.EndDate).ToLocalTime().ToString("MM/dd/yy HH:mm"): "";
+ excel_model.EndPosition = String.Format("{0:0.##}", jobRunModel.JobRun.EndPosition);
+ excel_model.Cyan = jobRunModel.JobRun.CyanQuantity < 0 ? "" :jobRunModel.JobRun.CyanQuantity.ToString();
+ excel_model.Magenta = jobRunModel.JobRun.MagentaQuantity < 0 ? "" : jobRunModel.JobRun.MagentaQuantity.ToString();
+ excel_model.Yellow = jobRunModel.JobRun.YellowQuantity < 0 ? "" : jobRunModel.JobRun.YellowQuantity.ToString();
+ excel_model.Black = jobRunModel.JobRun.BlackQuantity < 0 ? "" : jobRunModel.JobRun.BlackQuantity.ToString();
+ excel_model.Transparent = jobRunModel.JobRun.TransparentQuantity < 0 ? "" : jobRunModel.JobRun.TransparentQuantity.ToString();
+ excel_model.Lubricant = jobRunModel.JobRun.LubricantQuantity < 0 ? "" : jobRunModel.JobRun.LubricantQuantity.ToString();
+ excel_model.Cleaner = jobRunModel.JobRun.CleanerQuantity < 0 ? "" : jobRunModel.JobRun.CleanerQuantity.ToString();
+ csvFile.Append(excel_model);
+
+ }
+
+ csvFile.Dispose();
+ _notification.ShowInfo("Report generated successfully.");
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error generating Statistics Job Runs report.");
+ _notification.ShowError($"Error generating Statistics Job Runs report..\n{ex.Message}");
+ }
+ }
+ }
+ #region GenerateS_StatisticsValueCollection
- /// <summary>
- /// Generates the statistics.
- /// </summary>
- protected void GenerateStatistics()
+ /// <summary>
+ /// Generates the statistics.
+ /// </summary>
+ protected void GenerateStatistics()
{
StatisticsValueCollection.Clean();
if (JobRuns.Count() == 0)