예제 #1
0
        private void InitFriends()
        {
            PBGenSearchParam.Attributes.Add("OnKeyPress", "return DoPostbackOnEnterKey(event, '" + this.findButton.UniqueID + "');");

            pager1.ItemNameSingular = language.GetString("LableFriendSingular");
            pager1.ItemNamePlural   = language.GetString("LableFriendPlural");
            pager2.ItemNameSingular = language.GetString("LableFriendSingular");
            pager2.ItemNamePlural   = language.GetString("LableFriendPlural");
            pager1.BrowsableControl = this;
            pager2.BrowsableControl = this;

            ddlActions.Items[0].Text = language.GetString("TextAction");
            ddlActions.Items[1].Text = language.GetString("TextDeleteSelected");
            ddlActions.Items[2].Text = language.GetString("TextFriendshipChandeType");

            friendTypes = FriendHandler.GetFriendTypes();
            foreach (KeyValuePair <FriendType, string> kvp in friendTypes)
            {
                ListItem item = new ListItem(string.Format(">>> {0}", kvp.Value), "FSS_" + kvp.Key.ToString("d"));
                this.ddlActions.Items.Add(item);

                item = new ListItem(kvp.Value, kvp.Key.ToString("d"));
                this.PBFriendTypeId.Items.Add(item);
            }
        }
예제 #2
0
 protected void OnActionSelected(object sender, EventArgs e)
 {
     String[] friendIds = Request.Form.GetValues("YMSEL");
     if (friendIds != null)
     {
         string selectedValue = ((DropDownList)sender).SelectedValue;
         if (selectedValue == "Delete")
         {
             foreach (string friendId in friendIds)
             {
                 FriendHandler.DeleteFriend(UserProfile.Current.UserId, new Guid(friendId));
             }
             Reload();
         }
         else if (selectedValue.StartsWith("FSS_"))
         {
             int friendshipTypeId = int.Parse(selectedValue.Substring(4));
             foreach (string friendId in friendIds)
             {
                 FriendHandler.Save(UserProfile.Current.UserId, new Guid(friendId), false, friendshipTypeId, 0);
             }
             Reload();
         }
     }
     this.ddlActions.SelectedIndex = 0;
 }
예제 #3
0
        protected void OnSendMsgClick(object sender, EventArgs e)
        {
            if (msgMode == "Accept")
            {
                SendMessage(userId, language.GetString("TextRequestAccepted"), this.MSGREPLYCNT.Content);

                FriendHandler.Save(UserProfile.Current.UserId, userId, false, int.Parse(this.YMTYPESEL.SelectedValue), this.YMBIRTH.Checked ? 1 : 0);
                _4screen.CSB.Extensions.Business.IncentivePointsManager.AddIncentivePointEvent("FRIEND_ACCEPT", UserDataContext.GetUserDataContext());
                DataAccess.Business.Message.DeleteMessage(message.MsgID, message.UserId);
                DataAccess.Business.Message.DeleteMessage(message.MsgID, message.FromUserID);

                litScript.Text = "<script type='text/javascript'>$telerik.$(function() { RefreshParentPage();GetRadWindow().Close(); } );</script>";
            }
            else
            {
                SendMessage(userId, language.GetString("TextRequestDenied"), this.MSGREPLYCNT.Content);

                if (this.YMBLOCKCB.Checked)
                {
                    FriendHandler.BlockFriend(UserProfile.Current.UserId, message.FromUserID);
                    _4screen.CSB.Extensions.Business.IncentivePointsManager.AddIncentivePointEvent("FRIEND_BLOCK", UserDataContext.GetUserDataContext());
                }

                _4screen.CSB.Extensions.Business.IncentivePointsManager.AddIncentivePointEvent("FRIEND_REJECT", UserDataContext.GetUserDataContext());
                DataAccess.Business.Message.DeleteMessage(message.MsgID, message.UserId);
                DataAccess.Business.Message.DeleteMessage(message.MsgID, message.FromUserID);

                litScript.Text = "<script type='text/javascript'>$telerik.$(function() { RefreshParentPage();GetRadWindow().Close(); } );</script>";
            }
        }
예제 #4
0
        public void OnBlockUserClick(object sender, EventArgs e)
        {
            Guid blockedUserId = new Guid(((LinkButton)sender).CommandArgument);

            FriendHandler.BlockFriend(UserProfile.Current.UserId, blockedUserId);
            this.LitScript.Text = "<script type='text/javascript'>$telerik.$(function() { GetRadWindow().Close(); } );</script>";
        }
