Ejemplo n.º 1
0
        public InvitationSend(Client User, XmlDocument Packet) : base(User, Packet)
        {
            if (!(bool)App.Default["UseOldMode"])
            {
                User.Player.GroupId = base.Query.Attributes["group_id"].InnerText;
            }

            Client           Receiver         = ArrayList.OnlineUsers.Find(Attribute => Attribute.Player.Nickname == base.Query.Attributes["nickname"].InnerText);
            InvitationTicket InvitationTicket = new InvitationTicket(User, Receiver)
            {
                GroupId = (bool)App.Default["UseOldMode"] ? "" : base.Query.Attributes["group_id"].InnerText
            };

            Ticket = InvitationTicket;
            InvitationTicket.IsFollow = base.Query.Attributes["is_follow"].InnerText == "1";

            if (!(User.Channel.MinRank <= Receiver.Player.Rank && User.Channel.MaxRank >= Receiver.Player.Rank))
            {
                InvitationTicket.Result = (byte)Results.RankRestricted;
            }

            if (InvitationTicket.Result == 255)
            {
                Receiver.InvitationTicket.Add(InvitationTicket);
                User.InvitationTicket.Add(InvitationTicket);

                new InvitationRequest(Receiver, InvitationTicket);
            }
            Process();
        }
Ejemplo n.º 2
0
        public InvitationSend(Client User, XmlDocument Packet)
            : base(User, Packet)
        {
            if (!(bool)App.Default["UseOldMode"])
            {
                User.Player.RoomPlayer.GroupId = Query.Attributes["group_id"].InnerText;
            }
            Client           client           = ArrayList.OnlineUsers.Find((Client Attribute) => Attribute.Player.Nickname == Query.Attributes["nickname"].InnerText);
            InvitationTicket invitationTicket = new InvitationTicket(User, client)
            {
                GroupId = (((bool)App.Default["UseOldMode"]) ? "" : Query.Attributes["group_id"].InnerText)
            };

            if (client != null)
            {
                Ticket = invitationTicket;
                invitationTicket.IsFollow = (Query.Attributes["is_follow"].InnerText == "1");
                if (User.Channel.MinRank > client.Player.Rank || User.Channel.MaxRank < client.Player.Rank)
                {
                    invitationTicket.Result = 13;
                }
                if (invitationTicket.Result == byte.MaxValue)
                {
                    client.InvitationTicket.Add(invitationTicket);
                    User.InvitationTicket.Add(invitationTicket);
                    new InvitationRequest(client, invitationTicket);
                }
            }
            else
            {
                invitationTicket.Result = 0;
            }
            Process();
        }
Ejemplo n.º 3
0
        public InvitationSend(Client User, XmlDocument Packet)
            : base(User, Packet)
        {
            Client           client = ArrayList.OnlineUsers.Find((Predicate <Client>)(Attribute => Attribute.Player.Nickname == this.Query.Attributes["nickname"].InnerText));
            InvitationTicket Ticket = new InvitationTicket(User, client)
            {
                GroupId = this.Query.Attributes["group_id"].InnerText
            };

            if (client != null)
            {
                this.Ticket     = Ticket;
                Ticket.IsFollow = this.Query.Attributes["is_follow"].InnerText == "1";
                if ((int)User.Channel.MinRank > (int)client.Player.Rank || (int)User.Channel.MaxRank < (int)client.Player.Rank)
                {
                    Ticket.Result = (byte)13;
                }
                if (Ticket.Result == byte.MaxValue)
                {
                    client.InvitationTicket.Add(Ticket);
                    User.InvitationTicket.Add(Ticket);
                    InvitationRequest invitationRequest = new InvitationRequest(client, Ticket);
                }
            }
            else
            {
                Ticket.Result = (byte)0;
            }
            this.Process();
        }
Ejemplo n.º 4
0
    public override string ToString()
    {
        var  sb      = new StringBuilder("GroupPreference(");
        bool __first = true;

        if (InvitationTicket != null && __isset.invitationTicket)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("InvitationTicket: ");
            InvitationTicket.ToString(sb);
        }
        if (__isset.favoriteTimestamp)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("FavoriteTimestamp: ");
            FavoriteTimestamp.ToString(sb);
        }
        sb.Append(")");
        return(sb.ToString());
    }
