示例#1
0
 public object Get(Sessions request)
 {
     using (var db = _connectionFactory.Open())
     {
         var sessions = db.Select<Session>().Where(x => x.JournalId == request.JournalId);
         return sessions;
     }
 }
示例#2
0
 protected override void OnMessage(MessageEventArgs e)
 {
     Sessions.Broadcast(String.Format("{0}: {1}", _name, e.Data));
 }
示例#3
0
        private void OnRobberyRequest([FromSource] Player source, string location)
        {
            var playerSession = Sessions.GetPlayer(source);

            if (playerSession == null || playerSession.GetServerData("Character.CanDoRobbery", false))
            {
                return;
            }

            var robberyModel = GetRobberyModel(location);
            var copsOnDuty   = Server.Get <JobHandler>().GetPlayersOnJob(JobType.Police);

            Log.Verbose($"{source.Name} is requesting to rob {location} vault");
            if (!robberyModel.IsBeingRobbed && robberyModel.IsRobbable && copsOnDuty.Count >= robberyModel.RequiredPolice)
            {
                playerSession.SetServerData("Character.CanDoRobbery", true);
                robberyModel.IsBeingRobbed = true;
                source.TriggerEvent("Robbery.StartRobbery", true);
                StartGlobalCooldown(robberyModel);
                var nameSplit = robberyModel.LocationName.AddSpacesToCamelCase().Split(' ').ToList();
                nameSplit.Remove(nameSplit.Last());
                Server.Instances.Jobs.SendJobAlert(JobType.Police | JobType.EMS, "[Dispatch]", $"Silent Alarm | {string.Join(" ", nameSplit)} general store vault", ConstantColours.Dispatch);
                Task.Factory.StartNew(async() =>
                {
                    playerSession.SetServerData("Character.CanDoRobbery", true);
                    await BaseScript.Delay(1200000);
                    playerSession.SetServerData("Character.CanDoRobbery", false);
                });
                Task.Factory.StartNew(async() =>
                {
                    var vaultLocation = source.Character.Position;
                    while (robberyModel.IsBeingRobbed)
                    {
                        await BaseScript.Delay(60000);

                        var playerNearLocaiton = false;
                        var currentPlayers     = Sessions.PlayerList;

                        foreach (var player in currentPlayers)
                        {
                            if (playerNearLocaiton)
                            {
                                continue;
                            }

                            if (player.GetPlayerPosition().DistanceToSquared(vaultLocation) <= 20.0f)
                            {
                                playerNearLocaiton = true;
                            }
                        }

                        if (!playerNearLocaiton)
                        {
                            Log.Verbose($"No player was found near the vault {robberyModel.LocationName} setting IsBeingRobbed to false");
                            robberyModel.IsBeingRobbed = false;

                            return;
                        }
                    }
                });
            }
            else
            {
                source.TriggerEvent("Robbery.StartRobbery", false);
                Log.ToClient("[Robbery]", "This vault is unable to be robbed at this time", ConstantColours.Blue, source);
            }
        }