예제 #5
0
파일: FriendsBook.cs 프로젝트: Mixi59/Stump
        void OnLevelChanged(Character character, byte currentlevel, int difference)
        {
            var friend = TryGetFriend(character);

            if (friend == null)
            {
                logger.Error("Sad, friend bound with character {0} is not found :(", character);
                return;
            }

            if (!character.FriendsBook.IsFriend(Owner.Account.Id))
            {
                return;
            }

            FriendHandler.SendFriendUpdateMessage(Owner.Client, friend);

            if (!WarnOnLevel)
            {
                return;
            }

            if (character.Map != Owner.Map)
            {
                CharacterHandler.SendCharacterLevelUpInformationMessage(Owner.Client, character, character.Level);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            _4screen.CSB.Extensions.Business.TrackingManager.TrackEventPage(null, null, IsPostBack, LogSitePageType.Friends);

            try
            {
                Guid userID   = new Guid(Request.QueryString["UID"]);
                Guid friendID = new Guid(Request.QueryString["FID"]);

                if (FriendHandler.IsFriend(userID, friendID))
                {
                    PFS.UserID   = userID;
                    PFS.FriendID = friendID;
                    if (!IsPostBack)
                    {
                        PFS.LoadSetting();
                    }
                }
                else
                {
                    Response.Redirect("/pages/static/AccessDenied.aspx", true);
                }
            }
            catch
            {
                Response.Redirect("/pages/static/AccessDenied.aspx", true);
            }
        }
예제 #7
0
 void OnAcceptClick(object sender, EventArgs e)
 {
     _4screen.CSB.DataAccess.Business.Message message = new _4screen.CSB.DataAccess.Business.Message(SiteConfig.GetSiteContext(UserProfile.Current));
     message.Load(new Guid(((LinkButton)sender).CommandArgument));
     FriendHandler.Save(UserProfile.Current.UserId, message.FromUserID, false, 0, 0);
     _4screen.CSB.Extensions.Business.IncentivePointsManager.AddIncentivePointEvent("FRIEND_ACCEPT_MOBILE_DEVICE", UserDataContext.GetUserDataContext());
     _4screen.CSB.DataAccess.Business.Message.DeleteMessage(message.MsgID, message.UserId);
     _4screen.CSB.DataAccess.Business.Message.DeleteMessage(message.MsgID, message.FromUserID);
     Reload();
 }
예제 #8
0
        private void OnContextChanged(Character character, bool infight)
        {
            Friend friend = this.TryGetFriend(character);

            if (friend == null)
            {
                FriendsBook.logger.Error <Character>("Sad, friend bound with character {0} is not found :(", character);
            }
            else
            {
                FriendHandler.SendFriendUpdateMessage(this.Owner.Client, friend);
            }
        }
예제 #9
0
파일: FriendsBook.cs 프로젝트: Mixi59/Stump
        public bool AddFriend(WorldAccount friendAccount)
        {
            var result = CanAddFriend(friendAccount);

            if (result != null)
            {
                FriendHandler.SendFriendAddFailureMessage(Owner.Client, result.Value);
                return(false);
            }

            var relation = new AccountRelation
            {
                AccountId = Owner.Client.Account.Id,
                TargetId  = friendAccount.Id,
                Type      = AccountRelationType.Friend
            };

            m_relations.AddOrUpdate(relation.TargetId, relation, (key, value) =>
            {
                value.Type = AccountRelationType.Friend;
                return(value);
            });

            Friend friend;
            var    isConnected = friendAccount.ConnectedCharacter.HasValue;

            if (isConnected)
            {
                var character = World.Instance.GetCharacter(friendAccount.ConnectedCharacter.Value);
                friend = new Friend(relation, friendAccount, character);
            }
            else
            {
                friend = new Friend(relation, friendAccount);
            }

            var success = m_friends.TryAdd(friendAccount.Id, friend);

            if (success && isConnected)
            {
                OnFriendOnline(friend);
            }
            else
            {
                friend.SetOffline();
            }

            FriendHandler.SendFriendAddedMessage(Owner.Client, friend);

            return(success);
        }
예제 #10
0
 protected override void OnInit(EventArgs e)
 {
     base.OnInit(e);
     if (this.YMTYPESEL.Items.Count == 0)
     {
         Dictionary <FriendType, string> friendTypes = FriendHandler.GetFriendTypes();
         bool selected = true;
         foreach (KeyValuePair <FriendType, string> kvp in friendTypes)
         {
             ListItem item = new ListItem(kvp.Value, kvp.Key.ToString("d"));
             item.Selected = selected;
             this.YMTYPESEL.Items.Add(item);
             selected = false;
         }
     }
 }
예제 #11
0
        private void OnLevelChanged(Character character, byte currentlevel, int difference)
        {
            Friend friend = this.TryGetFriend(character);

            if (friend == null)
            {
                FriendsBook.logger.Error <Character>("Sad, friend bound with character {0} is not found :(", character);
            }
            else
            {
                FriendHandler.SendFriendUpdateMessage(this.Owner.Client, friend);
                if (this.WarnOnLevel && character.Map != this.Owner.Map)
                {
                    CharacterHandler.SendCharacterLevelUpInformationMessage(this.Owner.Client, character, character.Level);
                }
            }
        }
예제 #12
0
파일: FriendsBook.cs 프로젝트: Mixi59/Stump
        void OnContextChanged(Character character, bool infight)
        {
            var friend = TryGetFriend(character);

            if (friend == null)
            {
                logger.Error("Sad, friend bound with character {0} is not found :(", character);
                return;
            }

            if (!character.FriendsBook.IsFriend(Owner.Account.Id))
            {
                return;
            }

            FriendHandler.SendFriendUpdateMessage(Owner.Client, friend);
        }
예제 #13
0
        public bool RemoveIgnored(Ignored ignored)
        {
            Ignored ignored2;
            bool    result;

            if (this.m_ignoreds.TryRemove(ignored.Account.Id, out ignored2))
            {
                this.m_relationsToRemove.Push(ignored.Relation);
                FriendHandler.SendIgnoredDeleteResultMessage(this.Owner.Client, true, ignored.Session, ignored.Account.Nickname);
                result = true;
            }
            else
            {
                FriendHandler.SendIgnoredDeleteResultMessage(this.Owner.Client, false, ignored.Session, ignored.Account.Nickname);
                result = false;
            }
            return(result);
        }
예제 #14
0
파일: FriendsBook.cs 프로젝트: Mixi59/Stump
        public bool AddIgnored(WorldAccount ignoredAccount, bool session = false)
        {
            var result = CanAddIgnored(ignoredAccount);

            if (result != null)
            {
                FriendHandler.SendIgnoredAddFailureMessage(Owner.Client, result.Value);
                return(false);
            }

            var relation = new AccountRelation
            {
                AccountId = Owner.Client.Account.Id,
                TargetId  = ignoredAccount.Id,
                Type      = AccountRelationType.Ignored
            };

            if (!session)
            {
                m_relations.AddOrUpdate(relation.TargetId, relation, (key, value) =>
                {
                    value.Type = AccountRelationType.Ignored;
                    return(value);
                });
            }

            Ignored ignored;

            if (ignoredAccount.ConnectedCharacter.HasValue)
            {
                var character = World.Instance.GetCharacter(ignoredAccount.ConnectedCharacter.Value);
                ignored = new Ignored(relation, ignoredAccount, session, character);
            }
            else
            {
                ignored = new Ignored(relation, ignoredAccount, session);
            }

            var success = m_ignoreds.TryAdd(ignoredAccount.Id, ignored);

            FriendHandler.SendIgnoredAddedMessage(Owner.Client, ignored, session);

            return(success);
        }
        public static void CommonCharacterBasicInformations(WorldClient client)
        {
            CharacterHandler.SendCharacterSelectedSuccessMessage(client);
            ContextHandler.SendNotificationListMessage(client, new int[] { 2147483647 });
            InventoryHandler.SendInventoryContentMessage(client);
            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.GENERAL_SHORTCUT_BAR);
            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.SPELL_SHORTCUT_BAR);
            ContextRoleplayHandler.SendEmoteListMessage(client, (
                                                            from entry in Enumerable.Range(0, 21)
                                                            select(byte) entry).ToList <byte>());

            PvPHandler.SendAlignmentRankUpdateMessage(client);
            if (client.Character.Guild != null)
            {
                GuildHandler.SendGuildMembershipMessage(client, client.Character.GuildMember);
                GuildHandler.SendGuildInformationsGeneralMessage(client, client.Character.Guild);
                GuildHandler.SendGuildInformationsMembersMessage(client, client.Character.Guild);
                if (client.Character.Guild.Alliance != null)
                {
                    AllianceHandler.SendAllianceMembershipMessage(client, client.Character.Guild.Alliance);
                    AllianceHandler.SendAllianceInsiderInfoMessage(client, client.Character.Guild.Alliance);
                }
            }
            ChatHandler.SendEnabledChannelsMessage(client, new sbyte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13 }, new sbyte[0]);
            InventoryHandler.SendSpellListMessage(client, true);
            InitializationHandler.SendSetCharacterRestrictionsMessage(client);
            InventoryHandler.SendInventoryWeightMessage(client);
            FriendHandler.SendFriendWarnOnConnectionStateMessage(client, client.Character.FriendsBook.WarnOnConnection);
            FriendHandler.SendFriendWarnOnLevelGainStateMessage(client, client.Character.FriendsBook.WarnOnLevel);
            GuildHandler.SendGuildMemberWarnOnConnectionStateMessage(client, client.Character.WarnOnGuildConnection);
            AchievementHandler.SendAchievementListMessage(client, client.Character.Record.FinishedAchievements, client.Character.Achievement.GetRewardableAchievements());
            client.Character.SendConnectionMessages();
            ContextRoleplayHandler.SendGameRolePlayArenaUpdatePlayerInfosMessage(client);
            CharacterHandler.SendCharacterCapabilitiesMessage(client);

            client.WorldAccount.LastConnection     = new System.DateTime?(System.DateTime.Now);
            client.WorldAccount.LastIp             = client.IP;
            client.WorldAccount.ConnectedCharacter = new int?(client.Character.Id);

            client.Character.Record.LastUsage = new System.DateTime?(System.DateTime.Now);
            ServerBase <WorldServer> .Instance.DBAccessor.Database.Update(client.WorldAccount);

            ServerBase <WorldServer> .Instance.DBAccessor.Database.Update(client.Character.Record);
        }
