Beispiel #1
0
        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
            });
        }
Beispiel #2
0
 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;
     }
 }
Beispiel #3
0
        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;
            }
        }