示例#4
0
        /// <summary>
        /// Creates and adds a few ItemViewModel objects into the Items collection.
        /// </summary>
        public async Task LoadData()
        {
            var manager = new ConferenceManager();
            //bool networkAvailable = false;// App.NetworkMonitor.IsAvailable();

            int nextVersion = -1;


            if (NetworkInterface.GetIsNetworkAvailable())
            {
                nextVersion = await manager.GetLatestVersion();

                if (nextVersion != -1 && (App.CurrentSessionVersion < nextVersion && App.DefaultSessionVersion < nextVersion))
                {
                    var newData = await manager.GetLatestData();

                    var res = await manager.GetData(newData, true);

                    if (res && manager.GetSessions().Any() && manager.GetSpeakers().Any())
                    {
                        App.CurrentSessionData = newData;
                        AppStorageHelper.SaveCurrentSessionData(App.CurrentSessionData);
                        AppStorageHelper.SaveCurrentVersionNumber(nextVersion.ToString());

                        Insights.Track("New Session Data", new Dictionary <string, string> {
                            { "New Version", nextVersion.ToString() },
                            { "Old Version", App.CurrentSessionVersion.ToString() },
                            { "Sessions Count", manager.GetSessions().Count.ToString() },
                            { "Speakers Count", manager.GetSpeakers().Count.ToString() }
                        });
                        App.CurrentSessionVersion = nextVersion;
                    }
                }
            }


            //nextVersion = -1;


            if (String.IsNullOrEmpty(App.CurrentSessionData))
            {
                var sessionData = Utils.ReadFile(Wac2015.Helpers.Settings.StaticData);
                App.CurrentSessionData = sessionData;
                var res = await manager.GetData(sessionData, true);
            }
            else
            {
                await manager.GetData(App.CurrentSessionData, true);
            }
            //var res = await manager.GetData(Settings.ConferenceDataUri);
            //Service.GetData();

            Sessions = manager.GetSessions();

            Speakers = manager.GetSpeakers();
            Speakers = Speakers.OrderBy(s => s.Name).ToObservableCollection();
            if (!String.IsNullOrEmpty(App.SessionId))
            {
                App.CurrentSession =
                    (from s in Sessions
                     where s.Id.ToLower().Equals(App.SessionId.ToLower())
                     select s).FirstOrDefault();
            }

            if (!String.IsNullOrEmpty(App.SpeakerId))
            {
                App.CurrentSpeaker =
                    (from s in Speakers
                     where s.Id.ToLower().Equals(App.SpeakerId.ToLower())
                     select s).FirstOrDefault();
            }

            if (App.SavedSessionIds == null)
            {
                App.SavedSessionIds = new List <string>();
            }
            else if (App.SavedSessionIds != null && App.SavedSessionIds.Count > 0)
            {
                App.SavedSessions = new ObservableCollection <Session>();
                foreach (var sessionId in App.SavedSessionIds)
                {
                    string id      = sessionId;
                    var    session = Sessions.FirstOrDefault(s => s.Id == id);
                    if (session != null)
                    {
                        App.SavedSessions.Add(session);
                    }
                }
            }
            //if (Service.SessionsAreNotOnlineYet)
            //    DiscoveredThatSessionsAreNotOnlineYet = true;

            //needs to get it from iso if available...
            App.Sessions = Sessions;
            App.Speakers = Speakers;

            if (App.SavedSessions == null)
            {
                App.SavedSessions = new ObservableCollection <Session>();
            }

            //SavedSessions = App.SavedSessions;
            Sessions      = Sessions.OrderBy(s => s.Begins).ToObservableCollection();
            SavedSessions = (from s in Sessions
                             join sid in App.SavedSessionIds
                             on s.Id equals sid
                             select s).ToObservableCollection();

            var date = "2015-03-18T09:30:00.0000000+05:30";
            var dt   = DateTime.Parse(date);

            DayOneSessions = (from s in Sessions
                              where s.Begins.Date == dt.Date
                              select s).ToObservableCollection();


            DayOneCollection = SessionKeyGroup <Session> .CreateDateGroups(DayOneSessions, CultureInfo.CurrentCulture,
                                                                           (Session s) => s.Begins, true);

            dt             = dt.AddDays(1);
            DayTwoSessions = (from s in Sessions
                              where s.Begins.Date == dt.Date
                              select s).ToObservableCollection();

            DayTwoCollection = SessionKeyGroup <Session> .CreateDateGroups(DayTwoSessions, CultureInfo.CurrentCulture,
                                                                           (Session s) => s.Begins, true);

            TimeBasedCollection = SessionKeyGroup <Session> .CreateDateGroups(Sessions, CultureInfo.CurrentCulture,
                                                                              (Session s) => s.Begins, true);

            TrackBasedCollection = SessionKeyGroup <Session> .CreateTrackGroups(Sessions, CultureInfo.CurrentCulture,
                                                                                (Session s) => s.TrackName, false);

            TimeBasedMyAgendaCollection = SessionKeyGroup <Session> .CreateDateGroups(SavedSessions, CultureInfo.CurrentCulture,
                                                                                      (Session s) => s.Begins, true);

            this.IsDataLoaded = true;
            //await LoadTwitterFeeds();
            //if (result != null)
            //    TwitterFeeds = result;
            await Task.Factory.StartNew(async() => { await LoadNews(); });
        }
示例#5
0
 private void BroadcastMessage(string message) => Task.Factory.StartNew(() => Sessions.Broadcast(message));
示例#6
0
 public void Broadcast(string s)
 {
     Sessions.Broadcast(s);
 }
