public HttpResponseMessage AddSubject([FromBody] TtLesson newSubject, [FromUri] string schoolYear) { try { using (var ctx = new TeachersBookEntities2()) { var identity = (ClaimsIdentity)User.Identity; var id = ((ClaimsIdentity)User.Identity).FindFirst("id"); var returnObj = new List <TtLesson>(); var userQuery = from u in ctx.UserData where u.id.ToString() == id.Value.ToString() select u; var user = userQuery.FirstOrDefault <UserData>(); var schoolYearsQuery = from sy in user.SchoolYears where sy.schoolYear.ToString() == schoolYear select sy; var _schoolYear = schoolYearsQuery.FirstOrDefault <SchoolYears>(); var currentSchoolClass = from sy in ctx.Classes where sy.SchoolYears.schoolYear == schoolYear && sy.id.ToString() == newSubject.TtClass.id select sy; var newSubjectItem = new Subjects(); newSubjectItem.color = newSubject.color; newSubjectItem.description = newSubject.name; newSubjectItem.id = Guid.NewGuid(); newSubjectItem.@class = currentSchoolClass.FirstOrDefault <Classes>().id; _schoolYear.Subjects.Add(newSubjectItem); ctx.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, "success! New item id: " + newSubjectItem.id.ToString())); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "error: " + ex.Message.ToString())); } }
private static void AddNewRowToTimetable(TeachersBookEntities2 ctx, int rowCounter, TimeTables timetabelDb, TtSubjectsRow timetablerow) { try { TimeTableRows newRowDb = new TimeTableRows(); newRowDb.id = Guid.NewGuid(); newRowDb.rowNo = rowCounter; newRowDb.timetable = timetabelDb.id; var startEnd = timetablerow.subjects[0].description.Split('-'); newRowDb.start = startEnd[0].Trim(); newRowDb.end = startEnd.Length > 1 ? startEnd[1].Trim() : ""; ctx.TimeTableRows.Add(newRowDb); } catch (Exception ex) { Console.WriteLine("Error"); } }
public HttpResponseMessage RemoveSubject([FromUri] string subjectToRemoveId, [FromUri] string schoolYear) { try { using (var ctx = new TeachersBookEntities2()) { var identity = (ClaimsIdentity)User.Identity; var id = ((ClaimsIdentity)User.Identity).FindFirst("id"); var returnObj = new List <TtLesson>(); var userQuery = from u in ctx.UserData where u.id.ToString() == id.Value.ToString() select u; var user = userQuery.FirstOrDefault <UserData>(); var schoolYearsQuery = from sy in user.SchoolYears where sy.schoolYear.ToString() == schoolYear select sy; var _schoolYear = schoolYearsQuery.FirstOrDefault <SchoolYears>(); var subjectToRemoveQuery = from su in _schoolYear.Subjects where su.id.ToString() == subjectToRemoveId select su; var subjectItemToRemove = subjectToRemoveQuery.FirstOrDefault <Subjects>(); ctx.Subjects.Remove(subjectItemToRemove); ctx.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, "success")); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "error: " + ex.Message.ToString())); } }
public IHttpActionResult GetAllSubjects(string schoolYear) { using (var ctx = new TeachersBookEntities2()) { var identity = (ClaimsIdentity)User.Identity; var id = ((ClaimsIdentity)User.Identity).FindFirst("id"); var returnObj = new List <TtLesson>(); var userQuery = from u in ctx.UserData where u.id.ToString() == id.Value.ToString() select u; var user = userQuery.FirstOrDefault <UserData>(); var schoolYearsQuery = from sy in user.SchoolYears where sy.schoolYear.ToString() == schoolYear select sy; var _schoolYear = schoolYearsQuery.FirstOrDefault <SchoolYears>(); var subjects = _schoolYear.Subjects.ToList <Subjects>(); foreach (var subject in subjects.OrderBy(x => x.description)) { TtLesson subjectToAdd = new TtLesson(); subjectToAdd.id = subject.id.ToString(); subjectToAdd.name = subject.description; subjectToAdd.color = subject.color; var subjectClass = new TtClass(); subjectClass.id = subject.Classes.id.ToString(); subjectClass.name = subject.Classes.name; subjectToAdd.TtClass = subjectClass; returnObj.Add(subjectToAdd); } return(Ok(returnObj)); } }
private static void AddAllSubjectsOfNewRowToTimetable(TimeTableRows newRow, TeachersBookEntities2 ctx, int rowCounter, TtSubjectsRow timetablerow) { int counter = 0; foreach (var subject in timetablerow.subjects) { if (counter > 1) { TimeTableIItems newTimetableItem = new TimeTableIItems(); newTimetableItem.id = Guid.NewGuid(); newTimetableItem.day = counter; newTimetableItem.type = "subject"; SubjectToTimeTableHours newTimetableItemDetails = new SubjectToTimeTableHours(); newTimetableItemDetails.timetableId = newTimetableItem.id; newTimetableItemDetails.subjectId = Guid.Parse(subject.lesson.id); newRow.TimeTableIItems.Add(newTimetableItem); counter++; } } }
public HttpResponseMessage SetAllSubjects([FromBody] Timetable timetable, [FromUri] string schoolYear) { int rowCounter = 0; int columnCounter = 0; try { using (var ctx = new TeachersBookEntities2()) { var identity = (ClaimsIdentity)User.Identity; var id = ((ClaimsIdentity)User.Identity).FindFirst("id"); var userQuery = from u in ctx.UserData where u.id.ToString() == id.Value.ToString() select u; var user = userQuery.FirstOrDefault <UserData>(); var schoolYearsQuery = from sy in user.SchoolYears where sy.schoolYear.ToString() == schoolYear select sy; var _schoolYear = schoolYearsQuery.FirstOrDefault <SchoolYears>(); var timetabelDb = _schoolYear.TimeTables.FirstOrDefault <TimeTables>(); var timetableRowsDb = timetabelDb.TimeTableRows.OrderBy(x => x.rowNo).ToList(); foreach (var timetablerow in timetable.rows) { if (rowCounter > timetableRowsDb.Count - 1) { //last row is new AddNewRowToTimetable(ctx, rowCounter, timetabelDb, timetablerow); } else { if (timetableRowsDb[rowCounter].id.ToString() != timetablerow.id) { //rowNo chnaged } if (timetablerow.isNew) { //row is new AddNewRowToTimetable(ctx, rowCounter, timetabelDb, timetablerow); } } //TtSubjectsRowItem TeachersBookDescriptionItem = new TtSubjectsRowItem(); //TeachersBookDescriptionItem.day = 0; //TeachersBookDescriptionItem.hour = currentRowNo; //TeachersBookDescriptionItem.description = timetablerowDb.start + " - " + timetablerowDb.end; //timetableRow.subjects.Add(TeachersBookDescriptionItem); //var items = timetablerowDb.TimeTableIItems.ToList<TimeTableIItems>(); //foreach (TimeTableIItems item in items) //{ // if (item.type == "subject") // { // timetableRow.rowType = "subject"; // TtSubjectsRowItem newRowItem = new TtSubjectsRowItem(); // newRowItem.day = item.day ?? default(int); // newRowItem.hour = currentRowNo; // newRowItem.description = item.description; // newRowItem.id = item.id.ToString(); // TtLesson newLesson = new TtLesson(); // newLesson.id = item.SubjectToTimeTableHours.Subjects.id.ToString(); // newLesson.name = item.SubjectToTimeTableHours.Subjects.description; // newLesson.color = item.SubjectToTimeTableHours.Subjects.color; // TtClass newClass = new TtClass(); // newClass.id = item.SubjectToTimeTableHours.Subjects.Classes.id.ToString(); // newClass.name = item.SubjectToTimeTableHours.Subjects.Classes.name; // newLesson.TtClass = newClass; // newRowItem.lesson = newLesson; // timetableRow.subjects.Add(newRowItem); // } // else // { // timetableRow.rowType = "break"; // TtSubjectsRowItem newRowItem = new TtSubjectsRowItem(); // newRowItem.id = item.id.ToString(); // newRowItem.day = item.day ?? default(int); // newRowItem.hour = currentRowNo; // newRowItem.description = item.description; // timetableRow.subjects.Add(newRowItem); // } //} rowCounter++; } ctx.SaveChanges(); } return(Request.CreateResponse(HttpStatusCode.OK, "success")); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, string.Format("Error while saving timetable! Error occured at row {0}. Message: '{1}'", rowCounter.ToString(), ex.Message))); } }
public IHttpActionResult GetComplete(string schoolYear) { using (var ctx = new TeachersBookEntities2()) { var identity = (ClaimsIdentity)User.Identity; var id = ((ClaimsIdentity)User.Identity).FindFirst("id"); var userQuery = from u in ctx.UserData where u.id.ToString() == id.Value.ToString() select u; var user = userQuery.FirstOrDefault <UserData>(); var schoolYearsQuery = from sy in user.SchoolYears where sy.schoolYear.ToString() == schoolYear select sy; var _schoolYear = schoolYearsQuery.FirstOrDefault <SchoolYears>(); var timetabel = _schoolYear.TimeTables.FirstOrDefault <TimeTables>(); var returnObj = new Timetable(); foreach (var timetablerow in timetabel.TimeTableRows.OrderBy(x => x.rowNo)) { TtSubjectsRow newRow = new TtSubjectsRow(); newRow.id = timetablerow.id.ToString(); newRow.start = timetablerow.start; newRow.end = timetablerow.end; int currentRowNo = timetablerow.rowNo ?? default(int); TtSubjectsRowItem TeachersBookDescriptionItem = new TtSubjectsRowItem(); TeachersBookDescriptionItem.day = 0; TeachersBookDescriptionItem.hour = currentRowNo; TeachersBookDescriptionItem.description = timetablerow.start + " - " + timetablerow.end; newRow.subjects.Add(TeachersBookDescriptionItem); var items = timetablerow.TimeTableIItems.ToList <TimeTableIItems>(); foreach (TimeTableIItems item in items) { if (item.type == "subject") { newRow.rowType = "subject"; TtSubjectsRowItem newRowItem = new TtSubjectsRowItem(); newRowItem.day = item.day ?? default(int); newRowItem.hour = currentRowNo; newRowItem.description = item.description; newRowItem.id = item.id.ToString(); TtLesson newLesson = new TtLesson(); newLesson.id = item.SubjectToTimeTableHours.Subjects.id.ToString(); newLesson.name = item.SubjectToTimeTableHours.Subjects.description; newLesson.color = item.SubjectToTimeTableHours.Subjects.color; TtClass newClass = new TtClass(); newClass.id = item.SubjectToTimeTableHours.Subjects.Classes.id.ToString(); newClass.name = item.SubjectToTimeTableHours.Subjects.Classes.name; newLesson.TtClass = newClass; newRowItem.lesson = newLesson; newRow.subjects.Add(newRowItem); } else { newRow.rowType = "break"; TtSubjectsRowItem newRowItem = new TtSubjectsRowItem(); newRowItem.id = item.id.ToString(); newRowItem.day = item.day ?? default(int); newRowItem.hour = currentRowNo; newRowItem.description = item.description; newRow.subjects.Add(newRowItem); } } returnObj.rows.Add(newRow); } return(Ok(returnObj)); } }