예제 #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            _4screen.CSB.Extensions.Business.TrackingManager.TrackEventPage(null, null, IsPostBack, LogSitePageType.Messaging);

            this.messageId = Request.QueryString["MsgId"];

            DataAccess.Business.Message message = DataAccess.Business.Message.LoadMessage(new Guid(messageId), _4screen.CSB.Common.SiteConfig.GetSiteContext(UserProfile.Current));

            Guid   userId;
            string username = string.Empty;

            if (message.UserId == UserProfile.Current.UserId) // Inbox
            {
                userId   = message.FromUserID;
                username = message.FromUserName;
                this.LitSenderReceiver.Text = string.Format("{0}:", language.GetString("LableRequestSender"));

                if (message.TypOfMessage != 5)
                {
                    this.REPLYLINK.Visible     = true;
                    this.REPLYLINK.NavigateUrl = string.Format("/Pages/Popups/MessageSend.aspx?MsgType=Msg&MsgMode=Reply&RecId={0}&MsgId={1}", message.FromUserID, message.MsgID);
                }

                if (!FriendHandler.IsBlocked(UserProfile.Current.UserId, message.FromUserID))
                {
                    this.LbtnBlockUser.CommandArgument = message.FromUserID.ToString();
                    this.LbtnBlockUser.Visible         = true;
                }
            }
            else // Outbox
            {
                userId   = message.UserId;
                username = message.UserName;
                this.LitSenderReceiver.Text = string.Format("{0}:", language.GetString("LableRequestReceiver"));
            }
            Control control = this.LoadControl("/UserControls/Templates/SmallOutputUser2.ascx");

            ((SmallOutputUser2)control).DataObjectUser = DataObject.Load <DataObjectUser>(userId);
            this.YMREC.Text = ((SmallOutputUser2)control).GetHtml();

            this.MSGSUB.Text = message.Subject;
            this.MSGCNT.Text = message.MsgText;
        }