示例#7
0
        /// <summary>
        /// 咨询商品
        /// </summary>
        public ActionResult ConsultProduct()
        {
            //不允许游客访问
            if (WorkContext.Uid < 1)
            {
                return(AjaxResult("nologin", "请先登录"));
            }

            //验证验证码
            if (CommonHelper.IsInArray(WorkContext.PageKey, WorkContext.MallConfig.VerifyPages))
            {
                string verifyCode = WebHelper.GetFormString("verifyCode");//验证码
                if (string.IsNullOrWhiteSpace(verifyCode))
                {
                    return(AjaxResult("emptyverifycode", "验证码不能为空"));;
                }
                else if (verifyCode.ToLower() != Sessions.GetValueString(WorkContext.Sid, "verifyCode"))
                {
                    return(AjaxResult("wrongverifycode", "验证码错误"));;
                }
            }

            int    pid            = WebHelper.GetFormInt("pid");
            int    consultTypeId  = WebHelper.GetFormInt("consultTypeId");
            string consultMessage = WebHelper.GetFormString("consultMessage");

            PartProductInfo partProductInfo = Products.GetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(AjaxResult("noproduct", "请选择商品"));
            }

            StoreInfo storeInfo = Stores.GetStoreById(partProductInfo.StoreId);

            if (storeInfo.State != (int)StoreState.Open)
            {
                return(AjaxResult("noproduct", "请选择商品"));
            }

            if (consultTypeId < 1 || ProductConsults.GetProductConsultTypeById(consultTypeId) == null)
            {
                return(AjaxResult("noproductconsulttype", "请选择咨询类型"));
            }
            ;

            if (string.IsNullOrWhiteSpace(consultMessage))
            {
                return(AjaxResult("noconsultmessage", "请填写咨询内容"));
            }
            ;
            if (consultMessage.Length > 100)
            {
                return(AjaxResult("muchconsultmessage", "咨询内容内容太长"));
            }
            ;
            if (!SecureHelper.IsSafeSqlString(consultMessage))
            {
                return(AjaxResult("dangerconsultmessage", "咨询内中包含非法字符"));
            }
            ;

            ProductConsults.ConsultProduct(pid, consultTypeId, WorkContext.Uid, partProductInfo.StoreId, DateTime.Now, WebHelper.HtmlEncode(consultMessage), WorkContext.NickName, partProductInfo.Name, partProductInfo.ShowImg, WorkContext.IP);
            return(AjaxResult("success", Url.Action("product", new RouteValueDictionary {
                { "pid", pid }
            })));;
        }
 public static void AddSession(RemoteDesktopSessionInfo session)
 {
     Sessions.Add(session);
 }
 public static void RemoveSession(RemoteDesktopSessionInfo session)
 {
     Sessions.Remove(session);
 }
 public override string ToString()
 {
     return("ID = " + Id + " ,Name = " + Name + "  " + Sessions.Select(c => c.ToString()));
 }
示例#11
0
        protected override void OnMessage(MessageEventArgs e)
        {
            Status test = ConvertTos.ConvertToStatus(4);


            string msg         = e.Data;
            Packet messageJSON = JsonConvert.DeserializeObject <Packet>(e.Data);



            int test2 = ConvertTos.ConvertToInt(messageJSON.GetStatus);

            // Sessions.Broadcast(messageJSON.Message);

            //int type =



            switch (messageJSON.GetStatus)
            {
            case Status.loginValidate:
            {
                //An authentication rquest is request
                Authentication(messageJSON);
                break;
            }

            case Status.messageSend:
            {
                //Send message to a specific client

                SendMessage(messageJSON);



                break;
            }

            case Status.contactListRequest:
            {
                SendContactList(messageJSON);
                break;
            }

            case Status.connectionSuccess:
                //Authentication(messageJSON);
                MessageBox.Show("Incorrect =(");
                break;

            case Status.requestChatRoom:
            {
                //Makes a new Chatroom for the user
                ValidateOnline(messageJSON);
                break;
            }

            case Status.loginTrue:
            {
                MessageBox.Show("This is correct. =)");
                break;
            }

            case Status.onlineValidate:
            {
                break;
            }

            case Status.addContact:
            {
                AddContact(messageJSON);


                break;
            }

            case Status.removeContactRequest:
            {
                RemoveContact(messageJSON);
                break;
            }

            case Status.logout:
            {
                LogoutSession(messageJSON);



                break;
            }

            case Status.addContactChatRequest:
            {
                AddUserToChatRoom(messageJSON);
                break;
            }

            default:


                //Unknown request
                Packet s = new Packet(Status.undefined);
                Sessions.SendTo(JsonConvert.SerializeObject(s), messageJSON.GetID);
                break;
            }
        }
示例#12
0
 protected override void OnMessage(MessageEventArgs e)
 {
     Sessions.Broadcast(e.Data + _suffix);
 }
