aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs')
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs152
1 files changed, 51 insertions, 101 deletions
diff --git a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs
index 71d5779a6..6c3c62606 100644
--- a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs
@@ -1,16 +1,11 @@
using System;
using System.Collections.Generic;
-using System.Data.Entity;
-using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL;
using Tango.BL.Builders;
using Tango.BL.Entities;
-using Tango.Core;
-using Tango.Integration.Operation;
-using Z.EntityFramework.Plus;
namespace Tango.JobRunsGenerator
{
@@ -18,120 +13,75 @@ namespace Tango.JobRunsGenerator
{
static void Main(string[] args)
{
- DataSource dataSource = new DataSource();
- dataSource.Catalog = "Tango_DEV";
- dataSource.Address = "twine.database.windows.net";
- dataSource.IntegratedSecurity = false;
- dataSource.UserName = "Roy";
- dataSource.Password = "Aa123456";
+ Console.WriteLine("Job Runs Generator Started...");
- using (ObservablesContext db = ObservablesContext.CreateDefault(dataSource))
+ DateTime now = DateTime.UtcNow;
+ DateTime yearago = DateTime.UtcNow.AddYears(-1);
+ Random rnd = new Random();
+ List<String> messages = new List<string>()
{
- var count = db.JobRuns.Where(x => x.JobGuid != null).Count();
+ "Timeout failure",
+ "Thread Break",
+ "Application Exception",
+ "Over Temperature",
+ "Communication Error"
+ };
- int index = 0;
- int saveIndex = 0;
+ int count = 0;
- var runsGroup = db.JobRuns.Where(x => x.JobGuid != null).GroupBy(x => x.JobGuid).ToList();
+ using (ObservablesContext db = ObservablesContext.CreateDefault("localhost\\SQLEXPRESS"))
+ {
+ var machines = db.Machines.ToList();
- foreach (var runGroup in runsGroup)
+ foreach (var machine in machines)
{
- var runs = runGroup;
-
- var firstRun = runs.First();
-
- var job = new JobBuilder(db).Set(x => x.Guid == firstRun.JobGuid).WithSegments().WithBrushStops().WithRML().Build();
-
- if (job == null)
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine($"Job '{firstRun.JobGuid}' was not found on the database!");
- Console.ForegroundColor = ConsoleColor.Gray;
- continue;
- }
-
- var machine = new MachineBuilder(db).Set(job.MachineGuid).WithConfiguration().Build();
+ new MachineBuilder(db).Set(machine).WithJobs().Build();
- foreach (var segment in job.Segments)
+ foreach (var job in machine.Jobs)
{
- foreach (var stop in segment.BrushStops)
+ using (ObservablesContext db2 = ObservablesContext.CreateDefault("localhost\\SQLEXPRESS"))
{
- stop.SetLiquidVolumes(machine.Configuration, job.Rml, job.Rml.GetActiveProcessGroup().ProcessParametersTables.First());
- }
- }
-
- foreach (var run in runs)
- {
- Console.WriteLine($"Fixing job {job.Name}... ({index++}/{count})");
- run.MachineGuid = job.MachineGuid;
-
- run.JobSource = job.Source;
+ for (DateTime date = yearago; date < now; date = date.AddDays(1))
+ {
+ Console.WriteLine($"Adding job runs for machine '{machine.SerialNumber}' job '{job.Name}' date {date.ToShortDateString()}...");
- if (run.JobLength == 0) run.JobLength = job.LengthIncludingNumberOfUnits;
- if (run.JobName == null) run.JobName = job.Name;
- if (run.RmlGuid == null) run.RmlGuid = job.RmlGuid;
- if (run.JobString == null) run.JobString = job.ToJobFileWhenLoaded().ToString();
- if (run.LiquidQuantityString == null) run.LiquidQuantities = MachineOperator.CreateJobRunLiquidQuantities(job, machine.Configuration, job.Rml.GetActiveProcessGroup().ProcessParametersTables.First(), run.EndPosition, job.LengthIncludingNumberOfUnits);
- if (run.UserGuid == null) run.UserGuid = job.UserGuid;
- if (run.UploadingStartDate == null) run.UploadingStartDate = run.StartDate;
- if (run.HeatingStartDate == null) run.HeatingStartDate = run.StartDate;
- if (run.ActualStartDate == null) run.ActualStartDate = run.StartDate;
- run.IsGradient = job.Segments.Any(x => x.BrushStops.Count > 1);
+ for (int i = 0; i < rnd.Next(0, 9); i++)
+ {
+ int status = rnd.Next(0, 3);
+ String message = messages[rnd.Next(0, messages.Count)];
- //Set new liquid quantities.
- if (run.CyanQuantity == 0 &&
- run.MagentaQuantity == 0 &&
- run.YellowQuantity == 0 &&
- run.BlackQuantity == 0 &&
- run.TransparentQuantity == 0 &&
- run.LubricantQuantity == 0 &&
- run.CleanerQuantity == 0)
- {
- //Cyan
- var cyan = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Cyan);
- run.CyanQuantity = cyan != null ? cyan.Quantity : 0;
+ db2.JobRuns.Add(new JobRun()
+ {
+ StartDate = date,
+ EndDate = date.AddMinutes(rnd.Next(10, 61)),
+ JobGuid = job.Guid,
+ EndPosition = job.Length / rnd.Next(1, 11),
+ Status = status,
+ FailedMessage = status == 2 ? message : null,
+ });
- //Magenta
- var magenta = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Magenta);
- run.MagentaQuantity = magenta != null ? magenta.Quantity : 0;
+ count++;
+ }
+ }
- //Yellow
- var yellow = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Yellow);
- run.YellowQuantity = yellow != null ? yellow.Quantity : 0;
-
- //Black
- var black = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Black);
- run.BlackQuantity = black != null ? black.Quantity : 0;
-
- //TI
- var ti = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.TransparentInk);
- run.TransparentQuantity = ti != null ? ti.Quantity : 0;
-
- //Lubricant
- var lubricant = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Lubricant);
- run.LubricantQuantity = lubricant != null ? lubricant.Quantity : 0;
-
- //Cleaner
- var cleaner = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Cleaner);
- run.CleanerQuantity = cleaner != null ? cleaner.Quantity : 0;
- }
-
- saveIndex++;
-
- if (saveIndex > 100)
- {
- saveIndex = 0;
- Console.WriteLine("Saving changes...");
- db.SaveChanges();
+ db2.SaveChanges();
}
}
}
- Console.WriteLine("Saving changes...");
- db.SaveChanges();
+ Console.WriteLine($"The generator is about to insert {count} job runs to the database are you sure? [Y/N]:");
+ var key = Console.ReadKey().Key;
- Console.WriteLine("Done!");
- Console.ReadLine();
+ if (key == ConsoleKey.Y)
+ {
+ Console.WriteLine("Saving changes to database...");
+ Console.WriteLine("Done!");
+ Console.ReadLine();
+ }
+ else
+ {
+ return;
+ }
}
}
}