예제 #1
0
 private static void Timer_Tick(object sender)
 {
     if (!RestTime.Equals(DateTime.MinValue))
     {
         RestTime      = RestTime.AddSeconds(-1);
         bind.TxtTimer = RestTime.ToString(@"mm\:ss");
     }
 }
 public async Task <IActionResult> Post(RestTime restTime)
 {
     try
     {
         _repository.Add(restTime);
         if (await this._repository.SaveChangesAsync())
         {
             return(Ok(restTime));
         }
     }
     catch (Exception ex)
     {
         return(BadRequest($"When posting the rest time, an error ocurred: {ex.Message}"));
     }
     return(BadRequest());
 }
예제 #3
0
    public void UpdateRestTimes(RestTime restTime)
    {
        TreeIter iter;
        bool     iterOk = store.GetIterFirst(out iter);

        if (iterOk)
        {
            do
            {
                string rested = restTime.RestedTime(
                    Convert.ToInt32(store.GetValue(iter, 0)));
                if (rested != "")
                {
                    store.SetValue(iter, 2, rested);
                }
            } while (store.IterNext(ref iter));
        }
    }
예제 #4
0
    public void Fill(ArrayList myPersons, RestTime rt)
    {
        foreach (Person person in myPersons)
        {
            store.AppendValues(new String [] {
                person.UniqueID.ToString(),
                person.Name.ToString(),
                rt.RestedTime(person.UniqueID)
            }
                               );
        }

        //show sorted by column name
        store.SetSortColumnId(1, Gtk.SortType.Ascending);

        //TODO: check if sort works after 1h
        store.ChangeSortColumn();
    }
예제 #5
0
 static void NormalizeClock(RestTime arg_0) /* sub_58317 */
 {
     for (int i = 0; i <= 6; i++)
     {
         if (arg_0[i] >= timeScales[i])/* short arrays */
         {
             if (i != 6)
             {
                 arg_0[i + 1] += 1;
                 arg_0[i]     -= timeScales[i];;
             }
             else
             {
                 foreach (Player player in gbl.TeamList)
                 {
                     player.age += 1;
                 }
             }
         }
     }
 }
        public async Task <IActionResult> Put(int restTimeId, RestTime restTime)
        {
            try
            {
                var registeredRestTime = await _restTime.GetByIdAsync(restTimeId);

                if (registeredRestTime == null)
                {
                    return(NotFound());
                }
                _repository.Update(restTime);
                if (await _repository.SaveChangesAsync())
                {
                    return(Ok(restTime));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest($"When updating the rest time, an error ocurred: {ex.Message}"));
            }
            return(BadRequest());
        }
예제 #7
0
        static bool FixTeam() // fix_menu
        {
            bool action_interrupted = false;

            if (TotalHitpointsLost() != 0)
            {
                int healingAvailable = CalculateInitialHealing();

                if (TotalHitpointsLost() == 0)
                {
                    ovr025.PartySummary(gbl.SelectedPlayer);
                    ovr025.display_map_position_time();
                }
                else
                {
                    RestTime timeBackup = new RestTime(gbl.timeToRest);

                    int numCureCritical;
                    int numCureSerious;
                    int numCureLight;
                    CalculateTimeAndSpellNumbers(out numCureCritical, out numCureSerious, out numCureLight);

                    action_interrupted = ovr021.resting(false);

                    if (action_interrupted == false)
                    {
                        CalculateHealing(ref healingAvailable, numCureLight, numCureSerious, numCureCritical);
                        DoTeamHealing(ref healingAvailable);

                        ovr025.PartySummary(gbl.SelectedPlayer);
                        ovr025.display_map_position_time();

                        gbl.timeToRest = new RestTime(timeBackup);
                    }
                }
            }

            return(action_interrupted);
        }
예제 #8
0
        internal static void step_game_time(int time_slot, int amount) /* sub_583FA */
        {
            RestTime rest_time = new RestTime();

            for (int i = 0; i <= 6; i++)
            {
                rest_time[i] = gbl.area_ptr.field_6A00_Get(0x6A00 + ((0x4BC6 + i) * 2)); // as WORD[]
            }

            for (int i = 1; i <= amount; i++)
            {
                rest_time[time_slot] += 1;

                NormalizeClock(rest_time);
            }

            for (int i = 0; i <= 6; i++)
            {
                gbl.area_ptr.field_6A00_Set(0x6A00 + ((0x4BC6 + i) * 2), (ushort)rest_time[i]);
            }

            CheckAffectsTimingOut(time_slot, amount);
        }
예제 #9
0
    public void Fill(ArrayList myPersons, RestTime rt)
    {
        foreach (Person person in myPersons)
        {
            //take care on null at restTime. This happens eg on start of session where SessionMode == UNIQUE
            string restedTime = "";
            if (rt != null && rt.RestedTime(person.UniqueID) != null)
            {
                restedTime = rt.RestedTime(person.UniqueID);
            }

            store.AppendValues(new String [] {
                person.UniqueID.ToString(),
                person.Name.ToString(),
                restedTime
            }
                               );
        }

        //show sorted by column name
        store.SetSortColumnId(1, Gtk.SortType.Ascending);

        store.ChangeSortColumn();
    }