예제 #17
0
        public bool AddFriend(WorldAccount friendAccount)
        {
            ListAddFailureEnum?listAddFailureEnum = this.CanAddFriend(friendAccount);
            bool result;

            if (listAddFailureEnum.HasValue)
            {
                FriendHandler.SendFriendAddFailureMessage(this.Owner.Client, listAddFailureEnum.Value);
                result = false;
            }
            else
            {
                AccountRelation accountRelation = new AccountRelation
                {
                    AccountId = this.Owner.Client.Account.Id,
                    TargetId  = friendAccount.Id,
                    Type      = AccountRelationType.Friend
                };
                this.m_relations.AddOrUpdate(accountRelation.TargetId, accountRelation, delegate(int key, AccountRelation value)
                {
                    value.Type = AccountRelationType.Friend;
                    return(value);
                });
                bool flag;
                if (friendAccount.ConnectedCharacter.HasValue)
                {
                    Character character = Singleton <World> .Instance.GetCharacter(friendAccount.ConnectedCharacter.Value);

                    Friend friend = new Friend(accountRelation, friendAccount, character);
                    if (flag = this.m_friends.TryAdd(friendAccount.Id, friend))
                    {
                        this.OnFriendOnline(friend);
                    }
                }
                else
                {
                    flag = this.m_friends.TryAdd(friendAccount.Id, new Friend(accountRelation, friendAccount));
                }
                FriendHandler.SendFriendsListMessage(this.Owner.Client, this.Friends);
                result = flag;
            }
            return(result);
        }
예제 #18
0
파일: FriendsBook.cs 프로젝트: Mixi59/Stump
        public bool RemoveFriend(Friend friend)
        {
            if (friend.IsOnline())
            {
                OnFriendLogout(friend.Character); // unregister the events
            }
            Friend dummy;

            if (m_friends.TryRemove(friend.Account.Id, out dummy))
            {
                m_relationsToRemove.Push(friend.Relation);
                FriendHandler.SendFriendDeleteResultMessage(Owner.Client, true, friend.Account.Nickname);

                return(true);
            }
            FriendHandler.SendFriendDeleteResultMessage(Owner.Client, false, friend.Account.Nickname);

            return(false);
        }