示例#13
0
        protected override void Initialize(RequestContext requestContext)
        {
            base.Initialize(requestContext);
            this.ValidateRequest = false;

            WorkContext.IsHttpAjax  = WebHelper.IsAjax();
            WorkContext.IP          = WebHelper.GetIP();
            WorkContext.RegionInfo  = Regions.GetRegionByIP(WorkContext.IP);
            WorkContext.RegionId    = WorkContext.RegionInfo.RegionId;
            WorkContext.Url         = WebHelper.GetUrl();
            WorkContext.UrlReferrer = WebHelper.GetUrlReferrer();

            //获得用户唯一标示符sid
            WorkContext.Sid = ShopUtils.GetSidCookie();
            if (WorkContext.Sid.Length == 0)
            {
                //生成sid
                WorkContext.Sid = Sessions.GenerateSid();
                //将sid保存到cookie中
                ShopUtils.SetSidCookie(WorkContext.Sid);
            }

            PartUserInfo partUserInfo;

            //获得用户id
            int uid = ShopUtils.GetUidCookie();

            if (uid < 1)//当用户为游客时
            {
                //创建游客
                partUserInfo = Users.CreatePartGuest();
            }
            else//当用户为会员时
            {
                //获得保存在cookie中的密码
                string encryptPwd = ShopUtils.GetCookiePassword();
                //防止用户密码被篡改为危险字符
                if (encryptPwd.Length == 0 || !SecureHelper.IsBase64String(encryptPwd))
                {
                    //创建游客
                    partUserInfo = Users.CreatePartGuest();
                    encryptPwd   = string.Empty;
                    ShopUtils.SetUidCookie(-1);
                    ShopUtils.SetCookiePassword("");
                }
                else
                {
                    partUserInfo = Users.GetPartUserByUidAndPwd(uid, ShopUtils.DecryptCookiePassword(encryptPwd));
                    if (partUserInfo != null)
                    {
                        //发放登录积分
                        Credits.SendLoginCredits(ref partUserInfo, DateTime.Now);
                    }
                    else//当会员的账号或密码不正确时,将用户置为游客
                    {
                        partUserInfo = Users.CreatePartGuest();
                        encryptPwd   = string.Empty;
                        ShopUtils.SetUidCookie(-1);
                        ShopUtils.SetCookiePassword("");
                    }
                }
                WorkContext.EncryptPwd = encryptPwd;
            }

            //设置用户等级
            if (UserRanks.IsBanUserRank(partUserInfo.UserRid) && partUserInfo.LiftBanTime <= DateTime.Now)
            {
                UserRankInfo userRankInfo = UserRanks.GetUserRankByCredits(partUserInfo.PayCredits);
                Users.UpdateUserRankByUid(partUserInfo.Uid, userRankInfo.UserRid);
                partUserInfo.UserRid = userRankInfo.UserRid;
            }

            //当用户被禁止访问时重置用户为游客
            if (partUserInfo.UserRid == 1)
            {
                partUserInfo           = Users.CreatePartGuest();
                WorkContext.EncryptPwd = string.Empty;
                ShopUtils.SetUidCookie(-1);
                ShopUtils.SetCookiePassword("");
            }

            WorkContext.PartUserInfo = partUserInfo;

            WorkContext.Uid             = partUserInfo.Uid;
            WorkContext.UserName        = partUserInfo.UserName;
            WorkContext.UserEmail       = partUserInfo.Email;
            WorkContext.UserMobile      = partUserInfo.Mobile;
            WorkContext.Password        = partUserInfo.Password;
            WorkContext.NickName        = partUserInfo.NickName;
            WorkContext.Avatar          = partUserInfo.Avatar;
            WorkContext.PayCreditName   = Credits.PayCreditName;
            WorkContext.PayCreditCount  = partUserInfo.PayCredits;
            WorkContext.RankCreditName  = Credits.RankCreditName;
            WorkContext.RankCreditCount = partUserInfo.RankCredits;

            WorkContext.UserRid      = partUserInfo.UserRid;
            WorkContext.UserRankInfo = UserRanks.GetUserRankById(partUserInfo.UserRid);
            WorkContext.UserRTitle   = WorkContext.UserRankInfo.Title;
            //设置用户管理员组
            WorkContext.AdminGid       = partUserInfo.AdminGid;
            WorkContext.AdminGroupInfo = AdminGroups.GetAdminGroupById(partUserInfo.AdminGid);
            WorkContext.AdminGTitle    = WorkContext.AdminGroupInfo.Title;

            //设置当前控制器类名
            WorkContext.Controller = RouteData.Values["controller"].ToString().ToLower();
            //设置当前动作方法名
            WorkContext.Action  = RouteData.Values["action"].ToString().ToLower();
            WorkContext.PageKey = string.Format("/{0}/{1}", WorkContext.Controller, WorkContext.Action);

            //当前商城主题
            WorkContext.Theme = WorkContext.ShopConfig.MobileTheme;
            //设置图片cdn
            WorkContext.ImageCDN = WorkContext.ShopConfig.ImageCDN;
            //设置csscdn
            WorkContext.CSSCDN = WorkContext.ShopConfig.CSSCDN;
            //设置脚本cdn
            WorkContext.ScriptCDN = WorkContext.ShopConfig.ScriptCDN;

            //在线总人数
            WorkContext.OnlineUserCount = OnlineUsers.GetOnlineUserCount();
            //在线游客数
            WorkContext.OnlineGuestCount = OnlineUsers.GetOnlineGuestCount();
            //在线会员数
            WorkContext.OnlineMemberCount = WorkContext.OnlineUserCount - WorkContext.OnlineGuestCount;
            //搜索词
            WorkContext.SearchWord = string.Empty;
            //购物车中商品数量
            WorkContext.CartProductCount = Carts.GetCartProductCountCookie();
        }
