public void CreateSchedule(MemberBooking model) { Schedule student = Model.Schedules.FirstOrDefault(x => x.MemberId == Model.StudentId); Schedule teacher = Model.Schedules.FirstOrDefault(x => x.MemberId == model.Assigners.LastOrDefault().MemberId); student.Events.Add(new ScheduleEvent() { Id = PublicMethod.GetToken(), ScheduleId = student.Id, Name = "Chinese Class", Type = ScheduleEventType.Learning, StartDate = model.StartDate, EndDate = model.EndDate, Status = ScheduleEventStatus.Accept, Source = "MemberBooking", SourceKey = model.Id, SourceKey2 = teacher.Id }); teacher.Events.Add(new ScheduleEvent() { Id = PublicMethod.GetToken(), ScheduleId = teacher.Id, Name = "Chinese Class", Type = ScheduleEventType.Learning, StartDate = model.StartDate, EndDate = model.EndDate, Status = ScheduleEventStatus.Accept, Source = "MemberBooking", SourceKey = model.Id, SourceKey2 = student.Id }); }
public void MakePair(MemberBooking model, out bool isSuccess) { if (model != null) { TimeSpan machTime = model.StartDate.TimeOfDay; DayOfWeek machWeek = model.StartDate.DayOfWeek; MemberBookingAssigner assigner = model.Assigners.LastOrDefault(); if (_CheckAssignStatus(assigner)) { isSuccess = true; return; } foreach (MemberWorkTime teacher in Model.Teachers) { MemberWorkTimeItem item = teacher.Times.FirstOrDefault(x => x.Time == machTime && x.Weekday == machWeek); if (item != null) { if (item.Exceptions.Count > 0) { if (item.Exceptions.LastOrDefault().Status == Status.Disabled) { continue; } } model.Assigners.Add(new MemberBookingAssigner() { Id = PublicMethod.GetToken(), MemberId = item.MemberId, MemberBookingId = model.Id, Role = AssignerRole.Teacher, Status = AssignStatus.Assigned }); model.Status = BookingStatus.Confirm; _removeStock(item); break; } } assigner = model.Assigners.LastOrDefault(); if (_CheckAssignStatus(assigner)) { isSuccess = true; } else { isSuccess = false; } } else { isSuccess = false; } }
private void _cancelSchedule(string id, SelectionsViewModel selection, out MemberBooking booking) { var tSchedule = Model.Schedules.FirstOrDefault(x => x.MemberId == id); if (tSchedule != null) { var tEventItem = tSchedule?.Events.FirstOrDefault(x => x.StartDate == selection.SelectTime); if (tEventItem != null) { var sSchedule = Model.Schedules.FirstOrDefault(x => x.Id == tEventItem.SourceKey2); if (sSchedule != null) { var sEventItem = sSchedule?.Events.FirstOrDefault(x => x.StartDate == selection.SelectTime); if (sEventItem != null) { booking = Model.Bookings.FirstOrDefault(x => x.Id == tEventItem.SourceKey); booking.Status = BookingStatus.Booking; booking.Assigners.LastOrDefault().Status = AssignStatus.Cancel; tSchedule.Events.Remove(tEventItem); sSchedule.Events.Remove(sEventItem); } else { booking = null; } } else { booking = null; } } else { booking = null; } } else { booking = null; } }