예제 #19
0
        public bool AddIgnored(WorldAccount ignoredAccount, bool session = false)
        {
            ListAddFailureEnum?listAddFailureEnum = this.CanAddIgnored(ignoredAccount);
            bool result;

            if (listAddFailureEnum.HasValue)
            {
                FriendHandler.SendIgnoredAddFailureMessage(this.Owner.Client, listAddFailureEnum.Value);
                result = false;
            }
            else
            {
                AccountRelation accountRelation = new AccountRelation
                {
                    AccountId = this.Owner.Client.Account.Id,
                    TargetId  = ignoredAccount.Id,
                    Type      = AccountRelationType.Ignored
                };
                if (!session)
                {
                    this.m_relations.AddOrUpdate(accountRelation.TargetId, accountRelation, delegate(int key, AccountRelation value)
                    {
                        value.Type = AccountRelationType.Ignored;
                        return(value);
                    });
                }
                bool flag;
                if (ignoredAccount.ConnectedCharacter.HasValue)
                {
                    Character character = Singleton <World> .Instance.GetCharacter(ignoredAccount.ConnectedCharacter.Value);

                    flag = this.m_ignoreds.TryAdd(ignoredAccount.Id, new Ignored(accountRelation, ignoredAccount, session, character));
                }
                else
                {
                    flag = this.m_ignoreds.TryAdd(ignoredAccount.Id, new Ignored(accountRelation, ignoredAccount, session));
                }
                FriendHandler.SendIgnoredListMessage(this.Owner.Client, this.Ignoreds);
                result = flag;
            }
            return(result);
        }
예제 #20
0
        public bool RemoveFriend(Friend friend)
        {
            if (friend.IsOnline())
            {
                this.OnCharacterLogout(friend.Character);
            }
            Friend friend2;
            bool   result;

            if (this.m_friends.TryRemove(friend.Account.Id, out friend2))
            {
                this.m_relationsToRemove.Push(friend.Relation);
                FriendHandler.SendFriendDeleteResultMessage(this.Owner.Client, true, friend.Account.Nickname);
                result = true;
            }
            else
            {
                FriendHandler.SendFriendDeleteResultMessage(this.Owner.Client, false, friend.Account.Nickname);
                result = false;
            }
            return(result);
        }
예제 #21
0
파일: FriendsBook.cs 프로젝트: Mixi59/Stump
        public bool RemoveIgnored(Ignored ignored)
        {
            if (ignored.IsOnline())
            {
                OnIgnoredLogout(ignored.Character);
            }

            Ignored dummy;

            if (m_ignoreds.TryRemove(ignored.Account.Id, out dummy))
            {
                m_relationsToRemove.Push(ignored.Relation);

                FriendHandler.SendIgnoredDeleteResultMessage(Owner.Client, true, ignored.Session,
                                                             ignored.Account.Nickname);

                return(true);
            }
            FriendHandler.SendIgnoredDeleteResultMessage(Owner.Client, false, ignored.Session,
                                                         ignored.Account.Nickname);

            return(false);
        }
예제 #22
0
 private void RemoveLinkButtonClick(object sender, EventArgs e)
 {
     FriendHandler.UnBlockFriend(UserProfile.Current.UserId, ((LinkButton)sender).CommandArgument.ToGuid());
     ReloadableControl.Reload();
 }
예제 #23
0
 public FriendHandlerTests()
 {
     _handler = new FriendHandler(new FakeUserRepository(), new FakeFriendRepository());
 }