예제 #10
0
    public void UpdateRestTimes(RestTime restTime)
    {
        TreeIter iter;
        bool iterOk = store.GetIterFirst(out iter);
        if(iterOk) {
            do {
                string rested = restTime.RestedTime(
                        Convert.ToInt32(store.GetValue(iter, 0)));
                if(rested != "")
                    store.SetValue(iter, 2, rested);

            } while (store.IterNext (ref iter));
        }
    }
예제 #11
0
    public void Fill(ArrayList myPersons, RestTime rt)
    {
        foreach (Person person in myPersons)
            store.AppendValues ( new String [] {
                    person.UniqueID.ToString(),
                    person.Name.ToString(),
                    rt.RestedTime(person.UniqueID) }
                    );

        //show sorted by column name
        store.SetSortColumnId(1, Gtk.SortType.Ascending);

        //TODO: check if sort works after 1h
        store.ChangeSortColumn();
    }
예제 #12
0
    public ChronoJumpWindow(string progVersion, string progName, string runningFileName)
    {
        this.progVersion = progVersion;
        this.progName = progName;
        this.runningFileName = runningFileName;

        Glade.XML gxml;
        gxml = Glade.XML.FromAssembly (Util.GetGladePath() + "app1.glade", "app1", "chronojump");
        gxml.Autoconnect(this);

        //put an icon to window
        UtilGtk.IconWindow(app1);

        //show chronojump logo on down-left area
        changeTestImage("", "", "LOGO");

        //white bg
        eventbox_image_test.ModifyBg(StateType.Normal, UtilGtk.WHITE);

        //start with the Mode selector
        notebook_start.CurrentPage = 0;

        //new DialogMessage(Constants.MessageTypes.INFO, UtilGtk.ScreenHeightFitted(false).ToString() );
        //UtilGtk.ResizeIfNeeded(stats_window);

        //app1.Maximize(); //this was for starting at fullscreen

        report = new Report(-1); //when a session is loaded or created, it will change the report.SessionID value
        //TODO: check what happens if a session it's deleted
        //i think report it's deactivated until a new session is created or loaded,
        //but check what happens if report window is opened

        //put videoOn as false before loading preferences to start always without the camera
        //this is good if camera produces crash
        SqlitePreferences.Update("videoOn", "False", false);

        //preferencesLoaded is a fix to a gtk#-net-windows-bug where radiobuttons raise signals
        //at initialization of chronojump and gives problems if this signals are raised while preferences are loading
        loadPreferences ();

        createTreeView_persons (treeview_persons);

        createTreeView_jumps (treeview_jumps);
        createTreeView_jumps_rj (treeview_jumps_rj);
        createTreeView_runs (treeview_runs);
        createTreeView_runs_interval (treeview_runs_interval);
        createTreeView_reaction_times (treeview_reaction_times);
        createTreeView_pulses (treeview_pulses);
        createTreeView_multi_chronopic (false, treeview_multi_chronopic);

        createComboSelectJumps(true);
        createComboSelectJumpsRj(true);
        createComboSelectRuns(true);
        createComboSelectRunsInterval(true);

        createComboResultJumps();
        createComboResultJumpsRj();
        createComboResultRuns();
        createComboResultRunsInterval();

        //reaction_times has no combo
        createComboPulses();
        //createComboMultiChronopic();
        createdStatsWin = false;

        repetitiveConditionsWin = RepetitiveConditionsWindow.Create();
        repetitiveConditionsWin.FakeButtonClose.Clicked += new EventHandler(on_repetitive_conditions_closed);

        //createChronopicWindow(false, "");
        //wizardPortContacts = "";
        //wizardPortEncoder = "";

        on_extra_window_multichronopic_test_changed(new object(), new EventArgs());
        on_extra_window_pulses_test_changed(new object(), new EventArgs());
        on_extra_window_reaction_times_test_changed(new object(), new EventArgs());
        on_extra_window_runs_interval_test_changed(new object(), new EventArgs());
        on_extra_window_runs_test_changed(new object(), new EventArgs());
        on_extra_window_jumps_rj_test_changed(new object(), new EventArgs());
        on_extra_window_jumps_test_changed(new object(), new EventArgs());
        //changeTestImage("", "", "LOGO");

        //We have no session, mark some widgets as ".Sensitive = false"
        sensitiveGuiNoSession();
        definedSession = false;

        rand = new Random(40);

        formatModeMenu();
        putNonStandardIcons();
        eventExecutePutNonStandardIcons();
        //eventExecuteCreateComboGraphResultsSize();

        /*

        if(chronopicPort != Constants.ChronopicDefaultPortWindows &&
                (chronopicPort != Constants.ChronopicDefaultPortLinux && File.Exists(chronopicPort))
          ) {
            ConfirmWindow confirmWin = ConfirmWindow.Show(Catalog.GetString("Do you want to connect to Chronopic now?"), "", "");
            confirmWin.Button_accept.Clicked += new EventHandler(chronopicAtStart);
        }
        */

        stats_win_create();
        createdStatsWin = true;
        //stats_win_initializeSession();

        encoderInitializeStuff();

        //presentationInit();

        videoCaptureInitialize();

        //leave empty on new releases
        //string buildDate = " (2016-07-27)";
        string buildVersion = UtilAll.ReadVersionFromBuildInfo();
        label_version.Text = buildVersion;
        LogB.Information("Build version:" + buildVersion);

        LeastSquares ls = new LeastSquares();
        ls.Test();
        LogB.Information(string.Format("coef = {0} {1} {2}", ls.Coef[0], ls.Coef[1], ls.Coef[2]));

        //these are constructed only one time
        threshold = new Threshold();
        cp2016 = new Chronopic2016();

        restTime = new RestTime();
        updatingRestTimes = true;
        //GLib.Timeout.Add(5000, new GLib.TimeoutHandler(updateRestTimes)); //each 5s
        GLib.Timeout.Add(1000, new GLib.TimeoutHandler(updateRestTimes)); //each s, better for don't have problems sorting data on treeview

        /*
         * start a ping in other thread
         * http://www.mono-project.com/docs/gui/gtksharp/responsive-applications/
         * Gtk.Application.Invoke
         */
        pingThread = new Thread (new ThreadStart (pingAtStart));
        pingThread.Start();

        //moveStartTestInitial();
    }
