Beispiel #1
0
 public void DeleteBooking(BookingInfo booking)
 {
     using (IDataContext context = DataContext.Instance())
     {
         var repository = context.GetRepository <BookingInfo>();
         repository.Delete(booking);
     }
 }
Beispiel #2
0
 public int InsertBooking(BookingInfo booking)
 {
     using (IDataContext context = DataContext.Instance())
     {
         var repository = context.GetRepository <BookingInfo>();
         repository.Insert(booking);
         return(booking.BookingId);
     }
 }
Beispiel #3
0
        public string GetYearMatrix(int moduleId, int year, bool showOnlyFutureDates, DateTime?selectStart = null, DateTime?selectEnd = null)
        {
            List <BookingInfo> bookings = GetBookingsByYear(moduleId, year).ToList();

            if (selectStart != null && selectEnd != null)
            {
                bookings.Add(new BookingInfo()
                {
                    BookingId = -1,
                    ModuleID  = moduleId,
                    PortalID  = PortalSettings.Current.PortalId,
                    Startdate = (DateTime)selectStart,
                    Enddate   = (DateTime)selectEnd,
                    State     = 4,
                    UserID    = PortalSettings.Current.UserId
                });
            }

            StringBuilder sb = new StringBuilder();

            for (int month = 1; month < 13; month++)
            {
                for (int day = 1; day < 32; day++)
                {
                    try
                    {
                        int      state = 0;
                        DateTime date  = new DateTime(year, month, day);
                        if (!showOnlyFutureDates || date >= DateTime.Now.Date)
                        {
                            state = 1;
                            BookingInfo hit = (from b in bookings
                                               where b.Startdate <= date && b.Enddate > date
                                               select b).FirstOrDefault();
                            if (hit != null)
                            {
                                state = hit.State;
                            }

                            if (date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday)
                            {
                                state += 5;
                            }
                        }

                        sb.Append(state.ToString());
                    }
                    catch (Exception)
                    {
                        sb.Append("0");
                    }
                }
            }
            return(sb.ToString());
        }
Beispiel #4
0
        private void SaveBooking(UserInfo user)
        {
            BookingInfo booking = SelectedBooking;

            booking.UserID               = user.UserID;
            booking.CreatedByUserID      = user.UserID;
            booking.LastModifiedByUserID = user.UserID;
            booking.State = 2;
            Controller.InsertBooking(booking);
            mvBooking.SetActiveView(vwConfirm);
        }
Beispiel #5
0
        public string ValidateBooking(int moduleID, BookingInfo booking, List <int> allowedDays, int minOffset, int minDays)
        {
            string resourceFile = Globals.ResolveUrl("~/DesktopModules/bbbooking/App_LocalResources/Edit.ascx.resx");
            string result       = "";

            if (booking.Startdate.Date > booking.Enddate.Date)
            {
                result += Localization.GetString("EndBeforeStart.Error", resourceFile) + "<br/>";
            }

            IEnumerable <BookingInfo> savedBookings = GetBookings(moduleID)
                                                      .Where(b => ((b.Startdate.Date <= booking.Startdate.Date && b.Enddate.Date > booking.Startdate.Date) ||
                                                                   (b.Startdate.Date < booking.Enddate.Date && b.Enddate.Date >= booking.Enddate.Date) ||
                                                                   (b.Startdate.Date >= booking.Startdate.Date && b.Enddate.Date <= booking.Enddate.Date)) &&
                                                             b.BookingId != booking.BookingId);

            if (savedBookings.Any())
            {
                result += String.Format(Localization.GetString("Overlapping.Error", resourceFile)) + "<br/>";
            }

            if (!allowedDays.Contains((int)booking.Startdate.DayOfWeek))
            {
                StringBuilder sb = new StringBuilder();
                foreach (int allowedDay in allowedDays)
                {
                    sb.Append(CultureInfo.CurrentCulture.DateTimeFormat.DayNames[allowedDay] + ",");
                }
                string ad = sb.ToString();
                if (ad.Length > 0)
                {
                    ad = ad.Substring(0, ad.Length - 1);
                }
                result += String.Format(Localization.GetString("AllowedDays.Error", resourceFile), ad) + "<br/>";
            }

            if (booking.Startdate.Date - DateTime.Now.Date < new TimeSpan(minOffset, 0, 0, 0))
            {
                result += String.Format(Localization.GetString("MinOffset.Error", resourceFile), DateTime.Now.Date + new TimeSpan(minOffset, 0, 0, 0)) + "<br/>";
            }

            if (booking.Enddate.Date - booking.Startdate.Date < new TimeSpan(minDays, 0, 0, 0))
            {
                result += String.Format(Localization.GetString("MinDays.Error", resourceFile), minDays) + "<br/>";
            }

            if (result.Length > 5)
            {
                result = result.Substring(0, result.Length - 5);
            }

            return(result);
        }