示例#14
0
 public static void  RegisterSession(string SessionName, Type ISession, Type Session)
 {
     Sessions.Add(ISession, Session);
     SessionsByName.Add(SessionName, Session);
 }
示例#15
0
        public static string Start(string etlPath, IEnumerable<ProviderInfo> providerInfo, int bufferSizeMB = 64)
        {
            EnsureUnloadHandlerRegistered();

            var userSessionName = "xunit.performance.logger." + Guid.NewGuid().ToString();
            Sessions sessions = new Sessions();
            sessions.UserFileName = Path.ChangeExtension(etlPath, ".user.etl");
            sessions.KernelFileName = Path.ChangeExtension(etlPath, ".kernel.etl");
            sessions.MergedFileName = etlPath;

            var mergedProviderInfo = ProviderInfo.Merge(providerInfo);

            try
            {
                sessions.UserSession = new TraceEventSession(userSessionName, sessions.UserFileName);
                sessions.UserSession.BufferSizeMB = bufferSizeMB;

                var availableCpuCounters = TraceEventProfileSources.GetInfo();
                var cpuCounterIds = new List<int>();
                var cpuCounterIntervals = new List<int>();
                foreach (var cpuInfo in mergedProviderInfo.OfType<CpuCounterInfo>())
                {
                    ProfileSourceInfo profInfo;
                    if (availableCpuCounters.TryGetValue(cpuInfo.CounterName, out profInfo))
                    {
                        cpuCounterIds.Add(profInfo.ID);
                        cpuCounterIntervals.Add(Math.Min(profInfo.MaxInterval, Math.Max(profInfo.MinInterval, cpuInfo.Interval)));
                    }
                }

                if (cpuCounterIds.Count > 0)
                    TraceEventProfileSources.Set(cpuCounterIds.ToArray(), cpuCounterIntervals.ToArray());

                var kernelInfo = mergedProviderInfo.OfType<KernelProviderInfo>().FirstOrDefault();
                if (kernelInfo != null && NeedSeparateKernelSession(kernelInfo.Keywords))
                {
                    sessions.KernelSession = new TraceEventSession(KernelTraceEventParser.KernelSessionName, sessions.KernelFileName);
                    sessions.KernelSession.BufferSizeMB = bufferSizeMB;
                }
                else
                {
                    sessions.KernelFileName = sessions.UserFileName;
                    sessions.KernelSession = sessions.UserSession;
                }

                if (kernelInfo != null)
                {
                    var kernelKeywords = (KernelTraceEventParser.Keywords)kernelInfo.Keywords;
                    var kernelStackKeywords = (KernelTraceEventParser.Keywords)kernelInfo.StackKeywords;
                    sessions.KernelSession.EnableKernelProvider(kernelKeywords, kernelStackKeywords);
                }

                foreach (var userInfo in mergedProviderInfo.OfType<UserProviderInfo>())
                    sessions.UserSession.EnableProvider(userInfo.ProviderGuid, userInfo.Level, userInfo.Keywords);

                s_sessions[userSessionName] = sessions;
            }
            catch
            {
                sessions.Close();
                throw;
            }

            return userSessionName;
        }
示例#16
0
        /// <summary>
        /// Uploads sessions queue to Countly server
        /// </summary>
        /// <returns></returns>
        private static async Task <bool> UploadSessions()
        {
            lock (sync)
            {
                if (uploadInProgress)
                {
                    return(true);
                }

                uploadInProgress = true;
            }

            SessionEvent sessionEvent = null;

            lock (sync)
            {
                if (Sessions.Count > 0)
                {
                    sessionEvent = Sessions[0];
                }
            }

            if (sessionEvent != null)
            {
                ResultResponse resultResponse = await Api.SendSession(ServerUrl, sessionEvent, (UserDetails.isChanged)?UserDetails : null);

                if (resultResponse != null && resultResponse.IsSuccess)
                {
                    UserDetails.isChanged = false;

                    SaveUserDetails();

                    lock (sync)
                    {
                        uploadInProgress = false;

                        try
                        {
                            Sessions.RemoveAt(0);
                        }
                        catch { }

                        Storage.SaveToFile(sessionsFilename, Sessions);
                    }

                    if (Sessions.Count > 0)
                    {
                        return(await UploadSessions());
                    }
                    else
                    {
                        return(true);
                    }
                }
                else
                {
                    uploadInProgress = false;

                    return(false);
                }
            }
            else
            {
                uploadInProgress = false;

                return(true);
            }
        }
 public void SendTo(string message, string id)
 {
     Sessions.SendTo(message, id);
 }
