示例#1
0
        private void SetSysConfig(List <SystemConfig> systemConfig)
        {
            using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel())
            {
                foreach (SystemConfig sc in systemConfig)
                {
                    VRConfiguration vc = m.VRConfigurations.Where(x => x.Type == Enum.GetName(typeof(VRGameSelectorServerDTO.Enums.SysConfigType), sc.Type)).FirstOrDefault();

                    if (vc != null)
                    {
                        // existing
                        vc.Value = sc.Value;
                    }
                    else
                    {
                        // new
                        VRConfiguration vrc = new VRConfiguration()
                        {
                            Type  = Enum.GetName(typeof(VRGameSelectorServerDTO.Enums.SysConfigType), sc.Type),
                            Value = sc.Value
                        };

                        m.Add(vrc);
                    }
                }

                m.SaveChanges();
                //m.Cache.Release(m.VRConfigurations);
            }
        }
示例#2
0
        private void AddTileConfig(ConnectionInfo connectionInfo, VRGameSelectorServerDTO.TileConfig tileConfig)
        {
            using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel())
            {
                VRTileconfig vtc = new VRTileconfig()
                {
                    TileGUID        = tileConfig.TileGUID,
                    TileTitle       = tileConfig.TileTitle,
                    TileHeight      = tileConfig.TileHeight,
                    TileWidth       = tileConfig.TileWidth,
                    TileDesc        = tileConfig.TileDesc,
                    Command         = tileConfig.Command,
                    Arguments       = tileConfig.Arguments,
                    WorkingPath     = tileConfig.WorkingPath,
                    Order           = tileConfig.Order,
                    TileRowNumber   = tileConfig.TileRowNumber,
                    TileConfigSetID = tileConfig.TileConfigSetID,
                    VRTileconfigID  = tileConfig.TileconfigID,
                    ImageData       = tileConfig.TileImage.ImageData,
                    AgeRequire      = tileConfig.AgeRequire,
                    VideoURL        = tileConfig.VideoURL,
                    IsDeleted       = false
                };

                m.Add(vtc);
                m.SaveChanges();
                //m.Cache.Release(m.VRTileconfigs);
            }

            GetTileConfigList(connectionInfo, tileConfig.TileConfigSetID);
        }
        private void ProcessPlayLog(ConnectionInfo connectionInfo, PlayLog playLog)
        {
            string ipAdd = ((IPEndPoint)connectionInfo.RemoteEndPoint).Address.MapToIPv4().ToString();

            InternalClientStatus iClientStatus = _internalClientStatus.Where(x => x.ClientIP == ipAdd).FirstOrDefault();

            if (iClientStatus != null)
            {
                int tileID = 0;

                int.TryParse(playLog.TileID, out tileID);

                using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel())
                {
                    VRTileconfig    vtc = m.VRTileconfigs.Where(x => x.ID == tileID && !x.IsDeleted).FirstOrDefault();
                    VRClienthistory vrh = new VRClienthistory();

                    vrh.VRClientID = iClientStatus.ClientID;

                    if (tileID == -1)
                    {
                        vrh.TileConfigID = -1;
                    }
                    else
                    {
                        vrh.TileConfigID = (vtc != null) ? vtc.ID : 0;
                    }

                    if (playLog.SignalType == VRGameSelectorDTO.Enums.PlayLogSignalType.Start)
                    {
                        // start game
                        if (tileID > 0)
                        {
                            string imagePath = (vtc.ImageData.Length > 0) ? vtc.ID.ToString() + ".bmp" : ""; // full path will be decided on client end
                            VRGameSelectorDTO.ImageInfo ii         = new VRGameSelectorDTO.ImageInfo(vtc.ImageData);
                            VRGameSelectorDTO.Tile      tileConfig = new Tile(vtc.TileHeight, vtc.TileWidth, vtc.TileRowNumber, vtc.ID.ToString(), vtc.TileTitle, imagePath, vtc.TileDesc, vtc.Command, vtc.Arguments, vtc.WorkingPath, ii, vtc.AgeRequire, vtc.VideoURL);

                            iClientStatus.ClientRunningModeSetup.TileConfig = tileConfig;
                        }

                        iClientStatus.ClientRunningModeSetup.CurrentRunningTileID = tileID;

                        vrh.StartTime = DateTime.Now;
                    }
                    else
                    {
                        // end game
                        iClientStatus.ClientRunningModeSetup.CurrentRunningTileID = 0;
                        iClientStatus.ClientRunningModeSetup.TileConfig           = null;

                        vrh.EndTime = DateTime.Now;
                    }

                    m.Add(vrh);
                    m.SaveChanges();
                    //m.Cache.Release(m.VRClienthistories);
                }
            }
        }