예제 #24
0
        private void ShowLinks(XmlDocument xmlDocument)
        {
            CustomizationSection customization = CustomizationSection.CachedInstance;

            this.REPLINK.Visible          = false;
            this.RECLINK.Visible          = XmlHelper.GetElementValue(xmlDocument.DocumentElement, "Message", true) && customization.Modules["Messaging"].Enabled;
            this.LnkInvite.Visible        = false;
            this.LnkFriendRequest.Visible = false;
            this.LnkJoin.Visible          = false;
            this.ALELINK.Visible          = XmlHelper.GetElementValue(xmlDocument.DocumentElement, "Notifications", true) && customization.Modules["Alerts"].Enabled;

            this.RECLINK.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/MessageSend.aspx?MsgType=rec&URL={1}', '{2}', 700, 540, true)", VRoot, System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(Request.RawUrl)), languageShared.GetString("CommandPropose").StripForScript());
            if (dataObject != null && dataObject.UserID.Value != UserDataContext.GetUserDataContext().UserID)
            {
                if (XmlHelper.GetElementValue(xmlDocument.DocumentElement, "Message", true))
                {
                    this.REPLINK.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/MessageSend.aspx?MsgType=rep&RecType=report&ObjType={1}&URL={2}', '{3}', 700, 540, true)", VRoot, dataObject.ObjectType, System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(Request.RawUrl)), languageShared.GetString("CommandContentReport").StripForScript());
                    this.REPLINK.Visible     = true;
                }
            }
            if (dataObject != null && dataObject.Geo_Lat > double.MinValue && CustomizationSection.CachedInstance.Modules["Geotagging"].Enabled)
            {
                this.MAPLINK.Visible     = true;
                this.MAPLINK.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/DetailMap.aspx?OID={1}', '{2}', 640, 480, true)", VRoot, dataObject.ObjectID, languageShared.GetString("TitleMap").StripForScript());
            }

            if (dataObject != null && dataObject.ObjectType == Helper.GetObjectTypeNumericID("Page"))
            {
                StringBuilder queryString = new StringBuilder();
                if (!string.IsNullOrEmpty(Request.QueryString["TGL1"]))
                {
                    queryString.AppendFormat("&TGL1={0}", Request.QueryString["TGL1"]);
                }
                if (!string.IsNullOrEmpty(Request.QueryString["TGL2"]))
                {
                    queryString.AppendFormat("&TGL2={0}", Request.QueryString["TGL2"]);
                }
                if (!string.IsNullOrEmpty(Request.QueryString["TGL3"]))
                {
                    queryString.AppendFormat("&TGL3={0}", Request.QueryString["TGL3"]);
                }
                if (!string.IsNullOrEmpty(Request.QueryString["XOTS"]))
                {
                    queryString.AppendFormat("&OTS={0}", Request.QueryString["XOTS"]);
                }
                if (!string.IsNullOrEmpty(Request.QueryString["OT"]))
                {
                    queryString.AppendFormat("&OTS={0}", Request.QueryString["OT"]);
                }

                this.ALELINK.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/Notifications.aspx?OT={1}{2}', '{3}', 600, 450, true)", VRoot, dataObject.ObjectType, queryString, languageShared.GetString("CommandAlerts").StripForScript());
            }
            else if (dataObject != null && dataObject.ObjectType == Helper.GetObjectTypeNumericID("Community"))
            {
                string queryString = string.Empty;
                if (!string.IsNullOrEmpty(queryString))
                {
                    queryString = string.Format("&OTS={0}", Request.QueryString["XOTS"]);
                }
                this.ALELINK.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/Notifications.aspx?CN={1}&OT={2}{3}', '{4}', 600, 450, true)", VRoot, dataObject.ObjectID, dataObject.ObjectType, queryString, languageShared.GetString("CommandAlerts").StripForScript());
            }
            else if (dataObject != null && dataObject.ObjectType == Helper.GetObjectTypeNumericID("User"))
            {
                string queryString = string.Empty;
                if (!string.IsNullOrEmpty(queryString))
                {
                    queryString = string.Format("&OTS={0}", Request.QueryString["XOTS"]);
                }
                this.ALELINK.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/Notifications.aspx?UI={1}&OT={2}{3}', '{4}', 600, 450, true)", VRoot, dataObject.ObjectID, dataObject.ObjectType, queryString, languageShared.GetString("CommandAlerts").StripForScript());
                if (Request.IsAuthenticated && dataObject.UserID.Value != UserDataContext.GetUserDataContext().UserID&& !FriendHandler.IsFriend(UserDataContext.GetUserDataContext().UserID, dataObject.UserID.Value))
                {
                    if (XmlHelper.GetElementValue(xmlDocument.DocumentElement, "Friends", true) && customization.Modules["Friends"].Enabled)
                    {
                        LnkFriendRequest.Visible     = true;
                        LnkFriendRequest.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/MessageSend.aspx?MsgType=ymr&recid={1}', '{2}', 510, 490)", VRoot, dataObject.ObjectID.Value, languageShared.GetString("CommandFriendshipQuery").StripForScript());
                        LnkFriendRequest.ID          = null;
                    }
                }
            }
            else if (dataObject != null)
            {
                this.ALELINK.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/Notifications.aspx?OID={1}&OT={2}', '{3}', 600, 450, true)", VRoot, dataObject.ObjectID.Value, dataObject.ObjectType, languageShared.GetString("CommandAlerts").StripForScript());
            }

            if (dataObject != null && dataObject.ObjectType == Helper.GetObjectTypeNumericID("Community"))
            {
                Community community = new Community(dataObject.ObjectID.Value);
                if (!community.IsUserMember && !(community.IsUserOwner || community.IsUserCreator) && community.ProfileOrCommunity.Status == ObjectStatus.Public)
                {
                    if (XmlHelper.GetElementValue(xmlDocument.DocumentElement, "Membership", true) && customization.Modules["Memberships"].Enabled)
                    {
                        this.LnkJoin.Visible     = true;
                        this.LnkJoin.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/Participate.aspx?CTYID={1}', '{2}', 450, 160, true);", VRoot, community.CommunityId, languageShared.GetString("CommandBecomeAMember").StripForScript());
                    }
                }
                if ((community.IsUserOwner || community.IsUserCreator) && community.ProfileOrCommunity.Status == ObjectStatus.Private)
                {
                    if (XmlHelper.GetElementValue(xmlDocument.DocumentElement, "Friends", true) && customization.Modules["Friends"].Enabled)
                    {
                        this.LnkInvite.Visible     = true;
                        this.LnkInvite.NavigateUrl = string.Format("javascript:radWinOpen('{0}/Pages/Popups/MessageSend.aspx?MsgType=invite&ObjType={1}&ObjID={2}', '{3}', 700, 580, true);", VRoot, Helper.GetObjectType("Community").Id, community.CommunityId, languageShared.GetString("CommandInviteFriend").StripForScript());
                    }
                }
            }

            if (UserProfile.Current.IsAnonymous)
            {
                this.FUNCP2.Visible = false;
                hasContent          = (RECLINK.Visible || MAPLINK.Visible || REPLINK.Visible);
            }
            else
            {
                hasContent = (RECLINK.Visible || MAPLINK.Visible || REPLINK.Visible || ALELINK.Visible || LnkJoin.Visible || LnkInvite.Visible || LnkFriendRequest.Visible);
            }
        }