示例#18
0
 public bool IsMemberOfGroup(long entityId) =>
 Sessions?.Any(s => s?.Character != null && (s.Character.CharacterId == entityId || s.Character.Mates.Any(m => m.IsTeamMember && m.MateTransportId == entityId))) == true;
        private static DataSet ResultContents(EnumerableRowCollection <DataRow> dataRows)
        {
            var statements = new List <SqlStatement>();

            if (dataRows.Any(o => o["ReferenceType"].ToString() == "Sites"))
            {
                statements.Add(Rds.SelectSites(
                                   dataTableName: "Sites",
                                   column: Rds.SitesColumn()
                                   .ParentId(_as: "SiteId")
                                   .SiteId(_as: "Id")
                                   .Title()
                                   .Body(),
                                   where : Rds.SitesWhere()
                                   .TenantId(Sessions.TenantId())
                                   .SiteId_In(dataRows
                                              .Where(o => o["ReferenceType"].ToString() == "Sites")
                                              .Select(o => o["ReferenceId"].ToLong()))));
            }
            if (dataRows.Any(o => o["ReferenceType"].ToString() == "Issues"))
            {
                statements.Add(Rds.SelectIssues(
                                   dataTableName: "Issues",
                                   column: Rds.IssuesColumn()
                                   .SiteId()
                                   .IssueId(_as: "Id")
                                   .Title()
                                   .Body(),
                                   where : Rds.IssuesWhere()
                                   .IssueId_In(dataRows
                                               .Where(o => o["ReferenceType"].ToString() == "Issues")
                                               .Select(o => o["ReferenceId"].ToLong()))));
            }
            if (dataRows.Any(o => o["ReferenceType"].ToString() == "Results"))
            {
                statements.Add(Rds.SelectResults(
                                   dataTableName: "Results",
                                   column: Rds.ResultsColumn()
                                   .SiteId()
                                   .ResultId(_as: "Id")
                                   .Title()
                                   .Body(),
                                   where : Rds.ResultsWhere()
                                   .ResultId_In(dataRows
                                                .Where(o => o["ReferenceType"].ToString() == "Results")
                                                .Select(o => o["ReferenceId"].ToLong()))));
            }
            if (dataRows.Any(o => o["ReferenceType"].ToString() == "Wikis"))
            {
                statements.Add(Rds.SelectWikis(
                                   dataTableName: "Wikis",
                                   column: Rds.WikisColumn()
                                   .SiteId()
                                   .WikiId(_as: "Id")
                                   .Title()
                                   .Body(),
                                   where : Rds.WikisWhere()
                                   .WikiId_In(dataRows
                                              .Where(o => o["ReferenceType"].ToString() == "Wikis")
                                              .Select(o => o["ReferenceId"].ToLong()))));
            }
            return(Rds.ExecuteDataSet(statements: statements.ToArray()));
        }
示例#20
0
 public bool IsMemberOfGroup(ClientSession session) => Sessions?.Any(s => s?.Character?.CharacterId == session.Character.CharacterId) == true;
 public string MoveTargets()
 {
     SetSite();
     return(new ResponseCollection().Html("#MoveTargets", new HtmlBuilder()
                                          .OptionCollection(
                                              optionCollection: MoveTargets(
                                                  Rds.ExecuteTable(statements: new SqlStatement(
                                                                       commandText: Def.Sql.MoveTarget,
                                                                       param: Rds.SitesParam()
                                                                       .TenantId(Sessions.TenantId())
                                                                       .ReferenceType(Site.ReferenceType)
                                                                       .SiteId(Site.SiteId)
                                                                       .Permissions_PermissionType(
                                                                           Permissions.Types.Update.ToInt().ToString())))
                                                  .AsEnumerable()))).ToJson());
 }
示例#22
0
 public void LeaveGroup(ClientSession session)
 {
     session.Character.Group = null;
     if (Sessions.Find(c => c.Character.IsCoupleOfCharacter(session.Character.CharacterId)) is ClientSession couple)
     {
         session.Character.RemoveBuff(319, true);
         couple.Character.RemoveBuff(319, true);
     }
     Sessions.RemoveAll(s => s?.Character.CharacterId == session.Character.CharacterId);
     if (IsLeader(session) && GroupType != GroupType.Group && Sessions.Count > 1)
     {
         Sessions.ForEach(s => s.SendPacket(UserInterfaceHelper.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("TEAM_LEADER_CHANGE"), Sessions.ElementAt(0).Character?.Name), 0)));
     }
 }
示例#23
0
 public void Broadcast(string message)
 {
     Sessions.Broadcast("Broadcasted " + message);
 }
