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);
            }
        }
Example #2
0
        public static int TogglePause(InfoId info)
        {
            int       jobId     = info.Id;
            PauseInfo pauseInfo = new PauseInfo();

            pauseInfo = DoTogglePause(jobId);
            return(pauseInfo.Duration);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }