private void GetBookingReferenceSetting(ConnectionInfo connectionInfo, BookingReference bookingReference) { using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel()) { VRBookingReference vbr = m.VRBookingReferences.Where(x => x.Reference == bookingReference.Reference && x.BookingDeleted == null && x.NumberOfBookingLeft > 0).FirstOrDefault(); if (vbr != null) { bookingReference.IsNonTimedTiming = vbr.IsNonTimedTiming; bookingReference.IsTimedTiming = vbr.IsTimedTiming; bookingReference.Duration = vbr.Duration; bookingReference.NumberOfBookingLeft = vbr.NumberOfBookingLeft; bookingReference.NumberOfBookingTotal = vbr.NumberOfBookingTotal; bookingReference.BookingStartTime = (vbr.BookingStartTime != null) ? (DateTime)vbr.BookingStartTime : DateTime.MinValue; bookingReference.BookingEndTime = (vbr.BookingEndTime != null) ? (DateTime)vbr.BookingEndTime : DateTime.MinValue; } else { bookingReference.Reference = ""; } VRCommandServer vcs = new VRCommandServer(VRGameSelectorServerDTO.Enums.ControlMessage.GET_BOOKING_REF_SETTING, bookingReference); SendCommandToPeer(connectionInfo, vcs); } }
public void MarkWaiverReceived(ConnectionInfo connectionInfo, List <WaiverInfo> listWaiverInfo) { using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel()) { foreach (WaiverInfo wi in listWaiverInfo) { VRWaiverLog vwl = m.VRWaiverLogs.Where(x => x.ID == wi.ID).FirstOrDefault(); if (vwl != null) { vwl.IsNewEntry = false; if (vwl.BookingReference != null) { vwl.BookingReference.NumberOfBookingLeft -= (vwl.BookingReference.NumberOfBookingLeft == 0 ? 0 : 1); } else { VRBookingReference vbr = m.VRBookingReferences.Where(x => x.Reference == wi.BookingReference.Reference).FirstOrDefault(); if (vbr != null) { vwl.BookingReference = vbr; } } } } m.SaveChanges(); //m.Cache.Release(m.VRWaiverLogs); //m.Cache.Release(m.VRBookingReferences); } }
private void BookingReferenceClientApi_OnBookingReferenceResult(object sender, EventArgs e) { List <BookingReferenceJson> lbrj = ((BookingReferenceJsonEvent)e).ListBookingReference; using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel()) { int sessionLength = 50; VRConfiguration vrc = m.VRConfigurations.Where(x => x.Type == Enum.GetName(typeof(VRGameSelectorServerDTO.Enums.SysConfigType), VRGameSelectorServerDTO.Enums.SysConfigType.DEFAULT_TIMED_SESSION_LENGTH)).FirstOrDefault(); if (vrc != null) { int.TryParse(vrc.Value, out sessionLength); } foreach (BookingReferenceJson brj in lbrj) { DateTime bookingUpdateTime = DateTime.MinValue; DateTime bookingDeleteTime = DateTime.MinValue; DateTime bookingStartTime = DateTime.MinValue; DateTime bookingEndTime = DateTime.MinValue; int bookingTotalNum = 0; DateTime.TryParse(brj.booking_updated, out bookingUpdateTime); DateTime.TryParse(brj.booking_deleted, out bookingDeleteTime); DateTime.TryParse(brj.booking_start_time, out bookingStartTime); DateTime.TryParse(brj.booking_end_time, out bookingEndTime); int.TryParse(brj.booking_num_total, out bookingTotalNum); bookingUpdateTime = (bookingUpdateTime != DateTime.MinValue) ? DateTime.SpecifyKind(bookingUpdateTime, DateTimeKind.Utc).ToLocalTime() : bookingUpdateTime; bookingDeleteTime = (bookingDeleteTime != DateTime.MinValue) ? DateTime.SpecifyKind(bookingDeleteTime, DateTimeKind.Utc).ToLocalTime() : bookingDeleteTime; bookingStartTime = (bookingStartTime != DateTime.MinValue) ? DateTime.SpecifyKind(bookingStartTime, DateTimeKind.Utc).ToLocalTime() : bookingStartTime; bookingEndTime = (bookingEndTime != DateTime.MinValue) ? DateTime.SpecifyKind(bookingEndTime, DateTimeKind.Utc).ToLocalTime() : bookingEndTime; sessionLength = Math.Abs((int)bookingEndTime.Subtract(bookingStartTime).TotalMinutes); VRBookingReference vrBookingRef = m.VRBookingReferences.Where(x => x.Reference == brj.booking_id).FirstOrDefault(); if (vrBookingRef != null) { // existing record if (bookingUpdateTime != DateTime.MinValue && (vrBookingRef.BookingChanged ?? DateTime.MinValue) != bookingUpdateTime) { vrBookingRef.BookingChanged = bookingUpdateTime; vrBookingRef.BookingStartTime = bookingStartTime; vrBookingRef.BookingEndTime = bookingEndTime; if (vrBookingRef.NumberOfBookingTotal < bookingTotalNum) // add people { vrBookingRef.NumberOfBookingLeft += (bookingTotalNum - vrBookingRef.NumberOfBookingTotal); } else if (vrBookingRef.NumberOfBookingTotal > bookingTotalNum) // remove people { vrBookingRef.NumberOfBookingLeft -= (vrBookingRef.NumberOfBookingTotal - bookingTotalNum); } vrBookingRef.NumberOfBookingTotal = bookingTotalNum; // value guard if (vrBookingRef.NumberOfBookingLeft > vrBookingRef.NumberOfBookingTotal) { vrBookingRef.NumberOfBookingLeft = vrBookingRef.NumberOfBookingTotal; } else if (vrBookingRef.NumberOfBookingLeft < 0) { vrBookingRef.NumberOfBookingLeft = 0; } } if (bookingDeleteTime != DateTime.MinValue && (vrBookingRef.BookingDeleted ?? DateTime.MinValue) != bookingDeleteTime) { vrBookingRef.BookingDeleted = bookingDeleteTime; } } else { // new record // VRBookingReference vrbr = new VRBookingReference() { BookingStartTime = bookingStartTime, BookingEndTime = bookingEndTime, Reference = brj.booking_id, IsTimedTiming = true, IsNonTimedTiming = false, Duration = sessionLength, NumberOfBookingTotal = bookingTotalNum, NumberOfBookingLeft = bookingTotalNum, TimeStampCreate = DateTime.Now }; m.Add(vrbr); } m.SaveChanges(); } } }