示例#4
0
        private void AddConfigSetList(ConnectionInfo connectionInfo, ConfigSet configSet)
        {
            using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel())
            {
                VRTileconfigset vcs = new VRTileconfigset()
                {
                    Name      = configSet.Name,
                    IsDeleted = false
                };

                m.Add(vcs);
                m.SaveChanges();
                //m.Cache.Release(m.VRTileconfigsets);
            }

            GetConfigSetList(connectionInfo);
        }
示例#5
0
        private void CreateManageLog(VRGameSelectorServerDTO.Enums.SourceType sourceType, VRGameSelectorServerDTO.Enums.OperationType operationType, string sourceIdentity, int?clientID, int?tileID, string ticketGUID, string additionalInfo)
        {
            using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel())
            {
                VRManageLog vrManLog = new VRManageLog()
                {
                    Source         = sourceType.ToString(),
                    SourceIdentity = sourceIdentity,
                    Operation      = operationType.ToString(),
                    AdditonalInfo  = additionalInfo,
                    VRClientID     = clientID,
                    VRTileconfigID = tileID,
                    VRTicketGUID   = ticketGUID,
                    TimeStamp      = DateTime.Now
                };

                m.Add(vrManLog);
                m.SaveChanges();
            }
        }
示例#6
0
        private void AddClientConfig(ConnectionInfo connectionInfo, Client client)
        {
            using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel())
            {
                VRClient vrc = new VRClient()
                {
                    IPAddress         = client.IPAddress,
                    DashboardModuleIP = client.DashboardModuleIP,
                    TileConfigSetID   = client.TileConfigSetID,
                    Tileconfigset     = null,
                    MachineName       = "",
                    VRClienthistories = null,
                    IsDeleted         = false
                };

                m.Add(vrc);
                m.SaveChanges();
                //m.Cache.Release(m.VRClients);
            }

            //BuildInternalClientStatus();

            GetConfiguredClientList(connectionInfo);
        }
示例#7
0
        private void GenerateBarcode(ConnectionInfo connectionInfo, BarcodeInfo barcodeInfo)
        {
            using (VRArcadeDataAccessModel m = new VRArcadeDataAccessModel())
            {
                if (barcodeInfo.BarcodeItems.Count > 0)
                {
                    foreach (BarcodeItem bi in barcodeInfo.BarcodeItems)
                    {
                        VRTicketType vrTT       = null;
                        string       ticketType = "";
                        Guid         guid       = Utility.CreateGuid();

                        bi.DateStampCreate = DateTime.Now;

                        if (bi.IsPrintingTicket)
                        {
                            ticketType = "TICKET";
                        }
                        else if (bi.IsPrintingKey)
                        {
                            ticketType = bi.KeyName;
                        }

                        vrTT = m.VRTicketTypes.Where(x => x.Type == ticketType).FirstOrDefault();


                        VRTicket vrt = new VRTicket()
                        {
                            GUID            = guid.ToString(),
                            Minutes         = bi.Minutes,
                            TimeStampCreate = bi.DateStampCreate,
                            VRTicketTypeID  = (vrTT != null) ? (int?)vrTT.ID : null,
                            WaiverLogID     = bi.WaiverLogID
                        };

                        //string t = Convert.ToBase64String(guid.ToByteArray()).Replace("=", "");

                        //byte[] b = Convert.FromBase64String(t + "==");

                        //var g = new Guid(b);

                        m.Add(vrt);
                        bi.GUID = guid;
                    }

                    m.SaveChanges();
                    //m.Cache.Release(m.VRTickets);

                    VRCommandServer vcs = new VRCommandServer(VRGameSelectorServerDTO.Enums.ControlMessage.GENERATE_BARCODE, barcodeInfo);

                    if (connectionInfo != null)
                    {
                        SendCommandToPeer(connectionInfo, vcs);
                    }
                    else
                    {
                        foreach (ConnectionInfo managingSysConn in _targetManagingSystemConnection)
                        {
                            SendCommandToPeer(managingSysConn, vcs);
                        }
                    }
                }
            }
        }
示例#8
0
        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();
                }
            }
        }