Exemple #1
0
        protected HttpRequestMessage CreateCommandRequest(eRequestCommand command, string dataContainingFolder, string dataFileName = null)
        {
            if (dataFileName == null)
            {
                dataFileName = string.Format("{0}Request.xml", command);
            }

            var url     = string.Format("{0}Microsoft-Server-ActiveSync?Cmd={1}", hostAddress, command);
            var request = new HttpRequestMessage
            {
                RequestUri = new Uri(url),
                Method     = HttpMethod.Post
            };

            request.Headers.Add("Authorization", "Bearer " + _accessToken);

            //TODO: Add DeviceInfo

            //TODO: Add Request Header

            //Add Request Content
            var xmlRequestPath = string.Format("TestData/{0}/{1}", dataContainingFolder, dataFileName);
            var wbxmlContent   = LoadXmlFileAsWBXML(xmlRequestPath);

            request.Content = new ByteArrayContent(wbxmlContent);

            return(request);
        }
        //TODO: Reflection
        public static IRequestHandler GetHandler(eRequestCommand command)
        {
            switch (command)
            {
            case eRequestCommand.FolderSync:
                return(new FolderSyncRequest());

            case eRequestCommand.FolderCreate:
                return(new FolderCreateRequest());

            case eRequestCommand.FolderDelete:
                return(new FolderDeleteRequest());

            case eRequestCommand.FolderUpdate:
                return(new FolderUpdateRequest());

            case eRequestCommand.Sync:
                return(new SyncRequest());

            //case eRequestCommand.Ping:
            //    return new PingRequest();
            //case eRequestCommand.SendMail:
            //    return new SendMailRequest();
            //case eRequestCommand.SmartReplay:
            //    return new SmartReplayRequest();
            //case eRequestCommand.SmartForward:
            //    return new SmartForwardRequest();
            //case eRequestCommand.GetItemEstimate:
            //    return new GetItemEstimateRequest();
            //case eRequestCommand.ItemOperations:
            //    return new ItemOperationsRequest();
            //case eRequestCommand.Search:
            //    return new SearchRequest();
            default:
                break;
            }

            return(null);
        }