Ejemplo n.º 1
0
        /// <summary>
        /// Send a string (Unicode) based data request or send to the server.
        /// </summary>
        /// <param name="data">     The string data in Unicode to send. </param>
        /// <param name="dataType"> The type of request to send to the server. </param>
        private static object SendStringData(string data, ServerRequestTypes dataType)
        {
            string dataAsString = data;

            byte[] dataAsBytes = Encoding.Unicode.GetBytes(dataAsString);
            byte[] headerData  = GenerateHeaderData(dataType, (uint)dataAsBytes.Length);
            byte[] toSend      = new byte[headerData.Length + dataAsBytes.Length];
            headerData.CopyTo(toSend, 0);
            dataAsBytes.CopyTo(toSend, headerData.Length);

            switch (dataType)
            {
            case ServerRequestTypes.GetEmail:
            case ServerRequestTypes.GetLastModifiedDate:
            case ServerRequestTypes.GetNumberOfQuizzesByAuthorName:
                return(ReceiveFromServerStringData(toSend));

            case ServerRequestTypes.GetQuizzesByAuthorName:
            case ServerRequestTypes.GetQuizzesByQuizName:
            case ServerRequestTypes.GetQuizzesByCategory:
            case ServerRequestTypes.GetMissingQuizzesByAuthorName:
                return(ReceiveFromServerListOfStringArrays(toSend));

            case ServerRequestTypes.GetRealmFile:
            case ServerRequestTypes.GetJPEGImage:
                return(ReceiveFromServerBytes(toSend));

            default:
                return(ReceiveFromServerORM(toSend));
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Generate a header to detail what to do with data when server receives byte data.
 /// </summary>
 /// <param name="type">The type of server request to be performed.</param>
 /// <param name="size">The size of the data being sent to the server.</param>
 /// <returns></returns>
 private static byte[] GenerateHeaderData(ServerRequestTypes type, uint size)
 {
     byte[] headerData = new byte[stringHeaderSize];
     headerData[0] = (byte)type;
     byte[] dataSize = BitConverter.GetBytes(size);
     dataSize.CopyTo(headerData, 1);
     return(headerData);
 }