public async Task Delete(Contracts.Entities.Machine m) { m.MachineCommands = null; m.MachineInitCommands = null; Uow.MarkDeleted(m); await Task.FromResult(0); //Uow.ExecuteSqlCommand("delete from MachineCommand where MachineID = " + m.MachineID); => delete cascade //Uow.ExecuteSqlCommand("delete from MachineInitCommand where MachineID = " + m.MachineID); => delete cascade }
public async Task Store(Contracts.Entities.Machine machine) { // search und update machine int id = machine.MachineID; var machineCommands = machine.MachineCommands?.ToList() ?? new List <Contracts.Entities.MachineCommand>(); var machineInitCommands = machine.MachineInitCommands?.ToList() ?? new List <Contracts.Entities.MachineInitCommand>(); var machineInDb = await Context.Machines. Where(m => m.MachineID == id). Include(d => d.MachineCommands). Include(d => d.MachineInitCommands). FirstOrDefaultAsync(); if (machineInDb == default(Contracts.Entities.Machine)) { // add new Uow.MarkNew(machine); foreach (var mc in machineCommands) { Uow.MarkNew(mc); } foreach (var mic in machineInitCommands) { Uow.MarkNew(mic); } } else { // syn with existing Uow.SetValue(machineInDb, machine); // search und update machinecommands (add and delete) Sync <Contracts.Entities.MachineCommand>( machineInDb.MachineCommands, machineCommands, (x, y) => x.MachineCommandID > 0 && x.MachineCommandID == y.MachineCommandID); Sync <Contracts.Entities.MachineInitCommand>( machineInDb.MachineInitCommands, machineInitCommands, (x, y) => x.MachineInitCommandID > 0 && x.MachineInitCommandID == y.MachineInitCommandID); } }
private static void CompareMachine(Machine machine, Machine machineread) { Assert.AreEqual(true, machineread.CompareProperties(machine)); Assert.AreEqual(machine.MachineCommands == null ? 0 : machine.MachineCommands.Count, machineread.MachineCommands.Count); Assert.AreEqual(machine.MachineInitCommands == null ? 0 : machine.MachineInitCommands.Count, machineread.MachineInitCommands.Count); foreach (MachineCommand mc in machineread.MachineCommands) { Assert.AreEqual(true, mc.CompareProperties(machine.MachineCommands.Single(m => m.MachineCommandID == mc.MachineCommandID))); } foreach (MachineInitCommand mc in machineread.MachineInitCommands) { Assert.AreEqual(true, mc.CompareProperties(machine.MachineInitCommands.Single(m => m.MachineInitCommandID == mc.MachineInitCommandID))); } }
private static int AddMachinInitCommands(Machine machine) { int count = 2; machine.MachineInitCommands = new List<MachineInitCommand>(); machine.MachineInitCommands.Add(new MachineInitCommand() { SeqNo = 0, CommandString = "Test1" }); machine.MachineInitCommands.Add(new MachineInitCommand() { SeqNo = 1, CommandString = "Test2" }); return count; }
private static int AddMachinCommands(Machine machine) { int count = 2; machine.MachineCommands = new List<MachineCommand>(); machine.MachineCommands.Add(new MachineCommand() { CommandName = "Name1", CommandString = "Test1" }); machine.MachineCommands.Add(new MachineCommand() { CommandName = "Name1", CommandString = "Test2" }); return count; }
private static Machine CreateMachine(string name) { var machine = new Machine() { ComPort = "com47", Axis = 2, BaudRate = 6500, Name = name, SizeX = 1m, SizeY = 1m, SizeZ = 1m, SizeA = 1m, SizeB = 1m, SizeC = 1m, BufferSize = 63, CommandToUpper = true, ProbeSizeX = 1m, ProbeSizeY = 1m, ProbeSizeZ = 1m, ProbeDistUp = 1m, ProbeDist = 1m, ProbeFeed = 1m }; return machine; }
private static async Task<int> WriteMachine(Machine machine) { int id; using (var uow = Dependency.Resolve<IUnitOfWork>()) using (var rep = Dependency.ResolveRepository<IMachineRepository>(uow)) { await rep.Store(machine); await uow.Save(); id = machine.MachineID; Assert.AreNotEqual(0, id); } return id; }
private static void MachineSeed(CNCLibContext context) { var proxonMF70 = new Machine { Name = "Proxxon MF70", ComPort = "com4", Axis = 5, SizeX = 130m, SizeY = 45m, SizeZ = 81m, SizeA = 360m, SizeB = 360m, SizeC = 360m, BaudRate = 115200, BufferSize = 63, CommandToUpper = false, ProbeSizeZ = 25m, ProbeDist = 10m, ProbeDistUp = 3m, ProbeFeed = 100m, SDSupport = true, Spindle = true, Coolant = true, Rotate = true, Laser = false }; var kk1000s = new Machine { Name = "KK1000S", ComPort = "com5", Axis = 3, SizeX = 830m, SizeY = 500m, SizeZ = 100m, SizeA = 360m, SizeB = 360m, SizeC = 360m, BaudRate = 115200, BufferSize = 63, CommandToUpper = false, ProbeSizeZ = 24.8m, ProbeDist = 10m, ProbeDistUp = 3m, ProbeFeed = 100m, SDSupport = true, Spindle = true, Coolant = true, Rotate = true, Laser = false }; var laser = new Machine { Name = "Laser", ComPort = "com6", Axis = 2, SizeX = 400m, SizeY = 380m, SizeZ = 100m, SizeA = 360m, SizeB = 360m, SizeC = 360m, BaudRate = 250000, BufferSize = 63, CommandToUpper = false, ProbeSizeZ = 25m, ProbeDist = 10m, ProbeDistUp = 3m, ProbeFeed = 100m, SDSupport = false, Spindle = false, Coolant = false, Rotate = false, Laser = true }; var minilaser = new Machine { Name = "MinLaser", ComPort = "com4", Axis = 2, SizeX = 36m, SizeY = 36m, SizeZ = 1m, SizeA = 360m, SizeB = 360m, SizeC = 360m, BaudRate = 250000, BufferSize = 63, CommandToUpper = false, ProbeSizeZ = 25m, ProbeDist = 10m, ProbeDistUp = 3m, ProbeFeed = 100m, SDSupport = false, Spindle = false, Coolant = false, Rotate = false, Laser = true }; var dck40laser = new Machine { Name = "DC-K40-Laser", ComPort = "com3", Axis = 2, SizeX = 320m, SizeY = 220m, SizeZ = 1m, SizeA = 360m, SizeB = 360m, SizeC = 360m, BaudRate = 115200, BufferSize = 63, CommandToUpper = false, ProbeSizeZ = 25m, ProbeDist = 10m, ProbeDistUp = 3m, ProbeFeed = 100m, SDSupport = false, Spindle = false, Coolant = false, Rotate = false, Laser = true }; var machines = new [] { proxonMF70, kk1000s, laser, minilaser, dck40laser }; context.Machines.AddRange(machines); var machinecommands = new [] { //ProxxonMF70 new MachineCommand{ Machine=proxonMF70, CommandName = "Set XY = 0", CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0,PosY=0, JoystickMessage=";btn4" }, new MachineCommand{ Machine=proxonMF70, CommandName = "Set X = 0", CommandString =@"g92 x0", PosX=0, PosY=1, JoystickMessage=";btn4s" }, new MachineCommand{ Machine=proxonMF70, CommandName = "Set Y = 0", CommandString =@"g92 y0", PosX=0, PosY=2, JoystickMessage=";btn4c" }, new MachineCommand{ Machine=proxonMF70, CommandName = "Set Z = 0", CommandString =@"g92 z0", PosX=0, PosY=3, JoystickMessage=";btn3" }, new MachineCommand{ Machine=proxonMF70, CommandName = "Probe Z", CommandString =@";probe:z", PosX=0, PosY=4, JoystickMessage=";btn3s" }, new MachineCommand{ Machine=proxonMF70, CommandName = "Spindle On", CommandString =@"m3", PosX=1, PosY=0, JoystickMessage=";btn1" }, new MachineCommand{ Machine=proxonMF70, CommandName = "Spindle Off", CommandString =@"m5", PosX=1, PosY=1, JoystickMessage=";btn1s" }, new MachineCommand{ Machine=proxonMF70, CommandName = "Coolant On", CommandString =@"m7", PosX=1, PosY=2, JoystickMessage=";btn2" }, new MachineCommand{ Machine=proxonMF70, CommandName = "Coolant Off", CommandString =@"m9", PosX=1, PosY=3, JoystickMessage=";btn2s" }, //kk1000s new MachineCommand{ Machine=kk1000s, CommandName = "Set XY = 0", CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0, PosY=0 , JoystickMessage=";btn4" }, new MachineCommand{ Machine=kk1000s, CommandName = "Set X = 0", CommandString =@"g92 x0", PosX=0, PosY=1, JoystickMessage=";btn4s" }, new MachineCommand{ Machine=kk1000s, CommandName = "Set Y = 0", CommandString =@"g92 y0", PosX=0, PosY=2, JoystickMessage=";btn4c" }, new MachineCommand{ Machine=kk1000s, CommandName = "Set Z = 0", CommandString =@"g92 z0", PosX=0, PosY=3, JoystickMessage=";btn3" }, new MachineCommand{ Machine=kk1000s, CommandName = "Probe Z", CommandString = @";probe:z", PosX = 0, PosY = 4, JoystickMessage=";btn3s" }, new MachineCommand{ Machine=kk1000s, CommandName = "Spindle On", CommandString =@"m3", PosX=1, PosY=0, JoystickMessage=";btn1" }, new MachineCommand{ Machine=kk1000s, CommandName = "Spindle Off", CommandString =@"m5", PosX=1, PosY=1, JoystickMessage=";btn1s" }, new MachineCommand{ Machine=kk1000s, CommandName = "Coolant On", CommandString =@"m7", PosX=1, PosY=2, JoystickMessage=";btn2" }, new MachineCommand{ Machine=kk1000s, CommandName = "Coolant Off", CommandString =@"m9", PosX=1, PosY=3, JoystickMessage=";btn2s" }, //laser new MachineCommand{ Machine=laser, CommandName = "Set XY = 0", CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0, PosY=0, JoystickMessage=";btn4" }, new MachineCommand{ Machine=laser, CommandName = "Set X = 0", CommandString =@"g92 x0", PosX=0, PosY=1, JoystickMessage=";btn4s" }, new MachineCommand{ Machine=laser, CommandName = "Set Y = 0", CommandString =@"g92 y0", PosX=0, PosY=2, JoystickMessage=";btn4c" }, new MachineCommand{ Machine=laser, CommandName = "Laser Off", CommandString =@"m107", PosX=1, PosY=0, JoystickMessage=";btn1" }, new MachineCommand{ Machine=laser, CommandName = "Laser On", CommandString =@"m106", PosX=1, PosY=1, JoystickMessage=";btn2:0" }, new MachineCommand{ Machine=laser, CommandName = "Laser Min", CommandString =@"m106 s1", PosX=1, PosY=2, JoystickMessage=";btn2:1" }, new MachineCommand{ Machine=laser, CommandName = "Laser Max", CommandString =@"m106 s255", PosX=1, PosY=3, JoystickMessage=";btn2:2" }, //minlaser new MachineCommand{ Machine=minilaser, CommandName = "Set XY = 0", CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0,PosY=0, JoystickMessage=";btn4" }, new MachineCommand{ Machine=minilaser, CommandName = "Set X = 0", CommandString =@"g92 x0\n;beep",PosX=0, PosY=1, JoystickMessage=";btn4s" }, new MachineCommand{ Machine=minilaser, CommandName = "Set Y = 0", CommandString =@"g92 y0\n;beep",PosX=0, PosY=2, JoystickMessage=";btn4c" }, new MachineCommand{ Machine=minilaser, CommandName = "Laser Off", CommandString =@"m107", PosX=1, PosY=0, JoystickMessage=";btn1" }, new MachineCommand{ Machine=minilaser, CommandName = "Laser On", CommandString =@"m106", PosX=1, PosY=1, JoystickMessage=";btn2:0" }, new MachineCommand{ Machine=minilaser, CommandName = "Laser Min", CommandString =@"m106 s1", PosX=1, PosY=2, JoystickMessage=";btn2:1" }, new MachineCommand{ Machine=minilaser, CommandName = "Laser Max", CommandString =@"m106 s255", PosX=1, PosY=3, JoystickMessage=";btn2:2" }, new MachineCommand{ Machine=minilaser, CommandName = "Sqare", CommandString =@"m106 s2\ng0x0y0\ng0x36\ng0y36\ng0x0\ng0y0m107", PosX=3, PosY=0 }, //co2 laser new MachineCommand{ Machine=dck40laser, CommandName = "Set XY = 0", CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0, PosY=0, JoystickMessage=";btn4" }, new MachineCommand{ Machine=dck40laser, CommandName = "Set X = 0", CommandString =@"g92 x0", PosX=0, PosY=1, JoystickMessage=";btn4s" }, new MachineCommand{ Machine=dck40laser, CommandName = "Set Y = 0", CommandString =@"g92 y0", PosX=0, PosY=2, JoystickMessage=";btn4c" }, new MachineCommand{ Machine=dck40laser, CommandName = "Laser Off", CommandString =@"m107", PosX=1, PosY=0, JoystickMessage=";btn1" }, new MachineCommand{ Machine=dck40laser, CommandName = "Laser On", CommandString =@"m106", PosX=1, PosY=1, JoystickMessage=";btn2:0" }, new MachineCommand{ Machine=dck40laser, CommandName = "Laser Min", CommandString =@"m106 s1", PosX=1, PosY=2, JoystickMessage=";btn2:1" }, new MachineCommand{ Machine=dck40laser, CommandName = "Laser Max", CommandString =@"m106 s255", PosX=1, PosY=3, JoystickMessage=";btn2:2" }, }; var machineinitcommands = new[] { new MachineInitCommand { Machine = minilaser, SeqNo=0, CommandString = @"g0 x2" }, new MachineInitCommand { Machine = minilaser, SeqNo=1, CommandString = @"g28 x0" }, new MachineInitCommand { Machine = minilaser, SeqNo=2, CommandString = @"g0 x36" }, new MachineInitCommand { Machine = minilaser, SeqNo=3, CommandString = @"g0 x0" }, new MachineInitCommand { Machine = minilaser, SeqNo=4, CommandString = @"g0 y2" }, new MachineInitCommand { Machine = minilaser, SeqNo=5, CommandString = @"g28 y0", }, new MachineInitCommand { Machine = minilaser, SeqNo=6, CommandString = @"g0 y36" }, new MachineInitCommand { Machine = minilaser, SeqNo=7, CommandString = @"g0 y0" } }; context.MachineCommands.AddRange(machinecommands); context.MachineInitCommands.AddRange(machineinitcommands); }