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; }
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 }; }
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; }
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 }; } }
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 }; } }
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 }; }