public async Task <HttpResponseMessage> ScheduleAdd(TutorScheduleApiModels model) { string user_id = db.User.Where(x => x.UserName == model.Username).FirstOrDefault().Id; DayOfWeekEnum dow = (DayOfWeekEnum)Enum.Parse(typeof(DayOfWeekEnum), model.Day); DateTime _start = DateTime.Parse(model.Start); DateTime start = new DateTime(1970, 1, 1, _start.Hour, _start.Minute, 0); DateTime _end = DateTime.Parse(model.End); DateTime end = new DateTime(1970, 1, 1, _end.Hour, _end.Minute, 0); CommonRequestModels data = new CommonRequestModels(); var isExist = await db.TutorSchedules .Where(x => x.Tutor_UserAccounts_Id == user_id && x.DayOfWeek == dow && x.StartTime == start && x.EndTime == end).FirstOrDefaultAsync(); if (isExist != null) { data.Message = "This schedule already exist."; } else { if (start.Hour > end.Hour || (start.Hour == end.Hour && start.Minute > end.Minute)) { data.Message = "The Start Time cannot greater than End Time"; } } if (string.IsNullOrEmpty(data.Message)) { TutorSchedulesModels tutorSchedulesModels = new TutorSchedulesModels { Id = Guid.NewGuid(), Tutor_UserAccounts_Id = user_id, DayOfWeek = dow, StartTime = start, EndTime = end, IsActive = true, Notes = model.Notes }; db.TutorSchedules.Add(tutorSchedulesModels); await db.SaveChangesAsync(); } return(Request.CreateResponse(HttpStatusCode.OK, data)); }
public async Task <HttpResponseMessage> ScheduleEdit(TutorScheduleApiModels model) { string user_id = db.User.Where(x => x.UserName == model.Username).FirstOrDefault().Id; DayOfWeekEnum dow = (DayOfWeekEnum)Enum.Parse(typeof(DayOfWeekEnum), model.Day); DateTime _start = DateTime.Parse(model.Start); DateTime start = new DateTime(1970, 1, 1, _start.Hour, _start.Minute, 0); DateTime _end = DateTime.Parse(model.End); DateTime end = new DateTime(1970, 1, 1, _end.Hour, _end.Minute, 0); CommonRequestModels data = new CommonRequestModels(); var isExist = await db.TutorSchedules .Where(x => x.Id.ToString() != model.Schedule_Id && x.Tutor_UserAccounts_Id == user_id && x.DayOfWeek == dow && x.StartTime == start && x.EndTime == end).FirstOrDefaultAsync(); if (isExist != null) { data.Message = "This schedule already exist."; } else { if (start.Hour > end.Hour || (start.Hour == end.Hour && start.Minute > end.Minute)) { data.Message = "The Start Time cannot greater than End Time"; } } if (string.IsNullOrEmpty(data.Message)) { var current_data = await db.TutorSchedules.Where(x => x.Id.ToString() == model.Schedule_Id).FirstOrDefaultAsync(); current_data.Tutor_UserAccounts_Id = user_id; current_data.DayOfWeek = dow; current_data.StartTime = start; current_data.EndTime = end; //current_data.IsActive = tutorSchedulesModels.IsActive; current_data.Notes = model.Notes; db.Entry(current_data).State = EntityState.Modified; await db.SaveChangesAsync(); } return(Request.CreateResponse(HttpStatusCode.OK, data)); }