private void btnSave_Click(object sender, RoutedEventArgs e) { if (!allowUserInteraction) return; allowUserInteraction = false; try { List<SaveColorObjectModel> saveColorOfferedCourses; List<SaveColorObjectModel> saveColorOfferedCourseRows; saveColorOfferedCourses = new List<SaveColorObjectModel>(); saveColorOfferedCourseRows = new List<SaveColorObjectModel>(); offeredCourses.ForEach(oc => { saveColorOfferedCourses.Add(new SaveColorObjectModel { CorrespondingIdInSourceList = oc.CourseId, Color = oc.Color }); }); offeredCourseRows.ForEach(ocr => { saveColorOfferedCourseRows.Add(new SaveColorObjectModel { CorrespondingIdInSourceList = ocr.RowId, Color = ocr.Color }); }); FileServiceProvider.SerializeToXmlFile(DirectoryManager.ReductionStep2SavedStatus + DirectoryManager.SaveColorOfferedCourses, saveColorOfferedCourses); FileServiceProvider.SerializeToXmlFile(DirectoryManager.ReductionStep2SavedStatus + DirectoryManager.SaveColorOfferedCourseRows, saveColorOfferedCourseRows); Properties.Settings.Default.ReductionStep2MustBeLoad = true; Properties.Settings.Default.Save(); } catch { } allowUserInteraction = true; }
public static List <GoalVersionOfferedCoursesRow> Reduce(List <Course> courses, string goalVersionOfferedCoursesRowsFileName, Gender studGender) { List <GoalVersionOfferedCoursesRow> lst; FileServiceProvider.DeserializeFromXmlFile(goalVersionOfferedCoursesRowsFileName, out lst); return(Reduce(courses, lst, studGender)); }
public void DeserializeVertexData(string vertex_file) { List <GraphSerializationData> gds = FileServiceProvider.DeserializeDataFromFile(vertex_file); this.ClearArea(); (this.DataContext as GraphViewModel).RecreateSerializedVertexData(gds); }
private void btnNext_Click(object sender, RoutedEventArgs e) { try { CreditDeterminer creditDeterminer; FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CreditDeterminerSavedName, out creditDeterminer); LoadData(stateLevel2, ServiceProviderForWpfClientCurriculums.ValidateAndReturnListLevel2(creditDeterminer.Level1), Level2Button_Click, Visibility.Collapsed, Visibility.Visible); } catch { } }
public void DeserializeConfigurationData(string cable_file) { List <GraphSerializationData> gds = FileServiceProvider.DeserializeDataFromFile(cable_file); foreach (GraphSerializationData x in gds) { CableConfiguration cc = x.Data as CableConfiguration; (mainWindow.ccView.DataContext as CreateConfigurationViewModel).AddCableConfiguration(cc); } }
private void LoadData(string titleBar, Tuple <string, int>[] arr, RoutedEventHandler method, Visibility btnNextVisibility, Visibility btnPrevVisibility) { try { CreditDeterminer creditDeterminer = null; if (File.Exists(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CreditDeterminerSavedName)) { FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CreditDeterminerSavedName, out creditDeterminer); } else { creditDeterminer = new CreditDeterminer { Level1 = CurriculumWpfClientMiddleware.DefaultLevel1Value, Level2 = CurriculumWpfClientMiddleware.DefaultLevel2Value, }; FileServiceProvider.SerializeToXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CreditDeterminerSavedName, creditDeterminer); } wrapPanelList.Children.Clear(); txtblockTitleBar.Text = titleBar; for (int i = 0; i < arr.Length; i++) { Badged badged = new Badged(); badged.Badge = (i + 1).ToString(); badged.Margin = new Thickness(15); badged.Name = "bdg" + arr[i].Item2; Button button = new Button(); button.Content = arr[i].Item1; button.Name = "btn" + arr[i].Item2; if (creditDeterminer.Level1 == arr[i].Item2 || creditDeterminer.Level2 == arr[i].Item2) { button.SetResourceReference(Button.BackgroundProperty, "PrimaryHueMidBrush"); } else { button.Background = Brushes.Transparent; } button.Click += method; badged.Content = button; wrapPanelList.Children.Add(badged); } btnNext.Visibility = btnNextVisibility; btnPrev.Visibility = btnPrevVisibility; } catch { } }
private async void btnRunAlgorithm_Click(object sender, RoutedEventArgs e) { btnRunAlgorithm.IsEnabled = false; if (!allowUserInteraction) return; allowUserInteraction = false; try { AnimateStatusObjectModel model = new AnimateStatusObjectModel(); Infrastructures.Algorithm.MainAlgorithm mainAlgorithm = new Infrastructures.Algorithm.MainAlgorithm(maxCntSuggestion); Task.Run(() => { mainAlgorithm.Run(offeredCourses, mainCurriculum, minUnits, maxUnits, exampCollideChecking, Properties.Settings.Default.AlgorithmMaxProcessingTimeMS, model); }); await AlgorithmAnimation.Animate(this, canvasAlgorithmMsg, Properties.Settings.Default.AlgorithmAnimationEffectStatus, model); Directory.EnumerateFiles(DirectoryManager.LastAlgorithmExeOutputs).ToList().ForEach(c => { File.Delete(c); }); mainAlgorithm.ChoosedWeeklyProgram.Sort(); for (int i = 0; i < mainAlgorithm.ChoosedWeeklyProgram.Count; i++) { var p = mainAlgorithm.ChoosedWeeklyProgram[i]; OfferedWeeklyProgram newProgram = new OfferedWeeklyProgram(); newProgram.DataSource = new List<GoalVersionOfferedCoursesRow>(); int units = 0; DfsTopologicalSortAlgorithm.DfsTopologicalSort(p.WeeklyProgram.Columns).ForEach(c => { newProgram.DataSource.Add(c.GoalVersionOfferedCourseRow); units += c.OfferedCourse.Course.Units; }); newProgram.Description = ""; newProgram.NumberOfUnits = units; newProgram.UserScore = 0; newProgram.TermNumber = termNumber; newProgram.Score = p.WeeklyProgramScore; string name = Guid.NewGuid().ToString(); FileServiceProvider.SerializeToXmlFile(DirectoryManager.LastAlgorithmExeOutputs + name + ".xml", newProgram); Thread.Sleep(10); } } catch { } allowUserInteraction = true; btnRunAlgorithm.IsEnabled = true; }
public static List <Course> Reduce(string creditDeterminerFileName, string courseInfoLstFileName, int currentTermNumber) { CreditDeterminer creditDeterminer; FileServiceProvider.DeserializeFromXmlFile(creditDeterminerFileName, out creditDeterminer); List <CourseInformation> courseInfoLst; FileServiceProvider.DeserializeFromXmlFile(courseInfoLstFileName, out courseInfoLst); return(Reduce(creditDeterminer, courseInfoLst, currentTermNumber)); }
private async void btnOk_Click(object sender, RoutedEventArgs e) { btnOk.IsEnabled = false; await Task.Run(() => { CourseInformation[] cfs; try { FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName, out cfs); for (int i = 0; i < collection.Count; i++) { var c = cfs[collection[i].Id]; if (collection[i].StatusColor == WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.WHITE) { c.IsPassed = false; c.NumberOfFailed = 0; } else if (collection[i].StatusColor == WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.GREEN) { c.IsPassed = true; } else if (collection[i].StatusColor == WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.YELLOW) { c.IsPassed = false; c.NumberOfFailed = 2; } else { throw new Exception(); } } FileServiceProvider.SerializeToXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName, cfs); Properties.Settings.Default.ReductionStep2MustBeLoad = false; Properties.Settings.Default.Save(); Dispatcher.Invoke(() => { MessageBox.Show("تغییرات با موفقیت اعمال شد"); }); } catch { Dispatcher.Invoke(() => { MessageBox.Show("عدم موفقیت"); }); } }); btnOk.IsEnabled = true; }
public void SerializeConfigurationData(System.Windows.Forms.SaveFileDialog result) { List <GraphSerializationData> graphSerializationData = new List <GraphSerializationData>(); foreach (CableConfiguration cc in mainWindow.GlobalCableConfiguration.Values) { GraphSerializationData gsd = new GraphSerializationData() { Data = cc }; graphSerializationData.Add(gsd); } FileServiceProvider.SerializeDataToFile(result.FileName + "_cable_config", graphSerializationData); }
public void DeserializeEdgeData(string edge_file) { List <GraphSerializationData> gds = FileServiceProvider.DeserializeDataFromFile(edge_file); foreach (GraphSerializationData x in gds) { DataVertex source = (x.Data as DataEdge).Source; DataVertex target = (x.Data as DataEdge).Target; VertexControl vc = getVertexControlWithDataVertex(source.Element_id); (this.DataContext as GraphViewModel).RecreateSerializedEdgeData(source, target, vc, ((DataEdge)x.Data).Length); //AreaAddEdge(source, target.Element_id, ((DataEdge)x.Data).Length, false, vc); } }
public void SerializeEdgeData(System.Windows.Forms.SaveFileDialog result) { List <GraphSerializationData> graphSerializationData = new List <GraphSerializationData>(); foreach (DataEdge ec in Area.EdgesList.Keys) { GraphSerializationData gsd = new GraphSerializationData() { Data = ec, IsVisible = true, HasLabel = true }; graphSerializationData.Add(gsd); } FileServiceProvider.SerializeDataToFile(result.FileName + "_edge_data", graphSerializationData); }
public static bool TryReduce(List <Course> courses, string goalVersionOfferedCoursesRowsFileName, Gender studGender, out List <GoalVersionOfferedCoursesRow> resultLst) { bool succ = true; try { List <GoalVersionOfferedCoursesRow> lst; FileServiceProvider.DeserializeFromXmlFile(goalVersionOfferedCoursesRowsFileName, out lst); resultLst = Reduce(courses, lst, studGender); } catch { resultLst = null; succ = false; } return(succ); }
public async Task RunAfterCreateAsync() { try { await Task.Run(() => { CourseInformation[] cfs = null; if (!File.Exists(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName)) { CreateCourseInformationArrayAndFillItWithAppropriateData(out cfs); FileServiceProvider.SerializeToXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName, cfs); } else { FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName, out cfs); } RiFillDataGrid(cfs); }); } catch { } }
public void SerializeVertexData(System.Windows.Forms.SaveFileDialog result) { List <GraphSerializationData> graphSerializationData = new List <GraphSerializationData>(); Console.WriteLine(mainWindow.GlobalVertices.Count); foreach (VertexControl vc in Area.VertexList.Values) { Point p = vc.GetPosition(); GraphSerializationData gsd = new GraphSerializationData() { Data = (DataVertex)vc.Vertex, Position = new GraphX.Measure.Point(p.X, p.Y), IsVisible = true, HasLabel = true }; graphSerializationData.Add(gsd); } FileServiceProvider.SerializeDataToFile(result.FileName + "_vertex_data", graphSerializationData); }
public static MainCurriculum CreateNewCurriculmWithSpecificCreditAndFilledBySpecificCourseInforamtion(string creditFileName, string courseInforamtionFileName) { CreditDeterminer creditDeterminer; FileServiceProvider.DeserializeFromXmlFile(creditFileName, out creditDeterminer); List <CourseInformation> courseInfoLst = null; FileServiceProvider.DeserializeFromXmlFile(courseInforamtionFileName, out courseInfoLst); //create a curriculum object with specific credit MainCurriculum curriculum = new MainCurriculum(MainCurriculum.CreateStudentCredit(creditDeterminer.Level1, creditDeterminer.Level2)); //update curriculm's courses properties considering student history information for (int i = 0; i < courseInfoLst.Count; i++) { var currentCourseInfo = courseInfoLst[i]; var currentCourse = curriculum.Courses[i]; if (currentCourseInfo.Id != currentCourse.Id) { throw new ArgumentException(); } currentCourse.CodeInDesUni = currentCourseInfo.CodeInDesUni; currentCourse.CorrespondingTitleInDesUni = currentCourseInfo.CorrespondingTitleInDesUni; if (currentCourseInfo.IsPassed) { currentCourse.IsPassed = true; } else if (currentCourseInfo.NumberOfFailed > 1) { currentCourse.NumberOfFailed = 2; } } return(curriculum); }
private void btnOk_Click(object sender, RoutedEventArgs e) { try { CourseInformation[] cfs; if (File.Exists(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName)) { FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName, out cfs); } else { CreateCourseInformationArrayAndFillItWithAppropriateData(out cfs); } for (int i = 0; i < cfs.Length; i++) { var current = cfs[i]; if (current.CorrespondingTitleInDesUni != collection[current.Id].TitleInDesUni) { current.CorrespondingTitleInDesUni = collection[current.Id].TitleInDesUni; } if (current.CodeInDesUni != collection[current.Id].CodeInDesUni) { current.CodeInDesUni = collection[current.Id].CodeInDesUni.ChangeFarsiNumberInStringToEnglishNumber(); } } FileServiceProvider.SerializeToXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName, cfs); Properties.Settings.Default.ReductionStep2MustBeLoad = false; Properties.Settings.Default.Save(); MessageBox.Show("تغییرات با موفقیت اعمال شد"); } catch { } }
private void UpdateCreditDeterminerFile(Button sender) { try { if (File.Exists(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CreditDeterminerSavedName)) { CreditDeterminer creditDeterminer; FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CreditDeterminerSavedName, out creditDeterminer); if (stateLevel1 == txtblockTitleBar.Text) { int x = int.Parse(sender.Name.Substring(3)); if (creditDeterminer.Level1 != x) { creditDeterminer.Level1 = x; creditDeterminer.Level2 = CurriculumWpfClientMiddleware.DefaultLevel2Value; } } else if (stateLevel2 == txtblockTitleBar.Text) { creditDeterminer.Level2 = int.Parse(sender.Name.Substring(3)); } else { throw new Exception(); } FileServiceProvider.SerializeToXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CreditDeterminerSavedName, creditDeterminer); Properties.Settings.Default.ReductionStep2MustBeLoad = false; Properties.Settings.Default.Save(); } } catch { } }
private async void btnGenerateGoalVersionXmlFile_Click(object sender, RoutedEventArgs e) { string red = "#f0513c"; string green = "#5c9444"; //specify appropriate color for user notification string color = red; try { //if 'files' does not have any items , no need to start the proccess if (files.Count == 0) { throw new Exception(); } //disable button before the start of the process to prevent user from the requesting again. btnGenerateGoalVersionXmlFile.IsEnabled = false; await Task.Run(() => { //create an empty list 'lst' that represents goal version object that must be generated and then saved. List <GoalVersionOfferedCoursesRow> lst = new List <GoalVersionOfferedCoursesRow>(); if (!Directory.Exists(DirectoryManager.GoalVersionOfferedCoursesRowDirectory)) { Directory.CreateDirectory(DirectoryManager.GoalVersionOfferedCoursesRowDirectory); } //for every selected files (droped files) insert items where item's id does not exist in the 'lst'. files.ForEach(f => { //create object model from the specific file 'f' to insert it's items. var glst = FileServiceProvider.ConvertFromOfferedCoursesBasicFormToGoalVersionXmlFormat(f, DirectoryManager.GoalVersionOfferedCoursesRowDirectory + DirectoryManager.GoalVersionOfferedCoursesRowSavedName, false); #region Add Distinct //add 'glst' items in the 'lst' list where its 'id' does not exist in the 'lst'. for (int i = 0; i < glst.Count; i++) { var p = glst[i]; bool find = false; for (int j = 0; j < lst.Count; j++) { var q = lst[j]; if (p.Id == q.Id) { find = true; break; } } if (!find) { lst.Add(p); } } #endregion }); //save goal version generated in appropriate directory with the specific name. FileServiceProvider.SerializeToXmlFile(DirectoryManager.GoalVersionOfferedCoursesRowDirectory + DirectoryManager.GoalVersionOfferedCoursesRowSavedName, lst); Properties.Settings.Default.ReductionStep2MustBeLoad = false; Properties.Settings.Default.Save(); //specify appropriate color for user notification color = green; }); } catch { //set null to notify user that 'files' does not have any items. color = null; } finally { //set the background color to notify user about result of the proccess that completed. SetBackgroundColor(color); //remove all of the 'files' items for the next 'drag and drop'. files.Clear(); //enable button after the proccess finished. btnGenerateGoalVersionXmlFile.IsEnabled = true; } }
public async Task RunAfterCreateAsync() { try { await Task.Run(async() => { await Dispatcher.InvokeAsync(() => { mainPanel.Children.Clear(); }); CourseInformation[] cfs; FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName, out cfs); for (int i = 0; i < cfs.Length; i++) { var item = cfs[i]; if (item.CodeInDesUni == "-") { continue; } StudentHistoryGridRow shdr = new StudentHistoryGridRow { Id = item.Id, CodeInDesUni = item.CodeInDesUni, TitleInDesUni = item.CorrespondingTitleInDesUni, StatusColor = item.IsPassed ? WpfApplication.WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.GREEN : item.NumberOfFailed > 1 ? WpfApplication.WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.YELLOW : WpfApplication.WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.WHITE, }; Dispatcher.Invoke(() => { collection.Add(shdr); }); } await Dispatcher.InvokeAsync(() => { for (int i = 0; i < collection.Count; i++) { Badged badged = new Badged(); badged.Badge = collection[i].CodeInDesUni; badged.Margin = new Thickness(15); badged.Name = "bdg" + collection[i].Id; Button button = new Button(); button.Content = new TextBlock() { Text = collection[i].TitleInDesUni, TextAlignment = TextAlignment.Center, TextWrapping = TextWrapping.Wrap }; button.Name = "btn" + i.ToString(); button.Width = 250; button.Height = Double.NaN; button.Padding = new Thickness(8); SetButtonBackgroundColor(button, collection[i].StatusColor); button.Click += Button_Click; badged.Content = button; mainPanel.Children.Add(badged); } }); }); } catch { } }
public async Task RunAfterCreatedAsync() { try { await Task.Run(async () => { await Dispatcher.InvokeAsync(() => { InitializeComponent(); }); //settings if (Properties.Settings.Default.CurrentTermNumber > 0) termNumber = Properties.Settings.Default.CurrentTermNumber; gender = Properties.Settings.Default.Gender == 'm' ? Tataiee.Harif.Infrastructures.GeneralEnums.Gender.MALE : Tataiee.Harif.Infrastructures.GeneralEnums.Gender.FEMALE; if (Properties.Settings.Default.MinUnits > 0) minUnits = Properties.Settings.Default.MinUnits; if (Properties.Settings.Default.MinUnits <= Properties.Settings.Default.MaxUnits && Properties.Settings.Default.MaxUnits > 0) maxUnits = Properties.Settings.Default.MaxUnits; if (Properties.Settings.Default.TimeoutForReductionStep2ms >= 120) timeoutMs = Properties.Settings.Default.TimeoutForReductionStep2ms; if (Properties.Settings.Default.MaxNumberOfSuggestedWeeklyProgram >= 1 && Properties.Settings.Default.MaxNumberOfSuggestedWeeklyProgram <= 50) maxCntSuggestion = Properties.Settings.Default.MaxNumberOfSuggestedWeeklyProgram; capacityFiltering = Properties.Settings.Default.CapacityFiltering; exampCollideChecking = Properties.Settings.Default.ExamCollideChecking; //end settings mainCurriculum = StudentHistoryServiceProvider.CreateNewCurriculmWithSpecificCreditAndFilledBySpecificCourseInforamtion(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CreditDeterminerSavedName, DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName); int CODE_LEN = 7; //load offered course row in memory FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.GoalVersionOfferedCoursesRowDirectory + DirectoryManager.GoalVersionOfferedCoursesRowSavedName, out List<GoalVersionOfferedCoursesRow> goalVersionOfferedCourseRows); //perform reduction step 1 and get courses list after reduced var coursesListAfterReductionStep1 = ReductionStep1.Reduce(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CreditDeterminerSavedName, DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName , termNumber); //assign offeredCourseRows to the output of ReductionStep2 courses List if (capacityFiltering) { goalVersionOfferedCourseRows = ReductionStep2.Reduce(coursesListAfterReductionStep1, goalVersionOfferedCourseRows, gender) .Where(r => r.Capacity - r.Registered > 0).ToList(); } else { goalVersionOfferedCourseRows = ReductionStep2.Reduce(coursesListAfterReductionStep1, goalVersionOfferedCourseRows, gender); } CODE_LEN = coursesListAfterReductionStep1[0].CodeInDesUni.Length; //again group reduced offered course rows var coursesGroups = (from c in goalVersionOfferedCourseRows group c by c.Id.Substring(0, CODE_LEN)).ToList(); //-------- //we can add another reduction step to reduce more if possible but not now. //--------- //fill main offeredCourses and offeredCourseRows lists int i = 0; int j = 0; foreach (var course in coursesGroups) { var c = coursesListAfterReductionStep1.FirstOrDefault(c1 => c1.CodeInDesUni == course.Key); if (c != null) { OfferedCourse oc = new OfferedCourse(c, i++, ReductionStep2ColorStatus.WHITE); foreach (var row in course) { OfferedCourseRow ocr = new OfferedCourseRow(row, ReductionStep2ColorStatus.WHITE, j++, oc); oc.OfferedCourseRows.Add(ocr); cards.Add(null); offeredCourseRows.Add(ocr); } offeredCourses.Add(oc); } } if (Properties.Settings.Default.ReductionStep2MustBeLoad) { FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.ReductionStep2SavedStatus + DirectoryManager.SaveColorOfferedCourses, out List<SaveColorObjectModel> saveColorOfferedCourses); FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.ReductionStep2SavedStatus + DirectoryManager.SaveColorOfferedCourseRows, out List<SaveColorObjectModel> saveColorOfferedCourseRows); saveColorOfferedCourses.ForEach(scoc => { offeredCourses[scoc.CorrespondingIdInSourceList].Color = scoc.Color; }); saveColorOfferedCourseRows.ForEach(scocr => { offeredCourseRows[scocr.CorrespondingIdInSourceList].Color = scocr.Color; }); } //create and fill courses navigation buttons in the right side await Dispatcher.InvokeAsync(() => { stackPanelRightSide.Children.Clear(); Button button1 = null; for (int m = 0; m < offeredCourses.Count; m++) { Badged badged = new Badged { Badge = offeredCourses[m].OfferedCourseCode, Margin = new Thickness(5), Name = "bdg" + offeredCourses[m].CourseId }; Button button = new Button { Content = new TextBlock() { Text = offeredCourses[m].OfferedCourseName, TextAlignment = TextAlignment.Center, TextWrapping = TextWrapping.Wrap }, Name = "btn" + m.ToString(), Width = 250, Height = Double.NaN, Padding = new Thickness(5), Background = Brushes.Transparent }; button.Click += btnCourseNavigation_Click; badged.Content = button; if (m == 0) { button1 = button; } stackPanelRightSide.Children.Add(badged); } selectedButton = button1; allowUserInteraction = true; btnCourseNavigation_Click(button1, null); }); }); } catch { } }