public StudentSubGroup Get(int ObjId) { String query = "SELECT ObjId,ObjVersion,RefGroupId,SubGroupNo,SubGroupKey FROM student_sub_group_tab Where Objid=" + ObjId; StudentSubGroup obj = new StudentSubGroup(); if (this.OpenConnection() == true) { MySqlCommand cmd = new MySqlCommand(query, connection); MySqlDataReader dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { obj.ObjId = int.Parse(dataReader["ObjId"].ToString()); obj.ObjVersion = int.Parse(dataReader["ObjVersion"].ToString()); obj.RefGroupId = int.Parse(dataReader["RefGroupId"].ToString()); obj.SubGroupKey = dataReader["SubGroupKey"].ToString(); obj.SubGroupNo = int.Parse(dataReader["SubGroupNo"].ToString()); obj.GroupId = new StudentGroupAPI().Get(int.Parse(dataReader["RefGroupId"].ToString())).GroupId; obj.SubGroupId = obj.GroupId + "." + obj.SubGroupNo; } dataReader.Close(); this.CloseConnection(); return(obj); } else { return(obj); } }
public StudentSubGroup Delete(StudentSubGroup obj) { obj.ValidationErrors.Clear(); try { if (Exists(obj.ObjId)) { obj = CheckDelete(obj); if (obj.ValidationErrors.Count > 0) { return(obj); } if (ExcuteStatement("DELETE FROM student_sub_group_tab WHERE ObjId=" + obj.ObjId)) { ExcuteStatement("DELETE FROM not_available_slot_tab WHERE ObjType='SG' and Id=" + obj.ObjId); ExcuteStatement("DELETE FROM room_allocation_tab WHERE ObjType='SG' and Id=" + obj.ObjId); return(obj); } else { obj.ValidationErrors.Add("Error While deleting.."); return(obj); }; } else { throw new Exception("Object has been removed by another user."); } } catch (Exception ex) { throw; } }
public StudentSubGroup CheckDelete(StudentSubGroup obj) { if (new SessionAPI().SubGroupExists(obj.ObjId)) { obj.ValidationErrors.Add("Student Sub Group is used in Session(s)"); } return(obj); }
public CheckingStudenSubGroups(StudentSubGroup Group, Visibility Visible, bool Checking) { this.Group = Group; this.Number = Group.NumberSubGroup; this.NameGroup = Group.NameGroup; this.Checking = Checking; this.Visible = Visible; this.Content = this.NameGroup + "." + this.Number; }
public void AddGroup(string facultyName, StudentSubGroup group) { foreach (var item in CurrentBase.Faculties) { if (item.Name == facultyName) { item.Groups.Add(group); } } }
public StudentSubGroup GetReference(StudentSubGroup extObj) { foreach (StudentSubGroup item in StudentSubGroups) { if (((IDomainIdentity<StudentSubGroup>)item).EqualsByParams(extObj) && ((IDomainIdentity<StudentSubGroup>)item).EqualsByID(extObj)) { return item; } } return null; }
public StudentSubGroup AddUpdate(StudentSubGroup obj) { if (obj.ObjId.ToString() == "0") { return(Add(obj)); } else { return(Update(obj)); } }
private StudentSubGroup Update(StudentSubGroup obj) { obj.ValidationErrors.Clear(); try { if (Exists(obj)) { obj.ValidationErrors.Add("Student Sub Group is already Exist."); return(obj); } else { StudentSubGroup objOld_ = Get(obj.ObjId); if (obj.ObjVersion != objOld_.ObjVersion) { throw new Exception("object has been changed by another user"); } else { obj.ObjVersion = ++objOld_.ObjVersion; } String query = " UPDATE student_sub_group_tab SET " + " ObjVersion=" + obj.ObjVersion + "," + " RefGroupId='" + obj.RefGroupId + "'," + " SubGroupKey='" + obj.SubGroupKey + "'," + " SubGroupNo='" + obj.SubGroupNo + "'" + " WHERE ObjId=" + obj.ObjId; if (ExcuteStatement(query)) { return(obj); } else { obj.ValidationErrors.Add("Error While updating.."); return(obj); } } } catch (Exception ex) { throw; } }
public List <StudentSubGroup> GetAll() { string query = "SELECT ObjId,ObjVersion,RefGroupId,SubGroupNo,SubGroupKey FROM student_sub_group_tab ORDER BY ObjId DESC"; List <StudentSubGroup> lst = new List <StudentSubGroup>(); StudentSubGroup obj; if (this.OpenConnection() == true) { //Create Command MySqlCommand cmd = new MySqlCommand(query, connection); MySqlDataReader dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { obj = new StudentSubGroup(); obj.ObjId = int.Parse(dataReader["ObjId"].ToString()); obj.ObjVersion = int.Parse(dataReader["ObjVersion"].ToString()); obj.RefGroupId = int.Parse(dataReader["RefGroupId"].ToString()); obj.SubGroupKey = dataReader["SubGroupKey"].ToString(); obj.SubGroupNo = int.Parse(dataReader["SubGroupNo"].ToString()); obj.GroupId = new StudentGroupAPI().Get(int.Parse(dataReader["RefGroupId"].ToString())).GroupId; obj.SubGroupId = obj.GroupId + "." + obj.SubGroupNo; lst.Add(obj); } //close Data Reader dataReader.Close(); //close Connection this.CloseConnection(); //return list to be displayed return(lst); } else { return(lst); } }
private bool Exists(StudentSubGroup obj) // added condition for issues in update method { String query = "SELECT 1 FROM student_sub_group_tab where SubGroupKey='" + obj.SubGroupKey + "' and ObjId!=" + obj.ObjId; if (this.OpenConnection() == true) { MySqlCommand cmd = new MySqlCommand(query, connection); MySqlDataReader dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { CloseConnection(); return(true); } CloseConnection(); return(false); } else { return(false); } }
internal int GetSemesterRef(int subGroupId) { String query = "SELECT `RefSemesterId` FROM student_sub_group_tab sg,student_group_tab g Where g.ObjId=sg.RefGroupId and sg.Objid=" + subGroupId; StudentSubGroup obj = new StudentSubGroup(); if (this.OpenConnection() == true) { MySqlCommand cmd = new MySqlCommand(query, connection); MySqlDataReader dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { obj.RefSemesterId = int.Parse(dataReader["RefSemesterId"].ToString()); } dataReader.Close(); this.CloseConnection(); return(obj.RefSemesterId); } else { return(-1); } }
private StudentSubGroup Add(StudentSubGroup obj) { obj.ValidationErrors.Clear(); try { if (Exists(obj)) { obj.ValidationErrors.Add("Student Sub Group is already Exist."); return(obj); } else { String query = "INSERT INTO student_sub_group_tab (SubGroupKey,SubGroupNo,RefGroupId,ObjVersion)VALUES(" + "'" + obj.SubGroupKey + "'," + "'" + obj.SubGroupNo + "'," + "'" + obj.RefGroupId + "'," + "'0')"; if (ExcuteStatement(query)) { obj.ObjId = Get(obj.SubGroupKey).ObjId; return(obj); } else { obj.ValidationErrors.Add("Error While adding.."); return(obj); }; } } catch (Exception ex) { throw; } }
public PartialSchedule GetPartialSchedule(StudentSubGroup subGroup) { throw new NotImplementedException(); }
// Возвращает название факультета public string GetFacultyNameByGroup(StudentSubGroup group) { foreach (Faculty item in CurrentBase.Faculties) { if (item.Groups.Contains(group)) { return item.Name; } } return null; }
// Возвращает номер курса по группе public int GetСourseByGroup(StudentSubGroup group) { string groupCode = group.NameGroup.Substring(group.NameGroup.Length - 3, 2); int YerEnter = 2000 + Convert.ToInt32(groupCode); if (DateTime.Now.Month >= 9 && DateTime.Now.Month <= 12) { return DateTime.Now.Year - YerEnter + 1; } else { return DateTime.Now.Year - YerEnter; } }
public int ExistStudentGroupsInClasses(StudentSubGroup group) { int count = 0; foreach (var item in eStorage.Classes.ToList()) { foreach (var groups in item.SubGroups.ToList()) if (groups == group) count++; } return count; }
public int ExistClasses(string name, StudentSubGroup[] group, ClassRoomType[] type, Teacher[] teacher) { int count = 0; foreach (var item in eStorage.Classes.ToList()) { if ((item.Name.ToUpper() == name.ToUpper()) && (item.Teacher == teacher) && (item.RequireForClassRoom == type) && item.SubGroups == group) { count++; } } return count; }
public void EditClasses(StudentsClass classes, string name, StudentSubGroup[] group, ClassRoomType[] type, Teacher[] teacher) { List<StudentsClass> Classes = eStorage.Classes.ToList(); int id = (int)((Domain.IDomainIdentity<StudentsClass>)classes).ID; Classes.Remove(classes); Classes.Add(new StudentsClass(id, group, teacher, name, type)); eStorage = new Domain.Services.EntityStorage(Classes.ToArray(), eStorage.ClassRoomsTypes.ToArray(), eStorage.StudentSubGroups.ToArray(), eStorage.Teachers.ToArray(), eStorage.ClassRooms.ToArray()); }
public void ADDClasses(string name, StudentSubGroup[] group, ClassRoomType[] type, Teacher[] teacher, int count) { List<StudentsClass> classes = eStorage.Classes.ToList(); int id = IdClasses(); for (int i = 0; i < count; i++) { classes.Add(new StudentsClass(id, group, teacher, name, type)); id++; } eStorage = new Domain.Services.EntityStorage(classes.ToArray(), eStorage.ClassRoomsTypes.ToArray(), eStorage.StudentSubGroups.ToArray(), eStorage.Teachers.ToArray(), eStorage.ClassRooms.ToArray()); }
public void DelStudentSubGroup(StudentSubGroup group) { List<StudentSubGroup> groups = eStorage.StudentSubGroups.ToList(); groups.Remove(group); eStorage = new Domain.Services.EntityStorage(eStorage.Classes.ToArray(), eStorage.ClassRoomsTypes.ToArray(), groups.ToArray(), eStorage.Teachers.ToArray(), eStorage.ClassRooms.ToArray()); }
public PartialSchedule GetPartialSchedule(StudentSubGroup subGroup) { StudentsClass[] partSchedule = new StudentsClass[Constants.WEEKS_IN_SCHEDULE * Constants.DAYS_IN_WEEK * Constants.CLASSES_IN_DAY]; for (int timeIndex = 0; timeIndex < classesTable.GetLength(0); timeIndex++) { for (int classRoomIndex = 0; classRoomIndex < classesTable.GetLength(1); classRoomIndex++) { if (classesTable[timeIndex, classRoomIndex] != null) { if (classesTable[timeIndex, classRoomIndex].SubGroups.Contains(subGroup)) { partSchedule[timeIndex] = classesTable[timeIndex, classRoomIndex]; break; } } } } return new PartialSchedule(partSchedule); }
public void EditStudenSubGroups(StudentSubGroup group, string name, byte number) { List<StudentSubGroup> groups = eStorage.StudentSubGroups.ToList(); int id = (int)((Domain.IDomainIdentity<StudentSubGroup>)group).ID; groups.Remove(group); groups.Add(new StudentSubGroup(id, name, number)); eStorage = new Domain.Services.EntityStorage(eStorage.Classes.ToArray(), eStorage.ClassRoomsTypes.ToArray(), groups.ToArray(), eStorage.Teachers.ToArray(), eStorage.ClassRooms.ToArray()); }
bool StudentsBusy(StudentSubGroup[] students, int Time) { for (int classRoomIndex = 0; classRoomIndex < classesTable.GetLength(1); classRoomIndex++) { for (int groupIndex = 0; groupIndex < students.Length; groupIndex++) { if (classesTable[Time, classRoomIndex] != null && classesTable[Time, classRoomIndex].SubGroups.Contains(students[groupIndex])) return true; } } return false; }
public string ExistStudentGroupInFactors(StudentSubGroup group) { CheckDataInFactors f = new CheckDataInFactors(eStorage); List<FactorSettings> factors = f.CheckGroup(group); string s = ""; if (factors.Count == 0) return s; else { foreach (var item in factors) { s += item.FactorName + ":" + item.UsersFactorName + "\n"; } } return s; }
public void LoadPartScheduleExcel(StudentSubGroup[] Groups) { if (pathToFile == null) return; ObjExcel = new Application(); string path = pathToFile; ObjWorkBook = ObjExcel.Workbooks.Add(); ObjWorkSheet = (Worksheet)ObjWorkBook.Sheets[1]; CreatTemplate(ObjExcel, ObjWorkBook, ObjWorkSheet); int k = 3; Range exelcells; foreach (StudentSubGroup groop in Groups) { PartialSchedule partSchedule; //partSchedule = schedule.GetPartialSchedule(FacultiesAndGroups.GetClassGroupStorage(groop, eStorage));WTF??? partSchedule = schedule.GetPartialSchedule(groop); StudentsClass[] sched; ClassRoom clas; sched = partSchedule.GetClasses(); int ifor1 = 0, ifor2 = 32; ((Range)ObjWorkSheet.Cells[1, k]).Value2 = groop.NameGroup; ((Range)ObjWorkSheet.Cells[1, k]).Borders.Weight = XlBorderWeight.xlMedium; ((Range)ObjWorkSheet.Cells[2, k]).Value2 = groop.NumberSubGroup; ((Range)ObjWorkSheet.Cells[2, k]).Borders.Weight = XlBorderWeight.xlMedium; ((Range)ObjWorkSheet.Cells[1, k]).HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; ((Range)ObjWorkSheet.Cells[1, k]).VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; ((Range)ObjWorkSheet.Cells[2, k]).HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; ((Range)ObjWorkSheet.Cells[2, k]).VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; ((Range)ObjWorkSheet.Cells[1, k]).Font.Bold = true; ((Range)ObjWorkSheet.Cells[1, k]).Borders.ColorIndex = 1; ((Range)ObjWorkSheet.Cells[2, k]).Borders.ColorIndex = 1; for (int i = 0; i < (Domain.Services.Constants.CLASSES_IN_DAY * Domain.Services.Constants.DAYS_IN_WEEK * Domain.Services.Constants.WEEKS_IN_SCHEDULE); i++) { ((Range)ObjWorkSheet.Cells[(i + 3), k]).Borders.ColorIndex = 1; ((Range)ObjWorkSheet.Cells[(i + 3), k]).HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; ((Range)ObjWorkSheet.Cells[(i + 3), k]).VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; if((i +1)% 12==0) ((Range)ObjWorkSheet.Cells[(i + 3), k]).Borders[XlBordersIndex.xlEdgeBottom].Weight = XlBorderWeight.xlMedium; if (sched[i] != null && i >= 0 && i <= 35) { string str; clas = schedule.GetClassRoom(sched[i]); str = sched[i].Name + " (" + clas.Housing + " а." + clas.Number + " )"; for (int n = 0; n < sched[i].Teacher.Length; n++) { str = str + " " + sched[i].Teacher[n].Name; } ((Range)ObjWorkSheet.Cells[(i + 3 + ifor1), k]).ColumnWidth = 30; ((Range)ObjWorkSheet.Cells[(i + 3 + ifor1), k]).Value2 = str; } if (sched[i] != null && i >= 36 && i <= 71) { string str; clas = schedule.GetClassRoom(sched[i]); str = sched[i].Name + " (" + clas.Housing + " а." + clas.Number + " )"; for (int n = 0; n < sched[i].Teacher.Length; n++) { str = str + " " + sched[i].Teacher[n].Name; } ((Range)ObjWorkSheet.Cells[(i - ifor2), k]).ColumnWidth = 30; ((Range)ObjWorkSheet.Cells[(i - ifor2), k]).Value2 = str; } if (i >= 0 && i <= 35) ifor1++; if (i >= 36 && i <= 71) ifor2--; } k++; } //ANALYSING //------------------------------------------------------------------------------------ string[,] grstr = new string[74, (k - 3)]; for (int i = 0; i < (k - 3); i++) { for (int zed = 0; zed < 74; zed++) { if (((Range)ObjWorkSheet.Cells[zed + 1, i + 3]).Value2 != null) { grstr[zed, i] = ((Range)ObjWorkSheet.Cells[zed + 1, i + 3]).Value2.ToString(); } } } //Horizantal for (int zed = 0; zed < 74; zed++) { if (zed != 1) { for (int i = 0; i < (k - 4); i++) { if (grstr[zed, i] != null && grstr[zed, i] == grstr[zed, i + 1]) { exelcells = ObjWorkSheet.Range[ObjWorkSheet.Cells[zed + 1, i + 3], ObjWorkSheet.Cells[zed + 1, i + 4]]; ((Range)ObjWorkSheet.Cells[zed + 1, i + 4]).Clear(); exelcells.Merge(Type.Missing); } } } } //Vertical for (int i = 0; i < (k - 3); i++) { for (int zed = 0; zed < 73; zed += 2) { if (grstr[zed, i] == grstr[zed + 1, i]) { exelcells = ObjWorkSheet.Range[ObjWorkSheet.Cells[zed + 1, i + 3], ObjWorkSheet.Cells[zed + 2, i + 3]]; ((Range)ObjWorkSheet.Cells[zed + 2, i + 3]).Value2 = ""; exelcells.Merge(Type.Missing); } } } //------------------------------------------------------------------------------------ ObjWorkBook.SaveAs(path); ObjWorkBook.Close(); ObjExcel.Quit(); ObjWorkSheet = null; ObjWorkBook = null; ObjExcel = null; }
void CreateGroupHeader(StudentSubGroup[] groups) { int columnIndex = COLUMN_HEADER; foreach (StudentSubGroup group in groups) { Label groupLabel = new Label(); groupLabel.Content = group.NameGroup + "/" + group.NumberSubGroup; groupLabel.Height = CELL_HEIGHT; groupLabel.Width = CELL_WIDTH; groupLabel.BorderBrush = new SolidColorBrush(Color.FromRgb(255, 140, 0)); groupLabel.BorderThickness = new Thickness(1); groupLabel.SetValue(Grid.RowProperty, ROW_HEADER - 1); groupLabel.SetValue(Grid.ColumnProperty, columnIndex); groupLabel.FontSize = 12; groupLabel.HorizontalContentAlignment = HorizontalAlignment.Center; columnIndex++; gdData.Children.Add(groupLabel); } }
public List<FactorSettings> CheckGroup(StudentSubGroup group) { this.Group = group; List<FactorSettings> usedFactors = new List<FactorSettings>(); Factors = FactorsEditors.GetUsersFactors(CurrentBase.Factors); foreach (FactorSettings factor in Factors) { if (factor.Data != null && factor.Data.GetType() == typeof(Dictionary<StudentsClass, List<ClassRoom>>)) { Dictionary<StudentsClass, List<ClassRoom>> data = (Dictionary<StudentsClass, List<ClassRoom>>)factor.Data; data = (Dictionary<StudentsClass, List<ClassRoom>>)FactorsEditors.RestoreLinks(data, store); foreach (StudentsClass sClass in data.Keys) { if (sClass.SubGroups.Contains(group)) { usedFactors.Add(factor); break; } } } if (factor.Data != null && factor.Data.GetType() == typeof(List<FixedClasses>)) { List<FixedClasses> data = (List<FixedClasses>)factor.Data; data =(List<FixedClasses>)FactorsEditors.RestoreLinks(data, store); foreach (FixedClasses fixedClass in data) { if (fixedClass.sClass.SubGroups.Contains(group)) { usedFactors.Add(factor); break; } } } } return usedFactors; }