Beispiel #1
0
 /// <summary>
 /// MainWindowコンストラクタ
 /// </summary>
 public MainWindow()
 {
     InitializeComponent();
     GetLatestBuildInfo();
     DataOption dataOption = new DataOption();
     dataOption.CreateData(this);
 }
Beispiel #2
0
        /// <summary>
        /// メイン処理
        /// </summary>
        /// <param name="Team"></param>
        /// <returns></returns>
        internal Queue<Member> MainProc(Queue<Member> Team, MainWindow mainWindow)
        {
            DataOption dataOption = new DataOption();
            LoccateOption locateOption = new LoccateOption();

            //清掃箇所をランダムに割り振った数字列作成
            RandamWeekMap RandamWeekMap = dataOption.CreateNumMap();
            int roopCount = 1;

            //曜日毎に割り振りを行う
            foreach (Day EachDay in RandamWeekMap.day)
            {
                bool isHoliday = JudgmentHoliday(mainWindow, EachDay);
                if(isHoliday)
                {
                    continue;
                }

                bool ret = true;
                //メンバー全員に対して割り振り処理を行う
                while (ret == true)
                {
                    foreach (Member member in Team)
                    {
                        //個人割り振り初回時
                        if (member.day.Count() == 0)
                        {
                            ret = locateOption.AllocationFirstTime(EachDay, member);
                            if (ret == false)
                            {
                                break;
                            }
                        }
                        else
                        {
                            ret = locateOption.Allocation(EachDay, member);
                            if (ret == false)
                            {
                                break;
                            }
                        }
                    }
                    //メンバーのランダムソートを行う
                    if (mainWindow.countRbt.IsChecked == true)
                    {
                        dataOption.RandamSortByCount(ref Team);
                    }
                    else if (mainWindow.scoreRbt.IsChecked == true)
                    {
                        dataOption.RandamSortByScore(ref Team);
                    }
                }
            }
            return Team;
        }
Beispiel #3
0
 /// <summary>
 /// 入力内容をクリアする
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void inputClearButton_Click(object sender, RoutedEventArgs e)
 {
     DataOption dataOption = new DataOption();
     this.inDataGrid.ItemsSource = dataOption.CreateDefaultMemberObject();
 }
Beispiel #4
0
        /// <summary>
        /// 表示を行う
        /// </summary>
        /// <param name="RetInfo"></param>
        /// <param name="mainWindow"></param>
        internal void Display(Queue<Member> RetInfo, MainWindow mainWindow)
        {
            //割り振り結果を出力する
            System.Diagnostics.Debug.WriteLine(RetInfo);
            int?[] day1 = new int?[ContractConst.PLACE_COUNT + 1];
            int?[] day2 = new int?[ContractConst.PLACE_COUNT + 1];
            int?[] day3 = new int?[ContractConst.PLACE_COUNT + 1];
            int?[] day4 = new int?[ContractConst.PLACE_COUNT + 1];
            int?[] day5 = new int?[ContractConst.PLACE_COUNT + 1];
            day1 = GetDayRowVal(RetInfo, ContractConst.DAYS.月);
            day2 = GetDayRowVal(RetInfo, ContractConst.DAYS.火);
            day3 = GetDayRowVal(RetInfo, ContractConst.DAYS.水);
            day4 = GetDayRowVal(RetInfo, ContractConst.DAYS.木);
            day5 = GetDayRowVal(RetInfo, ContractConst.DAYS.金);

            var data = new ObservableCollection<SojiPlace>(
                Enumerable.Range(1, ContractConst.PLACE_COUNT).Select(j => new SojiPlace
                {
                    m_placeId = ContractConst.PID[j - 1],
                    m_place = ContractConst.PLACE[j - 1],
                    m_afflictionDegree = ContractConst.COEFFICIENT[j],
                    m_day1 = day1[j],
                    m_day2 = day2[j],
                    m_day3 = day3[j],
                    m_day4 = day4[j],
                    m_day5 = day5[j],
                    m_day1_Color = day1[j] == null ? true : false,
                    m_day2_Color = day2[j] == null ? true : false,
                    m_day3_Color = day3[j] == null ? true : false,
                    m_day4_Color = day4[j] == null ? true : false,
                    m_day5_Color = day5[j] == null ? true : false
                }));
            mainWindow.targetGrid.ItemsSource = data;

            //得点を左ウィンドウに反映
            DataOption option = new DataOption();
            mainWindow.inDataGrid.ItemsSource = option.CreateScoreObject(RetInfo);
        }