Ejemplo n.º 1
0
        private void StockGenerator()
        {
            int dayCount = 0;

            while (dayCount < 30)
            {
                int            hourCount = 0;
                DateTimeOffset now       = DateTimeOffset.Now.Date;
                while (hourCount < 24)
                {
                    AvailableDateStock stock = new AvailableDateStock()
                    {
                        AvailableDate = now.AddDays(dayCount).AddHours(hourCount),
                        Type          = TimeStockType.Course
                    };
                    foreach (MemberWorkTime teacher in Teachers)
                    {
                        MemberWorkTimeItem match = teacher.Times.Where(x => x.Weekday == stock.AvailableDate.DayOfWeek && x.Time.Hours == stock.AvailableDate.Hour).FirstOrDefault();
                        if (match != null)
                        {
                            stock.Members.Add(new AvailableDateStockMember()
                            {
                                AvailableDate = stock.AvailableDate,
                                Type          = TimeStockType.Course,
                                MemberId      = teacher.MemberId
                            });
                        }
                    }
                    AvailableDateStock.Add(stock);
                    hourCount++;
                }
                dayCount++;
            }
        }
Ejemplo n.º 2
0
        private void _removeStock(MemberWorkTimeItem item)
        {
            AvailableDateStock stock = Model.AvailableDateStock.FirstOrDefault(x => x.AvailableDate.DayOfWeek == item.Weekday && x.AvailableDate.Hour == item.Time.Hours);

            if (stock != null)
            {
                AvailableDateStockMember member = stock.Members.FirstOrDefault(x => x.MemberId == item.MemberId);
                stock.Members.Remove(member);
            }
        }
Ejemplo n.º 3
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;
     }
 }
Ejemplo n.º 4
0
        private void _addStock(MemberWorkTimeItem item)
        {
            AvailableDateStock stock = Model.AvailableDateStock.FirstOrDefault(x => x.AvailableDate.DayOfWeek == item.Weekday && x.AvailableDate.Hour == item.Time.Hours);

            if (stock != null)
            {
                stock.Members.Add(new AvailableDateStockMember()
                {
                    AvailableDate = stock.AvailableDate,
                    Type          = TimeStockType.Course,
                    MemberId      = item.MemberId
                });
            }
        }
Ejemplo n.º 5
0
        private MemberWorkTime TeacherGenerator()
        {
            Random rm       = new Random();
            string memberId = PublicMethod.GetToken();

            MemberWorkTime Teacher = new MemberWorkTime()
            {
                MemberId      = memberId,
                ReadyTime     = rm.Next(0, 13),
                Status        = Status.Enabled,
                EffectiveDate = DateTimeOffset.Now
            };

            for (int i = 0; i < 7; i++)
            {
                for (int j = 0; j < 24; j++)
                {
                    if (rm.Next(0, 3) == 2)
                    {
                        MemberWorkTimeItem work = new MemberWorkTimeItem()
                        {
                            Id            = PublicMethod.GetToken(),
                            MemberId      = memberId,
                            Weekday       = (DayOfWeek)i,
                            Time          = TimeSpan.FromHours(j),
                            EffectiveDate = DateTime.Now
                        };
                        Teacher.Times.Add(work);
                    }
                }
            }

            Schedules.Add(new Schedule()
            {
                Id       = PublicMethod.GetToken(),
                MemberId = memberId,
                Name     = "Chinese Class",
                Type     = ScheduleType.Class,
                Color    = "#F4A460",
                Visibled = true,
                IsSystem = false
            });
            return(Teacher);
        }