예제 #25
0
 public FriendController(IUnitOfWork unitOfWork, FriendHandler handler, IFriendRepository repository) : base(unitOfWork)
 {
     _handler    = handler;
     _repository = repository;
 }
예제 #26
0
파일: GameSocket.cs 프로젝트: v8lab/yxjxmk
 public GameSocket(ISerializer serializer) : base(serializer)
 {
     _achievementHandler       = new AchievementHandler(this);
     _activityHandler          = new ActivityHandler(this);
     _activityFavorHandler     = new ActivityFavorHandler(this);
     _amuletHandler            = new AmuletHandler(this);
     _arenaHandler             = new ArenaHandler(this);
     _attendanceHandler        = new AttendanceHandler(this);
     _bagHandler               = new BagHandler(this);
     _battleHandler            = new BattleHandler(this);
     _cardHandler              = new CardHandler(this);
     _consignmentLineHandler   = new ConsignmentLineHandler(this);
     _crossServerHandler       = new CrossServerHandler(this);
     _dailyActivityHandler     = new DailyActivityHandler(this);
     _demonTowerHandler        = new DemonTowerHandler(this);
     _equipHandler             = new EquipHandler(this);
     _exchangeHandler          = new ExchangeHandler(this);
     _fashionHandler           = new FashionHandler(this);
     _fightLevelHandler        = new FightLevelHandler(this);
     _fleeHandler              = new FleeHandler(this);
     _friendHandler            = new FriendHandler(this);
     _functionHandler          = new FunctionHandler(this);
     _functionOpenHandler      = new FunctionOpenHandler(this);
     _giftOnlineHandler        = new GiftOnlineHandler(this);
     _goddessHandler           = new GoddessHandler(this);
     _guildBlessHandler        = new GuildBlessHandler(this);
     _guildBossHandler         = new GuildBossHandler(this);
     _guildDepotHandler        = new GuildDepotHandler(this);
     _guildHandler             = new GuildHandler(this);
     _guildShopHandler         = new GuildShopHandler(this);
     _guildTechHandler         = new GuildTechHandler(this);
     _hookSetHandler           = new HookSetHandler(this);
     _interactHandler          = new InteractHandler(this);
     _intergalMallHandler      = new IntergalMallHandler(this);
     _itemHandler              = new ItemHandler(this);
     _leaderBoardHandler       = new LeaderBoardHandler(this);
     _limitTimeActivityHandler = new LimitTimeActivityHandler(this);
     _mailHandler              = new MailHandler(this);
     _mapHandler               = new MapHandler(this);
     _masteryHandler           = new MasteryHandler(this);
     _medalHandler             = new MedalHandler(this);
     _messageHandler           = new MessageHandler(this);
     _mountHandler             = new MountHandler(this);
     _npcHandler               = new NpcHandler(this);
     _offlineAwardHandler      = new OfflineAwardHandler(this);
     _onlineGiftHandler        = new OnlineGiftHandler(this);
     _payGiftHandler           = new PayGiftHandler(this);
     _petHandler               = new PetHandler(this);
     _petNewHandler            = new PetNewHandler(this);
     _playerHandler            = new PlayerHandler(this);
     _prepaidHandler           = new PrepaidHandler(this);
     _rankHandler              = new RankHandler(this);
     _resourceDungeonHandler   = new ResourceDungeonHandler(this);
     _resourceHandler          = new ResourceHandler(this);
     _rewardHandler            = new RewardHandler(this);
     _saleHandler              = new SaleHandler(this);
     _shopMallHandler          = new ShopMallHandler(this);
     _skillHandler             = new SkillHandler(this);
     _skillKeysHandler         = new SkillKeysHandler(this);
     _soloHandler              = new SoloHandler(this);
     _stealHandler             = new StealHandler(this);
     _sysSetHandler            = new SysSetHandler(this);
     _taskHandler              = new TaskHandler(this);
     _teamHandler              = new TeamHandler(this);
     _tradeHandler             = new TradeHandler(this);
     _treasureHandler          = new TreasureHandler(this);
     _upLevelHandler           = new UpLevelHandler(this);
     _vipHandler               = new VipHandler(this);
     _vitalityHandler          = new VitalityHandler(this);
     _wingHandler              = new WingHandler(this);
     _activityRevelryHandler   = new ActivityRevelryHandler(this);
     _auctionHandler           = new AuctionHandler(this);
     _chatHandler              = new ChatHandler(this);
     _daoYouHandler            = new DaoYouHandler(this);
     _entryHandler             = new EntryHandler(this);
     _roleHandler              = new RoleHandler(this);
     _farmHandler              = new FarmHandler(this);
     _five2FiveHandler         = new Five2FiveHandler(this);
     _guildManagerHandler      = new GuildManagerHandler(this);
     _xianYuanHandler          = new XianYuanHandler(this);
 }
