/// <summary> /// MainWindowコンストラクタ /// </summary> public MainWindow() { InitializeComponent(); GetLatestBuildInfo(); DataOption dataOption = new DataOption(); dataOption.CreateData(this); }
/// <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; }
/// <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(); }
/// <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); }