示例#24
0
        public bool Handle(IRequestMessage msg)
        {
            try
            {
                Type msgType = msg.GetType();
                if (typeof(IRequestMessage).IsAssignableFrom(msgType))
                {
                    if (typeof(ModifyCancelOrder) == msgType)
                    {
                        Counters.IncrementCounter(CountersConstants.ClientsReplaceOrderReqs);


                        ModifyCancelOrder modifyOrder = (ModifyCancelOrder)msg;
                        SingleOrder       order       = OrdersManager.GetOrder(modifyOrder.RequesterOrderID);

                        #region order existanse validation
                        if (order == null)
                        {
                            Sessions.Push(Sessions.GetUsername(modifyOrder.ClientKey), new IResponseMessage[] { new Fix_OrderReplaceRefusedByService()
                                                                                                                {
                                                                                                                    ClientKey = modifyOrder.ClientKey, RefuseReason = "Order Not Found!", RequesterOrderID = modifyOrder.RequesterOrderID
                                                                                                                } });
                            SystemLogger.LogEventAsync(string.Format("Order Not Found RequesterID {0}  ", modifyOrder.RequesterOrderID));
                            return(true);
                        }
                        #endregion order existanse validation

                        lock (order)
                        {
                            #region check order activation
                            // check ispending before isactive becoz a pendingnew order might be not isactive but ispending
                            bool isPending, isMcsdPending = false;
                            isPending     = Convert.ToBoolean(order[SingleOrderProperties.IsPending]);
                            isMcsdPending = Convert.ToBoolean(order[SingleOrderProperties.IsPendingMcsd]);

                            if (isPending || isMcsdPending)
                            {
                                Sessions.Push(Sessions.GetUsername(modifyOrder.ClientKey), new IResponseMessage[] { new Fix_OrderReplaceRefusedByService()
                                                                                                                    {
                                                                                                                        ClientKey = modifyOrder.ClientKey, RefuseReason = !isMcsdPending ? "Order is in pending request" : "Awaiting for allocation response", RequesterOrderID = modifyOrder.RequesterOrderID
                                                                                                                    } });
                                return(true);
                            }

                            bool isActive = false;
                            isActive = Convert.ToBoolean(order[SingleOrderProperties.IsActive]);
                            if (!isActive)
                            {
                                Sessions.Push(Sessions.GetUsername(modifyOrder.ClientKey), new IResponseMessage[] { new Fix_OrderReplaceRefusedByService()
                                                                                                                    {
                                                                                                                        ClientKey = modifyOrder.ClientKey, RefuseReason = "Order not active any more", RequesterOrderID = modifyOrder.RequesterOrderID
                                                                                                                    } });
                                return(true);
                            }


                            #endregion check order activation

                            #region order validation
                            // ValidateOrder
                            string validation = ValidateOrder(modifyOrder, order);
                            if (validation != "valid")
                            {
                                Sessions.Push(Sessions.GetUsername(modifyOrder.ClientKey), new IResponseMessage[] { new Fix_OrderReplaceRefusedByService()
                                                                                                                    {
                                                                                                                        ClientKey = modifyOrder.ClientKey, RefuseReason = validation, RequesterOrderID = modifyOrder.RequesterOrderID
                                                                                                                    } });
                                return(true);
                            }
                            #endregion order validation

                            // handle ClOrderID and OrigClOrdID
                            OrdersManager.HandleModifyOrder(Sessions.GetUsername(modifyOrder.ClientKey), modifyOrder.ClientKey, modifyOrder.RequesterOrderID, (long)order[SingleOrderProperties.OrderID], modifyOrder.Quantity, Math.Round(modifyOrder.Price, m_orderPriceDigitsRounding), modifyOrder.OrderType, modifyOrder.TimeInForce, modifyOrder.OptionalParam);
                            return(true);
                        }
                    }
                }
                return(false);
            }
            catch (Exception ex)
            {
                Counters.IncrementCounter(CountersConstants.ExceptionMessages);
                SystemLogger.LogErrorAsync("ModifyCancelOrderHandler Error: " + ex.Message);
                return(true);
            }
        }
示例#25
0
 private static string Title()
 {
     if (Sessions.LoggedIn() && Parameters.Service.ShowTenantTitle)
     {
         var title = Rds.ExecuteScalar_string(statements:
                                              Rds.SelectTenants(
                                                  column: Rds.TenantsColumn().Title(),
                                                  where : Rds.TenantsWhere().TenantId(Sessions.TenantId())));
         return(!title.IsNullOrEmpty()
             ? title
             : Displays.ProductName());
     }
     else
     {
         return(Displays.ProductName());
     }
 }
示例#26
0
 public void TryCreate()
 {
     Sessions.TryCreate();
 }
示例#27
0
 protected override void OnClose(CloseEventArgs e)
 {
     Sessions.Broadcast(String.Format("{0} got logged off...", _name));
 }
示例#28
0
 public void TryClose()
 {
     Sessions.TryClose();
 }
示例#29
0
 public void RegisterSession(ClientSession clientSession)
 {
     Sessions.TryAdd(clientSession.SessionId, clientSession);
 }