예제 #27
0
 private void UnBirthLinkButtonClick(object sender, EventArgs e)
 {
     FriendHandler.BirthdayNotification(UserProfile.Current.UserId.ToString(), ((LinkButton)sender).CommandArgument, 0);
     ReloadableControl.Reload();
 }
예제 #28
0
        public static void CommonCharacterSelection(WorldClient client, CharacterRecord character)
        {
            if (character.IsDeleted)
            {
                return;
            }

            // Check if we also have a world account
            if (client.WorldAccount == null)
            {
                var account = AccountManager.Instance.FindById(client.Account.Id) ??
                              AccountManager.Instance.CreateWorldAccount(client);
                client.WorldAccount = account;
            }

            // update tokens
            if (client.WorldAccount.Tokens + client.WorldAccount.NewTokens <= 0)
            {
                client.WorldAccount.Tokens = 0;
            }
            else
            {
                client.WorldAccount.Tokens += client.WorldAccount.NewTokens;
            }

            client.WorldAccount.NewTokens = 0;

            client.Character = new Character(character, client);
            client.Character.LoadRecord();

            ContextHandler.SendNotificationListMessage(client, new[] { 0x7FFFFFFF });
            BasicHandler.SendBasicTimeMessage(client);

            SendCharacterSelectedSuccessMessage(client);

            if (client.Character.Inventory.Presets.Any())
            {
                InventoryHandler.SendInventoryContentAndPresetMessage(client);
            }
            else
            {
                InventoryHandler.SendInventoryContentMessage(client);
            }

            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.GENERAL_SHORTCUT_BAR);

            ContextRoleplayHandler.SendEmoteListMessage(client, client.Character.Emotes.Select(x => (byte)x));

            // Jobs
            ContextRoleplayHandler.SendJobDescriptionMessage(client, client.Character);
            ContextRoleplayHandler.SendJobExperienceMultiUpdateMessage(client, client.Character);
            ContextRoleplayHandler.SendJobCrafterDirectorySettingsMessage(client, client.Character);

            PvPHandler.SendAlignmentRankUpdateMessage(client, client.Character);

            ChatHandler.SendEnabledChannelsMessage(client, new sbyte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13 }, new sbyte[] { });
            ChatHandler.SendChatSmileyExtraPackListMessage(client, client.Character.SmileyPacks.ToArray());

            InventoryHandler.SendSpellListMessage(client, true);
            ShortcutHandler.SendShortcutBarContentMessage(client, ShortcutBarEnum.SPELL_SHORTCUT_BAR);

            InitializationHandler.SendSetCharacterRestrictionsMessage(client, client.Character);

            InventoryHandler.SendInventoryWeightMessage(client);

            FriendHandler.SendFriendWarnOnConnectionStateMessage(client, client.Character.FriendsBook.WarnOnConnection);
            FriendHandler.SendFriendWarnOnLevelGainStateMessage(client, client.Character.FriendsBook.WarnOnLevel);
            GuildHandler.SendGuildMemberWarnOnConnectionStateMessage(client, client.Character.WarnOnGuildConnection);

            //Guild
            if (client.Character.GuildMember != null)
            {
                GuildHandler.SendGuildMembershipMessage(client, client.Character.GuildMember);
            }

            //Mount
            if (client.Character.EquippedMount != null)
            {
                MountHandler.SendMountSetMessage(client, client.Character.EquippedMount.GetMountClientData());
                MountHandler.SendMountXpRatioMessage(client, client.Character.EquippedMount.GivenExperience);

                if (client.Character.IsRiding)
                {
                    MountHandler.SendMountRidingMessage(client, client.Character.IsRiding);
                }
            }

            client.Character.SendConnectionMessages();

            //Don't know why ?
            ActionsHandler.SendSequenceNumberRequestMessage(client);

            //Start Cinematic
            if ((DateTime.Now - client.Character.Record.CreationDate).TotalSeconds <= 30)
            {
                BasicHandler.SendCinematicMessage(client, 10);
            }

            ContextRoleplayHandler.SendGameRolePlayArenaUpdatePlayerInfosMessage(client, client.Character);

            SendCharacterCapabilitiesMessage(client);

            ContextRoleplayHandler.SendAlmanachCalendarDateMessage(client);

            //Loading complete
            SendCharacterLoadingCompleteMessage(client);

            BasicHandler.SendServerExperienceModificatorMessage(client);

            // Update LastConnection and Last Ip
            client.WorldAccount.LastConnection     = DateTime.Now;
            client.WorldAccount.LastIp             = client.IP;
            client.WorldAccount.ConnectedCharacter = character.Id;

            WorldServer.Instance.DBAccessor.Database.Execute(string.Format(WorldAccountRelator.UpdateNewTokens, 0));
            WorldServer.Instance.DBAccessor.Database.Update(client.WorldAccount);
        }