public override void PauseJob(string text) { if (paused) { return; } paused = true; GCodeAnalyzer a = con.analyzer; pauseX = a.x - a.xOffset; pauseY = a.y - a.yOffset; pauseZ = a.z - a.zOffset; pauseE = a.activeExtruder.e - a.activeExtruder.eOffset; pauseF = a.f; pauseRelative = a.relative; PauseInfo.ShowPause(text); foreach (GCodeShort code in Main.main.editor.getContentArray(4)) { InjectManualCommand(code.text); } Main.main.Invoke(Main.main.UpdateJobButtons); if (eventPauseChanged != null) { eventPauseChanged(true); } }
public static int TogglePause(InfoId info) { int jobId = info.Id; PauseInfo pauseInfo = new PauseInfo(); pauseInfo = DoTogglePause(jobId); return(pauseInfo.Duration); }
public static int ToggleDone(InfoDone info) { if (info == null) { throw new Exception("Echec mise a jour (1)"); } PauseInfo pauseInfo = new PauseInfo(); int nrMinutes = 0; var jobId = info.Id; using (var dbContext = new QuickToDosEntities()) { toDo job = dbContext.toDos.Find(jobId); if (job == null) { throw new Exception("Echec mise a jour (2)"); } if ((bool)info.Done) // We close { job.End = DateTime.Now; if (job.Begin == null) { job.Begin = job.End; } else { pauseInfo = DoTogglePause(jobId); nrMinutes = pauseInfo.Duration; if (!pauseInfo.Paused) { pauseInfo = DoTogglePause(jobId); nrMinutes = pauseInfo.Duration; } } } else // We open again { job.End = null; } job.Done = info.Done; job.Duration = nrMinutes; dbContext.SaveChanges(); } return(nrMinutes); }
public static PauseInfo DoTogglePause(int jobId) { PauseInfo pauseInfo = new PauseInfo(); pauseInfo.Duration = 0; pauseInfo.Paused = false; using (var dbContext = new QuickToDosEntities()) { List <Break> timeChunks = dbContext.Breaks.Where(x => x.ToDoId == jobId).ToList(); if (timeChunks != null) { timeChunks = timeChunks.OrderByDescending(x => x.Id).ToList(); if (timeChunks[0].End == null) { int Id = timeChunks[0].Id; Break chunk = dbContext.Breaks.Find(Id); if (chunk != null) { chunk.End = DateTime.Now; dbContext.SaveChanges(); pauseInfo.Paused = true; } } else { var chunk = new Break { Start = DateTime.Now, ToDoId = jobId }; dbContext.Breaks.Add(chunk); dbContext.SaveChanges(); } } } pauseInfo.Duration = CalcMinutes(jobId); return(pauseInfo); }