Пример #1
0
        public GetAllCategoriesResult GetAllCategories()
        {
            var service = new DOMAService();
              service.Url = WebServiceUrl;

              var request = new GetAllCategoriesRequest
              {
            Username = Username,
            Password = Password
              };

              var response = service.GetAllCategories(request);
              var result = new GetAllCategoriesResult
              {
            ErrorMessage = response.ErrorMessage,
            Success = response.Success,
              };
              if (response.Success)
              {
            result.Categories = new List<Category>();
            foreach (var category in response.Categories)
            {
              result.Categories.Add(TranslateCategory(category));
            }
              }
              return result;
        }
Пример #2
0
        public ConnectResult Connect()
        {
            var service = new DOMAService();
              service.Url = WebServiceUrl;

              var request = new ConnectRequest
                      {
                        Username = Username,
                        Password = Password
                      };
              var response = service.Connect(request);

              version = response.Version;

              return new ConnectResult
              {
            Success = response.Success,
            ErrorMessage = response.ErrorMessage,
            Version = response.Version
              };
        }
Пример #3
0
        public GetAllMapsResult GetAllMaps()
        {
            var service = new DOMAService();
              service.Url = WebServiceUrl;

              var request = new GetAllMapsRequest
              {
            Username = Username,
            Password = Password
              };

              var response = service.GetAllMaps(request);
              var result = new GetAllMapsResult
                     {
                       ErrorMessage = response.ErrorMessage,
                       Success = response.Success,
                     };
              if (response.Success)
              {
            result.Maps = new List<MapInfo>();
            foreach (var map in response.Maps)
            {
              result.Maps.Add(TranslateMapInfo(map));
            }
              }
              return result;
        }
Пример #4
0
        private PublishResult PublishWithPreUpload(MapInfo mapInfo)
        {
            var service = new DOMAService();
              service.Url = WebServiceUrl;

              var request = new PublishPreUploadedMapRequest
              {
            Username = Username,
            Password = Password,
            MapInfo = TranslateMapInfo(mapInfo),
              };

              try
              {
            // use partial upload
            // map image
            FileUploadResult mapFileUploadResult = null;
            if (request.MapInfo.MapImageData != null) mapFileUploadResult = PartialFileUpload(request.MapInfo.MapImageData, request.MapInfo.MapImageFileExtension);
            // blank map image
            FileUploadResult blankMapFileUploadResult = null;
            if (request.MapInfo.BlankMapImageData != null) blankMapFileUploadResult = PartialFileUpload(request.MapInfo.BlankMapImageData, request.MapInfo.MapImageFileExtension);
            // thumbnail
            FileUploadResult thumbnailFileUploadResult = null;
            var thumbnailImageData = CreateThumbnailImageData(mapInfo);
            if (thumbnailImageData != null) thumbnailFileUploadResult = PartialFileUpload(thumbnailImageData, "jpg");

            if (!(mapFileUploadResult != null && !mapFileUploadResult.Success) && !(blankMapFileUploadResult != null && !blankMapFileUploadResult.Success) && !(thumbnailFileUploadResult != null && !thumbnailFileUploadResult.Success))
            {
              if (mapFileUploadResult != null) request.PreUploadedMapImageFileName = mapFileUploadResult.FileName;
              if (blankMapFileUploadResult != null) request.PreUploadedBlankMapImageFileName = blankMapFileUploadResult.FileName;
              if (thumbnailFileUploadResult != null) request.PreUploadedThumbnailImageFileName = thumbnailFileUploadResult.FileName;
            }

            // reset image data as it already has been uploaded
            request.MapInfo.MapImageData = null;
            request.MapInfo.BlankMapImageData = null;
            var response = service.PublishPreUploadedMap(request);
            return new PublishResult
            {
              Success = response.Success,
              ErrorMessage = response.ErrorMessage,
              URL = response.URL
            };
              }
              catch (Exception ex)
              {
            return new PublishResult
            {
              Success = false,
              ErrorMessage = ex.Message
            };
              }
        }
Пример #5
0
        private PublishResult PublishWithoutPreUpload(MapInfo mapInfo)
        {
            var service = new DOMAService();
              service.Url = WebServiceUrl;

              var request = new PublishMapRequest
              {
            Username = Username,
            Password = Password,
            MapInfo = TranslateMapInfo(mapInfo),
              };

              try
              {
            request.MapInfo.BlankMapImageData = null; // this version of the webservice has not support for blank map images
            var response = service.PublishMap(request);
            return new PublishResult
            {
              Success = response.Success,
              ErrorMessage = response.ErrorMessage,
              URL = response.URL
            };
              }
              catch (Exception ex)
              {
            return new PublishResult
            {
              Success = false,
              ErrorMessage = ex.Message
            };
              }
        }
Пример #6
0
        private FileUploadResult PartialFileUpload(byte[] imageData, string extension)
        {
            const int chunkSize = 512 * 1024; // 512 KB
              var service = new DOMAService { Url = WebServiceUrl };

              string fileName = new Random().Next(0, 100000000) + "." + extension;
              int position = 0;

              while (position < imageData.Length)
              {
            int length = Math.Min(chunkSize, imageData.Length - position);
            var buffer = new byte[length];
            Array.Copy(imageData, position, buffer, 0, length);
            position += length;
            var uploadPartialFileRequest = new UploadPartialFileRequest
            {
              Username = Username,
              Password = Password,
              FileName = fileName,
              Data = buffer
            };
            var uploadPartialFileResponse = service.UploadPartialFile(uploadPartialFileRequest);
            if (!uploadPartialFileResponse.Success)
            {
              return new FileUploadResult
              {
            ErrorMessage = uploadPartialFileResponse.ErrorMessage,
            Success = false
              };
            }
              }
              return new FileUploadResult
              {
            Success = true,
            FileName = fileName
              };
        }