public HttpResponseMessage CreateLesson(LessonModel model, [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string accessToken) { var responseMsg = this.PerformOperationAndHandleExceptions(() => { var dbContext = new TimetableContext(); using (dbContext) { var user = this.GetUserByAccessToken(accessToken, dbContext); var subject = model.Subject; var existingSubject = user.Subjects.FirstOrDefault(s => s.Name == subject); var lesson = new Lesson { Owner = user, Type = model.Type, Room = model.Room, Day = model.Day, DayNumber = LessonModel.CheckDay(model.Day), Start = model.StartTime, End = model.EndTime, Note = model.Note }; user.Lessons.Add(lesson); dbContext.SaveChanges(); if (existingSubject == null) { var newSubject = new Subject { Name = subject, Owner = user }; user.Subjects.Add(newSubject); dbContext.SaveChanges(); lesson.Subject = newSubject; newSubject.Lessons.Add(lesson); } else { lesson.Subject = existingSubject; existingSubject.Lessons.Add(lesson); } dbContext.SaveChanges(); var responseModel = new ResponseModel { Id = lesson.Id }; var response = this.Request.CreateResponse(HttpStatusCode.OK, responseModel); return(response); } }); return(responseMsg); }
public IActionResult Create(Subject model) { ModelState.Remove("SubjectId"); if (ModelState.IsValid) { _context.Subjects.Add(model); _context.SaveChanges(); return(RedirectToAction("Index")); } return(View()); }
public ActionResult Create([Bind(Include = "ID,Name,Capacity,Speciality")] Room room) { if (ModelState.IsValid) { db.Rooms.Add(room); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(room)); }
public ActionResult Create([Bind(Include = "ID,Fname,Lname,Fraction")] Staff staff) { if (ModelState.IsValid) { db.Staffs.Add(staff); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(staff)); }
public ActionResult Create([Bind(Include = "ID,Description,Hours")] Remission remission) { if (ModelState.IsValid) { db.Remissions.Add(remission); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(remission)); }
public HttpResponseMessage CreateHomework(HomeworkModel model, [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string accessToken) { var responseMsg = this.PerformOperationAndHandleExceptions(() => { var dbContext = new TimetableContext(); using (dbContext) { var user = this.GetUserByAccessToken(accessToken, dbContext); var subject = model.Subject; var existingSubject = dbContext.Subjects.FirstOrDefault(s => s.Name == subject); var homework = new Homework { Owner = user, IsDone = model.IsDone, SubmitDate = model.SubmitDate }; user.Homeworks.Add(homework); dbContext.SaveChanges(); if (existingSubject == null) { var newSubject = new Subject { Name = subject, Owner = user }; user.Subjects.Add(newSubject); dbContext.SaveChanges(); homework.Subject = newSubject; newSubject.Homeworks.Add(homework); } else { homework.Subject = existingSubject; existingSubject.Homeworks.Add(homework); } dbContext.SaveChanges(); var responseModel = new ResponseModel() { Id = homework.Id }; var response = this.Request.CreateResponse(HttpStatusCode.OK, responseModel); return(response); } }); return(responseMsg); }
public HttpResponseMessage CreateSubject(SubjectModel model, [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string accessToken) { var responseMsg = this.PerformOperationAndHandleExceptions(() => { var dbContext = new TimetableContext(); using (dbContext) { var user = this.GetUserByAccessToken(accessToken, dbContext); var newSubject = new Subject { Owner = user, Name = model.Name, Color = model.Color, Teacher = model.Teacher }; user.Subjects.Add(newSubject); dbContext.SaveChanges(); var responseModel = new ResponseModel() { Id = newSubject.Id }; var response = this.Request.CreateResponse(HttpStatusCode.OK, responseModel); return(response); } }); return(responseMsg); }
public HttpResponseMessage RegisterUser(UserModel model) { return(this.PerformOperationAndHandleExceptions(() => { this.ValidateUser(model); var context = new TimetableContext(); var dbUser = GetUserByUsername(model, context); if (dbUser != null) { throw new InvalidOperationException("This user already exists in the database"); } dbUser = new User() { Username = model.Username, AuthenticationCode = model.AuthCode }; context.Users.Add(dbUser); context.SaveChanges(); var responseModel = new RegisterUserResponseModel() { Id = dbUser.Id, Username = dbUser.Username, }; var response = this.Request.CreateResponse(HttpStatusCode.Created, responseModel); return response; })); }
public HttpResponseMessage LogoutUser ([ValueProvider(typeof(HeaderValueProviderFactory <string>))] string accessToken) { return(this.PerformOperationAndHandleExceptions(() => { var context = new TimetableContext(); var user = this.GetUserByAccessToken(accessToken, context); user.AccessToken = null; context.SaveChanges(); var response = this.Request.CreateResponse(HttpStatusCode.NoContent); return response; })); }
public HttpResponseMessage MarkAsDone(int id, [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string accessToken) { return(this.PerformOperationAndHandleExceptions(() => { var dbContext = new TimetableContext(); var user = this.GetUserByAccessToken(accessToken, dbContext); var homework = user.Homeworks.FirstOrDefault(h => h.Id == id); homework.IsDone = (homework.IsDone) ? false : true; dbContext.SaveChanges(); var response = this.Request.CreateResponse(HttpStatusCode.Created); return response; })); }
public HttpResponseMessage DeleteHomewrok(int id, [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string accessToken) { var responseMsg = this.PerformOperationAndHandleExceptions(() => { var dbContext = new TimetableContext(); using (dbContext) { var user = this.GetUserByAccessToken(accessToken, dbContext); var existingHomework = user.Homeworks.FirstOrDefault(l => l.Id == id); user.Homeworks.Remove(existingHomework); dbContext.SaveChanges(); var response = this.Request.CreateResponse(HttpStatusCode.OK); return(response); } }); return(responseMsg); }
public HttpResponseMessage LoginUser(UserModel model) { return(this.PerformOperationAndHandleExceptions(() => { if (model == null) { throw new FormatException("Invalid username and/or password"); } this.ValidateAuthCode(model.AuthCode); this.ValidateUsername(model.Username); var context = new TimetableContext(); var authCode = model.AuthCode; var user = context.Users.FirstOrDefault(u => u.AuthenticationCode == authCode); if (user == null) { throw new InvalidOperationException("Invalid username or password"); } if (user.AccessToken == null) { user.AccessToken = this.GenerateAccessToken(user.Id); context.SaveChanges(); } var responseModel = new LoginResponseModel() { Id = user.Id, Username = user.Username, AccessToken = user.AccessToken }; var response = this.Request.CreateResponse(HttpStatusCode.OK, responseModel); return response; })); }
public HttpResponseMessage EditSubject(SubjectModel model, int id, [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string accessToken) { var responseMsg = this.PerformOperationAndHandleExceptions(() => { var dbContext = new TimetableContext(); using (dbContext) { var user = this.GetUserByAccessToken(accessToken, dbContext); var subject = user.Subjects.FirstOrDefault(s => s.Id == id); subject.Name = model.Name; subject.Teacher = model.Teacher; subject.Color = model.Color; dbContext.SaveChanges(); var response = this.Request.CreateResponse(HttpStatusCode.OK); return(response); } }); return(responseMsg); }
public HttpResponseMessage DeleteSubject(int id, [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string accessToken) { var responseMsg = this.PerformOperationAndHandleExceptions( () => { var dbContext = new TimetableContext(); using (dbContext) { var user = this.GetUserByAccessToken(accessToken, dbContext); var existingSubject = user.Subjects.FirstOrDefault(l => l.Id == id); var homeworksForSubject = user.Homeworks.Where(h => h.Subject.Id == existingSubject.Id); foreach (var homework in homeworksForSubject) { user.Homeworks.Remove(homework); } var lessonsForSubject = user.Lessons.Where(h => h.Subject.Id == existingSubject.Id); foreach (var lesson in lessonsForSubject) { user.Lessons.Remove(lesson); } user.Subjects.Remove(existingSubject); dbContext.SaveChanges(); var response = this.Request.CreateResponse(HttpStatusCode.OK); return(response); } }); return(responseMsg); }
public bool SaveChanges() { return(_context.SaveChanges() >= 0); }