示例#1
0
        private void GetByPlatformAccountId(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap    map = item as HydraHashMap;
            HydraUtf8String platformAccountIdString = map.Items["value"] as HydraUtf8String;
            ulong           platformAccountId       = ulong.Parse(platformAccountIdString.Value);

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "getUsersByProperty", new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        { "result", new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "items", new HydraHashMap(new Dictionary <string, IHydraItem>()
                                    {
                                        { "item", new HydraUtf8String("1") }
                                    }) }
                            }) }
                    }) }
            });

            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        public void Deserialize(System.IO.Stream s)
        {
            int itemCount = s.ReadInt32().Swap();

            for (int i = 0; i < itemCount; i++)
            {
                IHydraItem item = HydraItemDeserializer.Deserialize(s);
                Items.Add(item);
            }
        }
示例#3
0
        private byte[] GetBytesForItem(IHydraItem item)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                ms.WriteUInt8((byte)item.DataType);
                item.Serialize(ms);

                return(ms.ToArray());
            }
        }
示例#4
0
        public HydraResponse(HydraConnection connection, IHydraItem item)
        {
            Connection = connection;

            ContentType = "application/x-hydra-binary";
            StatusCode  = 200;
            Status      = "OK";

            if (item != null)
            {
                Payload = GetBytesForItem(item);
            }
        }
示例#5
0
        private void DisplayUser(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap map    = item as HydraHashMap;
            HydraInt32   userId = map.Items["user_id"] as HydraInt32;

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "username", new HydraUtf8StringAsBinary("user") }
            });
            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
示例#6
0
        private void GetByName(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap    map      = item as HydraHashMap;
            HydraUtf8String username = map.Items["username"] as HydraUtf8String;


            int userId = 1;

            HydraInt32    result   = new HydraInt32(userId);
            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
示例#7
0
        private void LoginWithAuthUserSession(HydraRequest request)
        {
            IHydraItem   item     = HydraItemDeserializer.Deserialize(request.PostData);
            HydraHashMap map      = item as HydraHashMap;
            string       username = (map.Items["username"] as HydraUtf8String).Value;
            string       password = (map.Items["password"] as HydraUtf8String).Value;

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "auth_user_return", new HydraUtf8StringAsBinary("success") },
                { "user_id", new HydraInt32(1) }
            });

            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
        public void Deserialize(System.IO.Stream s)
        {
            int itemCount = s.ReadInt32().Swap();

            for (int i = 0; i < itemCount; i++)
            {
                IHydraItem key = HydraItemDeserializer.Deserialize(s);
                if (!(key is HydraUtf8String))
                {
                    throw new NotImplementedException();
                }
                HydraUtf8String stringKey = key as HydraUtf8String;

                IHydraItem value = HydraItemDeserializer.Deserialize(s);

                Items.Add(stringKey.Value, value);
            }
        }
示例#9
0
        private void Create(HydraRequest request)
        {
            IHydraItem item = HydraItemDeserializer.Deserialize(request.PostData);

            HydraHashMap map = item as HydraHashMap;

            string username   = (map.Items["username"] as HydraUtf8String).Value;
            string password   = (map.Items["password"] as HydraUtf8String).Value;
            string email      = (map.Items["email"] as HydraUtf8String).Value;
            string firstname  = (map.Items["firstname"] as HydraUtf8String).Value;              // always contains "firstname"
            string lastname   = (map.Items["lastname"] as HydraUtf8String).Value;               // always contains "lastname"
            int    birthDay   = int.Parse((map.Items["birth_day"] as HydraUtf8String).Value);   // always 0
            int    birthMonth = int.Parse((map.Items["birth_month"] as HydraUtf8String).Value); // always 0
            int    birthYear  = int.Parse((map.Items["birth_year"] as HydraUtf8String).Value);  // always 2000

            int userId = 1;

            HydraInt32    result   = new HydraInt32(userId);
            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }
示例#10
0
        private void SetPlatformAccountId(HydraRequest request)
        {
            IHydraItem   item      = HydraItemDeserializer.Deserialize(request.PostData);
            HydraHashMap map       = item as HydraHashMap;
            int          userId    = int.Parse((map.Items["userID"] as HydraUtf8String).Value);
            ulong        accountId = ulong.Parse((map.Items["value"] as HydraUtf8String).Value);

            HydraHashMap result = new HydraHashMap(new Dictionary <string, IHydraItem>()
            {
                { "setProperty", new HydraHashMap(new Dictionary <string, IHydraItem>()
                    {
                        { "status", new HydraHashMap(new Dictionary <string, IHydraItem>()
                            {
                                { "code", new HydraUtf8String("1") }
                            }
                                                     ) }
                    }) }
            });

            HydraResponse response = new HydraResponse(Connection, result);

            response.Send();
        }