示例#30
0
        protected override void OnMessage(MessageEventArgs e)
        {
            ProperMessage recmsg = JsonConvert.DeserializeObject <ProperMessage>(e.Data);

            Console.WriteLine($"Message received: {e.Data}");

            if (recmsg.messageType == MessageType.Join)
            {
                Console.WriteLine("Player joined");
                Console.WriteLine($"Data: {recmsg.messageData}");
                List <Player> _players = _game.getPlayers();
                if (_players.Count < 2)
                {
                    Player player = JsonConvert.DeserializeObject <Player>(recmsg.messageData);
                    player.sessionId = ID;
                    //_players.Add(player);
                    _game.AddPlayer(player);
                    Console.WriteLine(_game.getPlayers().Count);
                    Console.WriteLine(JsonConvert.SerializeObject(_game.getPlayers()));
                    ProperMessage response = new ProperMessage
                    {
                        messageType = MessageType.JoinAccept,
                        messageData = JsonConvert.SerializeObject(player)
                    };
                    SendTest(JsonConvert.SerializeObject(response));
                    //response = new ProperMessage { messageType = MessageType.OpponentInfo, messageData = JsonConvert.SerializeObject(_players[0])};
                    //Send(JsonConvert.SerializeObject(response));
                    if (_players.Count == 2)
                    {
                        //response = new ProperMessage { messageType = MessageType.OpponentInfo, messageData = JsonConvert.SerializeObject(player)};
                        //Sessions.SendTo(JsonConvert.SerializeObject(response), _players[0].sessionId);
                    }
                }
                else
                {
                    ProperMessage response = new ProperMessage
                    {
                        messageType = MessageType.JoinDeny, messageData = null
                    };
                    SendTest(JsonConvert.SerializeObject(response));
                }
            }

            if (recmsg.messageType == MessageType.RoundPlay)
            {
                List <Player> _players = _game.getPlayers();
                Player        player   = JsonConvert.DeserializeObject <Player>(recmsg.messageData);
                if (VerifyRoundPlay(player))
                {
                    player.lockedIn = true;
                    var thisPlayerIndex = _players.IndexOf(_players.Find(p => p.sessionId == ID));
                    Console.WriteLine($"Index: {thisPlayerIndex}");
                    player.sessionId          = ID;
                    _players[thisPlayerIndex] = player;
                    Console.WriteLine("Accepted Player Move");
                    Console.WriteLine($"Data: {e.Data}");
                    ProperMessage response = new ProperMessage {
                        messageType = MessageType.RoundPlayAccept, messageData = null
                    };
                    SendTest(JsonConvert.SerializeObject(response));
                }
                else
                {
                    Console.WriteLine("Denied Player Move");
                    Console.WriteLine($"Data: {e.Data}");
                    ProperMessage response = new ProperMessage {
                        messageType = MessageType.RoundPlayDeny, messageData = null
                    };
                    SendTest(JsonConvert.SerializeObject(response));
                }

                if (_players.Count == 2 && (_players[0].lockedIn && _players[1].lockedIn))
                {
                    var gameRound = DetermineRound(_players[0], _players[1]);
                    Console.WriteLine(JsonConvert.SerializeObject(gameRound));
                    ProperMessage response = new ProperMessage
                    {
                        messageType = MessageType.RoundResult, messageData = JsonConvert.SerializeObject(gameRound)
                    };
                    Sessions.Broadcast(JsonConvert.SerializeObject(response));
                    ResetRound();
                }
            }
        }
示例#31
0
		public void RefreshSegmentDetails(Sessions.Player.Objects.Segment segment, long audioFileLength)
		{
		}
示例#32
0
 public void SendMessage(RemoteMessage message) => Sessions.Broadcast(message.ToJSON());
            public Sessions GetSessions()
            {
                Sessions colSessions = new Sessions();

                try
                {
                    oWTSSessions = oWTSCOM.WTSEnumerateSessions((int)ServerHandle);

                    long SessionID;
                    string SessionUser;
                    long SessionState;
                    string SessionName;

                    foreach (WTSSession oWTSSession in oWTSSessions)
                    {
                        SessionID = oWTSSession.SessionId;
                        SessionUser = oWTSCOM.WTSQuerySessionInformation((int)ServerHandle, oWTSSession.SessionId,
                                                                         5); //WFUsername = 5
                        SessionState = oWTSSession.State;
                        SessionName = oWTSSession.WinStationName + "\r\n";

                        if (SessionUser != "")
                        {
                            if (SessionState == 0)
                            {
                                colSessions.Add(SessionID, Language.strActive, SessionUser, SessionName);
                            }
                            else
                            {
                                colSessions.Add(SessionID, Language.strInactive, SessionUser, SessionName);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg,
                                                        Language.strRdpGetSessionsFailed + Constants.vbNewLine +
                                                        ex.Message, true);
                }

                return colSessions;
            }
 public void Braodcast(string message)
 {
     Sessions.Broadcast(message);
 }