Ejemplo n.º 5
0
 public InvitationRequest(Client User, InvitationTicket Ticket)
     : base(User, null)
 {
     if (!(Type == "result"))
     {
         this.Ticket = Ticket;
         Room        = Ticket.Sender.Player.RoomPlayer.Room;
         Process();
     }
 }
Ejemplo n.º 6
0
        public InvitationRequest(Client User, InvitationTicket Ticket) : base(User, null)
        {
            if (base.Type == "result")
            {
                return;
            }
            this.Ticket = Ticket;
            Room        = Ticket.Sender.Player.GameRoom;

            Process();
        }
Ejemplo n.º 7
0
 public InvitationRequest(Client User, InvitationTicket Ticket)
     : base(User, (XmlDocument)null)
 {
     if (this.Type == "result")
     {
         return;
     }
     this.Ticket = Ticket;
     this.Room   = Ticket.Sender.Player.RoomPlayer.Room;
     this.Process();
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Gets the notification URL.
        /// </summary>
        /// <returns></returns>
        protected override string GetNotificationUrl()
        {
            InvitationTicket ticket = new InvitationTicket(WorkroomPage.WorkroomStartPageLink, MemberLevel, EmailTo);

            string urlParametersSeparator = "?";

            if (NotificationPageUrl.Contains(urlParametersSeparator))
            {
                urlParametersSeparator = "&";
            }
            return(String.Format("{0}{1}{2}={3}", NotificationPageUrl, urlParametersSeparator, TicketParameter, ticket.Encrypt()));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Initialize ticket and user name
        /// </summary>
        private void Initialize()
        {
            var ticketParameter = Request[InvitationSender.TicketParameter];
            Ticket = string.IsNullOrEmpty(ticketParameter) ? null : InvitationTicket.Decrypt(ticketParameter);

            if ((Ticket != null) && !string.IsNullOrEmpty(Ticket.Email))
            {
                var enumerator = Membership.FindUsersByEmail(Ticket.Email).GetEnumerator();
                UserName = enumerator.MoveNext() ? ((MembershipUser)enumerator.Current).UserName : string.Empty;
            }

            Profile = string.IsNullOrEmpty(UserName) ? EPiServerProfile.Current : EPiServerProfile.Get(UserName);
        }
Ejemplo n.º 10
0
    public override int GetHashCode()
    {
        int hashcode = 157;

        unchecked {
            if (__isset.invitationTicket)
            {
                hashcode = (hashcode * 397) + InvitationTicket.GetHashCode();
            }
            if (__isset.favoriteTimestamp)
            {
                hashcode = (hashcode * 397) + FavoriteTimestamp.GetHashCode();
            }
        }
        return(hashcode);
    }
Ejemplo n.º 11
0
        public InvitationAccept(Client User, XmlDocument Packet = null)
            : base(User, Packet)
        {
            if (this.Type == "result")
            {
                return;
            }
            this.Ticket        = User.InvitationTicket.Find((Predicate <InvitationTicket>)(Attribute => Attribute.ID == this.Query.Attributes["ticket"].InnerText));
            this.Ticket.Result = byte.Parse(this.Query.Attributes["result"].InnerText);
            if (this.Ticket.Result == (byte)0)
            {
                User.Player.RoomPlayer.isInvited = true;
            }
            InvitationResult invitationResult = new InvitationResult(this.Ticket.Sender, this.Ticket);

            this.Process();
        }
Ejemplo n.º 12
0
 public InvitationAccept(Client User, XmlDocument Packet = null) : base(User, Packet)
 {
     if (base.Type == "result")
     {
         return;
     }
     if ((bool)App.Default["UseOldMode"])
     {
         Ticket = User.InvitationTicket.Find(Attribute => Attribute.ID == base.Query.Attributes["token"].InnerText);
     }
     else
     {
         Ticket = User.InvitationTicket.Find(Attribute => Attribute.ID == base.Query.Attributes["ticket"].InnerText);
     }
     Ticket.Result = byte.Parse(base.Query.Attributes["result"].InnerText);
     new InvitationResult(Ticket.Sender, Ticket);
     Process();
 }
Ejemplo n.º 13
0
 public InvitationResult(Client User, InvitationTicket Ticket)
     : base(User, null)
 {
     this.Ticket = Ticket;
     Process();
 }
Ejemplo n.º 14
0
 public InvitationResult(Client User, InvitationTicket Ticket)
     : base(User, (XmlDocument)null)
 {
     this.Ticket = Ticket;
     this.Process();
 }