Exemplo n.º 1
0
        /// <summary>
        /// Handles the Click event of the _btnAddDates control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        protected void _btnAddDates_Click(object sender, EventArgs e)
        {
            var startDate = (DateTime)_rdpStartDate.DbSelectedDate;
            var startTime = ((DateTime)_rtpStartTime.DbSelectedDate).TimeOfDay;
            var endDate   = _rdpEndDate.DbSelectedDate;
            var endTime   = ((DateTime)_rtpEndTime.DbSelectedDate).TimeOfDay;

            var days = _rcbDays.CheckedItems.Aggregate(String.Empty, (current, item) => current + (item.Value + ",")).TrimEnd(',');

            var isVald = GetIsValdAddDates(days, endDate, startDate, startTime, endTime);

            if (isVald == false)
            {
                return;
            }

            //Check for any overlap here
            var appointMentToAdd = new AppointmentTemporaryObj
            {
                AllDay    = false,
                Days      = days,
                EndDate   = (DateTime?)endDate,
                EndTime   = endTime,
                RoomId    = RoomId,
                StartDate = startDate,
                StartTime = startTime
            };

            var db = new UrbanDataContext();
            var currentAvilList = db.Manager.RoomAvailability.GetByRoomID(RoomId).OrderByDescending(t => t.StartDate).ToList();

            //Check if date to add is valid over existing range of dates.
            if (AppointmentTemporaryObj.DoesDateOverLap(appointMentToAdd, currentAvilList.ToAppointmentTempObject()))
            {
                WriteFeedBackMaster(FeedbackType.Error, "Date overlaps");
                return;
            }
            var newAppointment = new RoomAvailability
            {
                AllDay    = appointMentToAdd.AllDay,
                Days      = appointMentToAdd.Days == String.Empty ? null : appointMentToAdd.Days,
                EndDate   = appointMentToAdd.EndDate,
                EndTime   = appointMentToAdd.EndTime,
                RoomID    = RoomId,
                StartDate = appointMentToAdd.StartDate,
                StartTime = appointMentToAdd.StartTime
            };

            db.RoomAvailability.InsertOnSubmit(newAppointment);
            db.SubmitChanges();
            RebindGridAndScheduler();
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Processes the room creation.
        /// </summary>
        /// <param name = "db">The db.</param>
        /// <param name = "buildingId">The building id.</param>
        /// <param name = "userId">The user id.</param>
        /// <param name = "apptList">The appt list.</param>
        /// <param name = "params">The @params.</param>
        /// <returns></returns>
        public static int ProcessRoomCreation(ref UrbanDataContext db, int buildingId, int userId, IEnumerable <AppointmentTemporaryObj> apptList, ProcessRoomCreationParams @params)
        {
            //Validate Room building combination
            if (DoesRoomExistWithNumber(ref db, buildingId, @params.Number))
            {
                return(-1);
            }

            if (AppointmentTemporaryObj.ValidateListDoAnyOverlapInList(apptList))
            {
                throw new Exception("Dates Over Lap");
            }

            var room = new Room
            {
                Number       = @params.Number,
                Title        = @params.Name,
                MaxOccupancy = @params.MaxOccupancy,
                RoomTypeID   = @params.Type,
                Description  = @params.Description,
                BuildingID   = buildingId,
                UserID       = userId
            };

            db.Room.InsertOnSubmit(room);
            db.SubmitChanges();

            foreach (var availabilityDate in apptList.Select(tempAppt => new RoomAvailability
            {
                AllDay = false,
                Days = tempAppt.Days == String.Empty ? null : tempAppt.Days,
                EndDate = tempAppt.EndDate,
                EndTime = tempAppt.EndTime,
                RoomID = room.Id,
                StartDate = tempAppt.StartDate,
                StartTime = tempAppt.StartTime
            }))
            {
                db.RoomAvailability.InsertOnSubmit(availabilityDate);
            }


            db.SubmitChanges();
            return(room.Id);
        }
Exemplo n.º 3
0
        /// <summary>
        ///     Handles the Click event of the _btnAddDates control.
        /// </summary>
        /// <param name = "sender">The source of the event.</param>
        /// <param name = "e">The <see cref = "System.EventArgs" /> instance containing the event data.</param>
        protected void _btnAddDates_Click(object sender, EventArgs e)
        {
            var startDate = (DateTime)_rdpStartDate.DbSelectedDate;
            var startTime = ((DateTime)_rtpStartTime.DbSelectedDate).TimeOfDay;
            var endDate   = _rdpEndDate.DbSelectedDate;
            var endTime   = ((DateTime)_rtpEndTime.DbSelectedDate).TimeOfDay;

            var days = _rcbDays.CheckedItems.Aggregate(String.Empty, (current, item) => current + (item.Value + ","));

            days = days.TrimEnd(',');


            var isVald = GetIsValdAddDates(days, endDate, startDate, startTime, endTime);

            if (isVald == false)
            {
                return;
            }

            //Check for any overlap here
            var appointMentToAdd = new AppointmentTemporaryObj
            {
                AllDay    = false,
                Days      = days,
                EndDate   = (DateTime?)endDate,
                EndTime   = endTime,
                RoomId    = 0,
                StartDate = startDate,
                StartTime = startTime
            };

            if (AppointmentTemporaryObj.DoesDateOverLap(appointMentToAdd, AvailabilityList))
            {
                WriteToBothFeedback(FeedbackType.Error, "Date overlaps");
            }
            else
            {
                AvailabilityList.Add(appointMentToAdd);
            }


            _rgAvailableTimes.Rebind();
        }