Esempio n. 1
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
                });
            }
        }
Esempio n. 2
0
        private void PublishMap(TransferMap transferMap, MapInfo mapInfo)
        {
            try
            {
                var doma = CreateDomaClient();

                mapInfo.MapImageFileExtension = transferMap.FileExtension;
                mapInfo.MapImageData = transferMap.MapImage;

                transferMap.TransferStatus = "Publishing...";

                var publishMapRequest = new PublishMapRequest
                    {
                        MapInfo = mapInfo,
                        Username = Username,
                        Password = Password
                    };
                var publishMapTask = Task<PublishMapResponse>.Factory.FromAsync(doma.BeginPublishMap, doma.EndPublishMap,
                                                                                publishMapRequest, null);

                publishMapTask.Wait();

                if (publishMapTask.Status == TaskStatus.Faulted)
                {
                    _transferExceptions.Add(publishMapTask.Exception);

                    transferMap.TransferStatus = publishMapTask.Exception != null
                                                     ? publishMapTask.Exception.Message
                                                     : "Failed";
                    return;
                }

                var response = publishMapTask.Result;

                if (response.Success)
                {
                    transferMap.TransferStatus = "Complete";
                    transferMap.ExistsOnTarget = true;
                }
                else
                {
                    transferMap.TransferStatus = response.ErrorMessage;
                }
            }
            catch (AggregateException ae)
            {
                var innerExceptions = ae.Flatten().InnerExceptions;

                foreach (var innerException in innerExceptions)
                {
                    _transferExceptions.Add(innerException);
                }

                transferMap.TransferStatus = "Publishing failed badly: " +
                                             string.Join(", ", innerExceptions.Select(x => x.Message));
            }
            catch (Exception e)
            {
                _transferExceptions.Add(e);

                transferMap.TransferStatus = "Publishing failed badly: " + e.Message;
            }
        }