예제 #13
0
        /// <summary>
        /// Сформировать дневную сетку работы мастера
        /// </summary>
        public WorkingGrid FormWorkingGrid()
        {
            TimeSpan        counter      = initParams.WorkDayTimeStart;
            List <TimeCell> workingCells = new List <TimeCell>();
            List <TimeCell> freeTime     = new List <TimeCell>();

            RestTime dinnerTime = new RestTime
            {
                Start    = initParams.DinnerTimeStart,
                End      = initParams.DinnerTimeEnd,
                isPassed = false
            };

            while (counter < initParams.WorkDayTimeEnd)
            {
                // полная ячейка
                if (
                    (counter + initParams.WorkingCellDuration <= initParams.WorkDayTimeEnd) &&
                    (
                        (
                            (dinnerTime.isPassed == false) &&
                            (counter + initParams.WorkingCellDuration <= dinnerTime.Start)
                        ) ||
                        (
                            (dinnerTime.isPassed == true) &&
                            (counter >= dinnerTime.End)
                        )
                    )
                    )
                {
                    workingCells.Add(new TimeCell()
                    {
                        Start = counter,
                        End   = counter + initParams.WorkingCellDuration
                    }
                                     );
                }

                // неполная ячейка по окончанию рабочего дня
                if (counter + initParams.WorkingCellDuration > initParams.WorkDayTimeEnd)
                {
                    freeTime.Add(new TimeCell()
                    {
                        Start = counter,
                        End   = initParams.WorkDayTimeEnd
                    });
                }

                // неполная ячейка по наступлению обеденного времени
                if (
                    (dinnerTime.isPassed == false) &&
                    (counter + initParams.WorkingCellDuration > dinnerTime.Start)
                    )
                {
                    freeTime.Add(new TimeCell()
                    {
                        Start = counter,
                        End   = dinnerTime.Start
                    });
                }


                // не учитывать период отдыха. Сразу перепрыгнуть к окончанию отдыха
                if (
                    (dinnerTime.isPassed == false) &&
                    (counter + initParams.WorkingCellDuration > dinnerTime.Start)
                    )
                {
                    dinnerTime.isPassed = true;
                    counter             = initParams.DinnerTimeEnd;
                }
                else
                {
                    counter += initParams.WorkingCellDuration;
                }
            }

            return(new WorkingGrid
            {
                WorkingCells = workingCells,
                FreeTime = freeTime
            });
        }
        protected override void OnCallBacking()
        {
            Pause = !Pause;
            if (Pause)
            {
                if (MessageBox.Show(Program.frmMain, "重新设置番茄", "重置确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
                {
                    try
                    {
                        RestTime      = Convert.ToInt32(InputBox.ShowInputBox("重置", "休息时间", RestTime.ToString()));
                        WorkTime      = Convert.ToInt32(InputBox.ShowInputBox("重置", "工作时间", WorkTime.ToString()));
                        pauseTimeLeft = targetNowTime = (float)Convert.ToDouble(InputBox.ShowInputBox("重置", "当前时间", targetNowTime.ToString()));
                        nowRoundIndex = 1;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    Pause = true;
                }
            }

            base.OnCallBacking();
        }