/// <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; }
/// <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); }