Ejemplo n.º 1
0
 public async Task TryMethod(Task task, WebServiceType type, string additionalErrorInfo = null)
 {
     try
     {
         _servicesStatus.SetStatus(WebServiceType.Web, true);
         _servicesStatus.SetStatus(type, true);
         await task;
     }
     catch (ServiceUnavailableException ex)
     {
         Handle(type, ex, additionalErrorInfo);
     }
     catch (ServiceAuthenticationException ex)
     {
         Handle(type, ex, additionalErrorInfo);
     }
     catch (ServiceException ex)
     {
         Handle(type, ex, additionalErrorInfo);
     }
     catch (WebException ex)
     {
         Handle(ex, additionalErrorInfo);
     }
     catch (HttpRequestException ex)
     {
         Handle(ex, additionalErrorInfo);
     }
 }
Ejemplo n.º 2
0
 public ErrorHandler(RequestDelegate next, int status, IErrorPage page, WebServiceType check)
 {
     _next = next;
     _page = page;
     _status = status;
     _check = check;
 }
Ejemplo n.º 3
0
        public async Task <T> TryMethod <T>(Task <T> task, T defaultReturnValue, WebServiceType type, string additionalErrorInfo = null)
        {
            try
            {
                _servicesStatus.SetStatus(WebServiceType.Web, true);
                _servicesStatus.SetStatus(type, true);
                return(await task);
            }
            catch (ServiceUnavailableException ex)
            {
                Handle(type, ex, additionalErrorInfo);
            }
            catch (ServiceAuthenticationException ex)
            {
                Handle(type, ex, additionalErrorInfo);
            }
            catch (ServiceException ex)
            {
                Handle(type, ex, additionalErrorInfo);
            }
            catch (WebException ex)
            {
                Handle(ex, additionalErrorInfo);
            }
            catch (HttpRequestException ex)
            {
                Handle(ex, additionalErrorInfo);
            }

            return(defaultReturnValue);
        }
Ejemplo n.º 4
0
        internal WSHelper(WebServiceType type)
        {
            m_callType = type;
            m_pkg      = new WSPackage();

            switch (m_callType)
            {
            case WebServiceType.InsertWorkItem:
                m_pkg.WorkItemOperations    = new WSInsertWorkItem[1];
                m_pkg.WorkItemOperations[0] = new WSInsertWorkItem();
                break;

            case WebServiceType.UpdateWorkItem:
                m_pkg.WorkItemOperations    = new WSUpdateWorkItem[1];
                m_pkg.WorkItemOperations[0] = new WSUpdateWorkItem();
                break;

            default:
                Debug.Assert(false, "Invalid Call Type for creating Web Service Helper Object");
                break;
            }

            //set bypass rules
            m_pkg.WorkItemOperations[0].BypassRules = 1;

            // check whether setting product is required
            m_pkg.Product = ClientService.Url;
        }
Ejemplo n.º 5
0
 private void Handle(WebServiceType type, ServiceAuthenticationException ex, string additionalErrorInfo)
 {
     _servicesStatus.SetStatus(type, false, ex.Message);
     _errorHandler.Error(new Exception(additionalErrorInfo, ex), $"Authentication error for {type} service:"
                         + Environment.NewLine
                         + Environment.NewLine
                         + ex.Message);
 }
Ejemplo n.º 6
0
 public ServiceStatusViewModel(WebServiceType type, string title, IconType iconType, string genericErrorMessage, IWebServicesStatus webStatusService)
 {
     Icon  = iconType.ToString();
     Title = title;
     _genericErrorMessage = genericErrorMessage;
     _type             = type;
     _webStatusService = webStatusService;
 }
        private void GenerateCustomMethods()
        {
            CustomMethods = new List <CustomMethodInfo>();

            IEnumerable <MethodInfo> methods = WebServiceType.GetMethods().Where(x =>
                                                                                 x.CustomAttributes.ToList().Any(customAttribute =>
                                                                                                                 customAttribute.NamedArguments.Any(argument => argument.MemberName == _requestNameSpaceName)));

            AppendAllMethodsToCustomMethodInfo(methods);
        }
Ejemplo n.º 8
0
 public static IWebService BuildWebService(WebServiceType type)
 {
     if (type == WebServiceType.CryptoCompare)
     {
         return new CryptoWebService();
     }
     if (type == WebServiceType.Test)
     {
         return new TestWebService();
     }
     return null;
 }
Ejemplo n.º 9
0
        private void GenerateWSDL(WebServiceType serviceType, Type type, string filepath, bool generateSPFile)
        {
            if (serviceType == WebServiceType.ASMX)
            {
                var wsAttr = type.GetCustomAttribute <WebServiceAttribute>();

                string ns   = wsAttr.Namespace;
                string asmx = "http://localhost/" + type.Name + ".asmx";

                if (!string.IsNullOrEmpty(ns) && ns[ns.Length - 1] != '/')
                {
                    Console.WriteLine($"Invalid namespace, '{ns}' does not end with a /");
                    return;
                }

                var reflector = new ServiceDescriptionReflector();
                reflector.Reflect(type, asmx);

                if (reflector.ServiceDescriptions.Count > 1)
                {
                    Console.WriteLine("Multiple service descriptions not supported.");
                    return;
                }

                var stream    = new MemoryStream();
                var xmlWriter = new XmlTextWriter(stream, Encoding.UTF8)
                {
                    Formatting = Formatting.Indented
                };
                reflector.ServiceDescriptions[0].Write(xmlWriter);

                var textReader = new StreamReader(stream);
                stream.Seek(0, SeekOrigin.Begin);
                string xml = textReader.ReadToEnd();

                if (generateSPFile && serviceType == WebServiceType.ASMX)
                {
                    // Replace header
                    xml = xml.Replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", Utils.GetResource("SP2007Header.xml"));

                    // Fix services
                    xml = xml.Replace("location=\"" + asmx + "\"", "location=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %>");
                }

                if (WriteFile(filepath, xml))
                {
                    Console.WriteLine("WSDL has been generated : '" + filepath + "'");
                }
            }
        }
Ejemplo n.º 10
0
 public async Task TryMethod(Task task, WebServiceType type, string additionalErrorInfo = null)
 {
     if (_servicesStatus.IsOnline(WebServiceType.LastFm))
     {
         try
         {
             _servicesStatus.SetStatus(WebServiceType.Web, true);
             _servicesStatus.SetStatus(WebServiceType.LastFm, true);
             await task;
         }
         catch (Exception ex)
         {
             HandleError(ex, additionalErrorInfo);
         }
     }
 }
Ejemplo n.º 11
0
        public async Task <T> TryMethod <T>(Task <T> task, T defaultReturnValue, WebServiceType type, string additionalErrorInfo = null)
        {
            if (_servicesStatus.IsOnline(WebServiceType.LastFm))
            {
                try
                {
                    _servicesStatus.SetStatus(WebServiceType.Web, true);
                    _servicesStatus.SetStatus(WebServiceType.LastFm, true);
                    return(await task);
                }
                catch (Exception ex)
                {
                    HandleError(ex, additionalErrorInfo);
                }
            }

            return(defaultReturnValue);
        }
Ejemplo n.º 12
0
    public byte[] PackageMsg(WebServiceType type, string config, byte[] data = null)
    {
        byte[] typeByte = BitConverter.GetBytes((Int32)type);
        byte[] configByte = Encoding.UTF8.GetBytes(config);
        byte[] configSizeByte = BitConverter.GetBytes((UInt32)configByte.Length);

        int bufSize = typeByte.Length + configSizeByte.Length + configByte.Length;
        if (data != null)
        {
            bufSize += data.Length;
        }

        byte[] buf = new byte[bufSize];
        int offset = 0;

        //消息类型 4 byte
        Array.Copy(typeByte, 0, buf, offset, 4);
        offset += 4;

        //消息大小 4 byte
        Array.Copy(configSizeByte, 0, buf, offset, 4);
        offset +=4;

        //消息
        Array.Copy(configByte, 0, buf, offset, configByte.Length);
        offset += configByte.Length;

        if (data != null)
        {//附加byte[] 数据
            Array.Copy(data, 0, buf, offset, data.Length);
            offset += data.Length;
        }

        if (offset != bufSize)
        {
            Debug.Log("error:offset != bufSize");
        }

        return buf;
    }
Ejemplo n.º 13
0
        public void GenerateFiles(WSDLOptions options)
        {
            string outputFolder = options.OutputFolder.FullName;

            foreach (var kvType in serviceTypes)
            {
                WebServiceType serviceType = kvType.Key;
                Type           type        = kvType.Value;
                if (options.GenerateWSDL)
                {
                    string wsdl = Path.Combine(outputFolder, type.Name + ".wsdl");
                    GenerateWSDL(serviceType, type, wsdl, false);
                }

                if (options.GenerateSPWSDL)
                {
                    string spwsdl = Path.Combine(outputFolder, type.Name + "wsdl.aspx");
                    GenerateWSDL(serviceType, type, spwsdl, true);
                }

                if (options.GenerateSPDisco)
                {
                    string spdisco = Path.Combine(outputFolder, type.Name + "disco.aspx");

                    var    wsAttr = type.GetCustomAttribute <WebServiceAttribute>();
                    string ns     = wsAttr.Namespace;

                    string xml = string.Format(Utils.GetResource("SP2007Disco.xml"), ns, type.Name);

                    if (WriteFile(spdisco, xml))
                    {
                        Console.WriteLine("Disco has been generated : '" + spdisco + "'");
                    }
                }
            }
        }
Ejemplo n.º 14
0
 private void AddDefaultStatus(WebServiceType type)
 {
     _statusDictionary.Add(type, CreateStatus());
 }
Ejemplo n.º 15
0
        private string GetUrl(int row, int col, int zoom, WebServiceType TileType)
        {

            // YandexMap
            //string VersionYandexMap = "2.16.0";
            //string VersionYandexSatellite = "1.19.0";

            /// <summary>
            /// Bing Maps Customer Identification, more info here
            /// http://msdn.microsoft.com/en-us/library/bb924353.aspx
            /// </summary>
            string BingMapsClientToken = null;

            string language = "english";

            switch (TileType)
            {
                #region -- Google --
                case WebServiceType.GoogleMap:
                    {
                        string server = "mt";
                        string request = "vt";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        // http://mt1.google.com/vt/lyrs=m@130&hl=lt&x=18683&s=&y=10413&z=15&s=Galile

                        return string.Format("http://{0}{1}.google.com/{2}/lyrs={3}&hl={4}&x={5}{6}&y={7}&z={8}&s={9}", server, GetServerNum(row, col, 4), request, VersionGoogleMap, language, col, sec1, row, zoom, sec2);
                    }

                case WebServiceType.GoogleSatellite:
                    {
                        string server = "khm";
                        string request = "kh";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        return string.Format("http://{0}{1}.google.com/{2}/v={3}&hl={4}&x={5}{6}&y={7}&z={8}&s={9}", server, GetServerNum(row, col, 4), request, VersionGoogleSatellite, language, col, sec1, row, zoom, sec2);
                    }

                case WebServiceType.GoogleLabels:
                    {
                        string server = "mt";
                        string request = "vt";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        // http://mt1.google.com/vt/lyrs=h@107&hl=lt&x=583&y=325&z=10&s=Ga
                        // http://mt0.google.com/vt/lyrs=h@130&hl=lt&x=1166&y=652&z=11&s=Galile

                        return string.Format("http://{0}{1}.google.com/{2}/lyrs={3}&hl={4}&x={5}{6}&y={7}&z={8}&s={9}", server, GetServerNum(row, col, 4), request, VersionGoogleLabels, language, col, sec1, row, zoom, sec2);
                    }

                case WebServiceType.GoogleTerrain:
                    {
                        string server = "mt";
                        string request = "vt";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        return string.Format("http://{0}{1}.google.com/{2}/v={3}&hl={4}&x={5}{6}&y={7}&z={8}&s={9}", server, GetServerNum(row, col, 4), request, VersionGoogleTerrain, language, col, sec1, row, zoom, sec2);
                    }
                #endregion

                #region -- Google (China) version --
                case WebServiceType.GoogleMapChina:
                    {
                        string server = "mt";
                        string request = "vt";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        // http://mt3.google.cn/vt/lyrs=m@123&hl=zh-CN&gl=cn&x=3419&y=1720&z=12&s=G

                        return string.Format("http://{0}{1}.google.cn/{2}/lyrs={3}&hl={4}&gl=cn&x={5}{6}&y={7}&z={8}&s={9}", server, GetServerNum(row, col, 4), request, VersionGoogleMapChina, "zh-CN", col, sec1, row, zoom, sec2);
                    }

                case WebServiceType.GoogleSatelliteChina:
                    {
                        string server = "mt";
                        string request = "vt";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        // http://mt1.google.cn/vt/lyrs=s@59&gl=cn&x=3417&y=1720&z=12&s=Gal

                        return string.Format("http://{0}{1}.google.cn/{2}/lyrs={3}&gl=cn&x={4}{5}&y={6}&z={7}&s={8}", server, GetServerNum(row, col, 4), request, VersionGoogleSatelliteChina, col, sec1, row, zoom, sec2);
                    }

                case WebServiceType.GoogleLabelsChina:
                    {
                        string server = "mt";
                        string request = "vt";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        // http://mt1.google.cn/vt/imgtp=png32&lyrs=h@123&hl=zh-CN&gl=cn&x=3417&y=1720&z=12&s=Gal

                        return string.Format("http://{0}{1}.google.cn/{2}/imgtp=png32&lyrs={3}&hl={4}&gl=cn&x={5}{6}&y={7}&z={8}&s={9}", server, GetServerNum(row, col, 4), request, VersionGoogleLabelsChina, "zh-CN", col, sec1, row, zoom, sec2);
                    }

                case WebServiceType.GoogleTerrainChina:
                    {
                        string server = "mt";
                        string request = "vt";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        // http://mt2.google.cn/vt/lyrs=t@108,r@123&hl=zh-CN&gl=cn&x=3418&y=1718&z=12&s=Gali

                        return string.Format("http://{0}{1}.google.com/{2}/lyrs={3}&hl={4}&gl=cn&x={5}{6}&y={7}&z={8}&s={9}", server, GetServerNum(row, col, 4), request, VersionGoogleTerrainChina, "zh-CN", col, sec1, row, zoom, sec2);
                    }
                #endregion

                #region -- Google (Korea) version --
                case WebServiceType.GoogleMapKorea:
                    {
                        string server = "mt";
                        string request = "mt";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        // http://mt0.gmaptiles.co.kr/mt/v=kr1.12&hl=lt&x=876&y=400&z=10&s=Gali

                        var ret = string.Format("http://{0}{1}.gmaptiles.co.kr/{2}/v={3}&hl={4}&x={5}{6}&y={7}&z={8}&s={9}", server, GetServerNum(row, col, 4), request, VersionGoogleMapKorea, language, col, sec1, row, zoom, sec2);
                        return ret;
                    }

                case WebServiceType.GoogleSatelliteKorea:
                    {
                        string server = "khm";
                        string request = "kh";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        // http://khm1.google.co.kr/kh/v=59&x=873&y=401&z=10&s=Gali

                        return string.Format("http://{0}{1}.google.co.kr/{2}/v={3}&x={4}{5}&y={6}&z={7}&s={8}", server, GetServerNum(row, col, 4), request, VersionGoogleSatelliteKorea, col, sec1, row, zoom, sec2);
                    }

                case WebServiceType.GoogleLabelsKorea:
                    {
                        string server = "mt";
                        string request = "mt";
                        string sec1 = ""; // after &x=...
                        string sec2 = ""; // after &zoom=...
                        GetSecGoogleWords(row, col, out sec1, out sec2);

                        // http://mt3.gmaptiles.co.kr/mt/v=kr1t.12&hl=lt&x=873&y=401&z=10&s=Gali

                        return string.Format("http://{0}{1}.gmaptiles.co.kr/{2}/v={3}&hl={4}&x={5}{6}&y={7}&z={8}&s={9}", server, GetServerNum(row, col, 4), request, VersionGoogleLabelsKorea, language, col, sec1, row, zoom, sec2);
                    }
                #endregion

                #region -- Yahoo --
                case WebServiceType.YahooMap:
                    {
                        // http://maps1.yimg.com/hx/tl?b=1&v=4.3&.intl=en&x=12&y=7&z=7&r=1

                        return string.Format("http://maps{0}.yimg.com/hx/tl?v={1}&.intl={2}&x={3}&y={4}&z={5}&r=1", ((GetServerNum(row, col, 2)) + 1), VersionYahooMap, language, col, (((1 << zoom) >> 1) - 1 - row), (zoom + 1));
                    }

                case WebServiceType.YahooSatellite:
                    {
                        // http://maps3.yimg.com/ae/ximg?v=1.9&t=a&s=256&.intl=en&x=15&y=7&z=7&r=1

                        return string.Format("http://maps{0}.yimg.com/ae/ximg?v={1}&t=a&s=256&.intl={2}&x={3}&y={4}&z={5}&r=1", 3, VersionYahooSatellite, language, col, (((1 << zoom) >> 1) - 1 - row), (zoom + 1));
                    }

                case WebServiceType.YahooLabels:
                    {
                        // http://maps1.yimg.com/hx/tl?b=1&v=4.3&t=h&.intl=en&x=14&y=5&z=7&r=1

                        return string.Format("http://maps{0}.yimg.com/hx/tl?v={1}&t=h&.intl={2}&x={3}&y={4}&z={5}&r=1", 1, VersionYahooLabels, language, col, (((1 << zoom) >> 1) - 1 - row), (zoom + 1));
                    }
                #endregion

                #region -- OpenStreet --
                case WebServiceType.OpenStreetMap:
                case WebServiceType.OpenSeaMapHybrid:
                    {
                        char letter = "abc"[GetServerNum(row, col, 3)];
                        return string.Format("http://{0}.tile.openstreetmap.org/{1}/{2}/{3}.png", letter, zoom, col, row);
                    }

                case WebServiceType.OpenStreetOsm:
                    {
                        char letter = "abc"[GetServerNum(row, col, 3)];
                        return string.Format("http://{0}.tah.openstreetmap.org/Tiles/tile/{1}/{2}/{3}.png", letter, zoom, col, row);
                    }

                case WebServiceType.OpenCycleMap:
                    {
                        //http://b.tile.opencyclemap.org/cycle/13/4428/2772.png

                        char letter = "abc"[GetServerNum(row, col, 3)];
                        return string.Format("http://{0}.tile.opencyclemap.org/cycle/{1}/{2}/{3}.png", letter, zoom, col, row);
                    }

                case WebServiceType.OpenStreetMapSurfer:
                    {
                        // http://tiles1.mapsurfer.net/tms_r.ashx?x=37378&y=20826&z=16

                        return string.Format("http://tiles1.mapsurfer.net/tms_r.ashx?x={0}&y={1}&z={2}", col, row, zoom);
                    }

                case WebServiceType.OpenStreetMapSurferTerrain:
                    {
                        // http://tiles2.mapsurfer.net/tms_t.ashx?x=9346&y=5209&z=14

                        return string.Format("http://tiles2.mapsurfer.net/tms_t.ashx?x={0}&y={1}&z={2}", col, row, zoom);
                    }

                case WebServiceType.OpenSeaMapLabels:
                    {
                        // http://tiles.openseamap.org/seamark/15/17481/10495.png

                        return string.Format("http://tiles.openseamap.org/seamark/{0}/{1}/{2}.png", zoom, col, row);
                    }
                #endregion

                #region -- Bing --
                case WebServiceType.BingMap:
                    {
                        string key = TileXYToQuadKey(col, row, zoom);
                        return string.Format("http://ecn.t{0}.tiles.virtualearth.net/tiles/r{1}.png?g={2}&mkt={3}{4}", GetServerNum(row, col, 4), key, VersionBingMaps, language, (!string.IsNullOrEmpty(BingMapsClientToken) ? "&token=" + BingMapsClientToken : string.Empty));
                    }

                case WebServiceType.BingMap_New:
                    {
                        // http://ecn.t3.tiles.virtualearth.net/tiles/r12030012020233?g=559&mkt=en-us&lbl=l1&stl=h&shading=hill&n=z

                        string key = TileXYToQuadKey(col, row, zoom);
                        return string.Format("http://ecn.t{0}.tiles.virtualearth.net/tiles/r{1}.png?g={2}&mkt={3}{4}&lbl=l1&stl=h&shading=hill&n=z", GetServerNum(row, col, 4), key, VersionBingMaps, language, (!string.IsNullOrEmpty(BingMapsClientToken) ? "&token=" + BingMapsClientToken : string.Empty));
                    }

                case WebServiceType.BingSatellite:
                    {
                        string key = TileXYToQuadKey(col, row, zoom);
                        return string.Format("http://ecn.t{0}.tiles.virtualearth.net/tiles/a{1}.jpeg?g={2}&mkt={3}{4}", GetServerNum(row, col, 4), key, VersionBingMaps, language, (!string.IsNullOrEmpty(BingMapsClientToken) ? "&token=" + BingMapsClientToken : string.Empty));
                    }

                case WebServiceType.BingHybrid:
                    {
                        string key = TileXYToQuadKey(col, row, zoom);
                        return string.Format("http://ecn.t{0}.tiles.virtualearth.net/tiles/h{1}.jpeg?g={2}&mkt={3}{4}", GetServerNum(row, col, 4), key, VersionBingMaps, language, (!string.IsNullOrEmpty(BingMapsClientToken) ? "&token=" + BingMapsClientToken : string.Empty));
                    }
                #endregion

                #region -- ArcGIS --
                case WebServiceType.ArcGIS_StreetMap_World_2D:
                    {
                        // http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer/tile/0/0/0.jpg

                        return string.Format("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                    }

                case WebServiceType.ArcGIS_Imagery_World_2D:
                    {
                        // http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer/tile/1/0/1.jpg

                        return string.Format("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                    }

                case WebServiceType.ArcGIS_ShadedRelief_World_2D:
                    {
                        // http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_ShadedRelief_World_2D/MapServer/tile/1/0/1.jpg

                        return string.Format("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_ShadedRelief_World_2D/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                    }

                case WebServiceType.ArcGIS_Topo_US_2D:
                    {
                        // http://server.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer/tile/4/3/15

                        return string.Format("http://server.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                    }

                case WebServiceType.ArcGIS_World_Physical_Map:
                    {
                        // http://services.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/tile/2/0/2.jpg

                        return string.Format("http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                    }

                case WebServiceType.ArcGIS_World_Shaded_Relief:
                    {
                        // http://services.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer/tile/0/0/0jpg

                        return string.Format("http://server.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                    }

                case WebServiceType.ArcGIS_World_Street_Map:
                    {
                        // http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/0/0/0jpg

                        return string.Format("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                    }

                case WebServiceType.ArcGIS_World_Terrain_Base:
                    {
                        // http://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/0/0/0jpg

                        return string.Format("http://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                    }

                case WebServiceType.ArcGIS_World_Topo_Map:
                    {
                        // http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/0/0/0jpg

                        return string.Format("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                    }

#if TESTpjbcoetzer
            case WebServiceType.ArcGIS_TestPjbcoetzer:
            {
               // http://mapping.mapit.co.za/ArcGIS/rest/services/World/MapServer/tile/Zoom/X/Y

               return string.Format("http://mapping.mapit.co.za/ArcGIS/rest/services/World/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
            }
#endif
                #endregion

                #region -- MapsLT --
                //case WebServiceType.MapsLT_OrtoFoto:
                //    {
                //        // http://www.maps.lt/ortofoto/mapslt_ortofoto_vector_512/map/_alllayers/L02/R0000001b/C00000028.jpg
                //        // http://arcgis.maps.lt/ArcGIS/rest/services/mapslt_ortofoto/MapServer/tile/0/9/13
                //        // return string.Format("http://www.maps.lt/ortofoto/mapslt_ortofoto_vector_512/map/_alllayers/L{0:00}/R{1:x8}/C{2:x8}.jpg", zoom, row, col);
                //        // http://dc1.maps.lt/cache/mapslt_ortofoto_512/map/_alllayers/L03/R0000001c/C00000029.jpg
                //        // return string.Format("http://arcgis.maps.lt/ArcGIS/rest/services/mapslt_ortofoto/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                //        // http://dc1.maps.lt/cache/mapslt_ortofoto_512/map/_alllayers/L03/R0000001d/C0000002a.jpg

                //        return string.Format("http://dc1.maps.lt/cache/mapslt_ortofoto/map/_alllayers/L{0:00}/R{1:x8}/C{2:x8}.jpg", zoom, row, col);
                //    }

                //case WebServiceType.MapsLT_OrtoFoto_2010:
                //    {
                //        return string.Format("http://dc1.maps.lt/cache/mapslt_ortofoto_2010/map/_alllayers/L{0:00}/R{1:x8}/C{2:x8}.jpg", zoom, row, col);
                //    }

                //case WebServiceType.MapsLT_Map:
                //    {
                //        // http://www.maps.lt/ortofoto/mapslt_ortofoto_vector_512/map/_alllayers/L02/R0000001b/C00000028.jpg
                //        // http://arcgis.maps.lt/ArcGIS/rest/services/mapslt_ortofoto/MapServer/tile/0/9/13
                //        // return string.Format("http://www.maps.lt/ortofoto/mapslt_ortofoto_vector_512/map/_alllayers/L{0:00}/R{1:x8}/C{2:x8}.jpg", zoom, row, col);
                //        // http://arcgis.maps.lt/ArcGIS/rest/services/mapslt/MapServer/tile/7/1162/1684.png
                //        // http://dc1.maps.lt/cache/mapslt_512/map/_alllayers/L03/R0000001b/C00000029.png

                //        // http://dc1.maps.lt/cache/mapslt/map/_alllayers/L02/R0000001c/C00000029.png
                //        return string.Format("http://dc1.maps.lt/cache/mapslt/map/_alllayers/L{0:00}/R{1:x8}/C{2:x8}.png", zoom, row, col);
                //    }

                //case WebServiceType.MapsLT_Map_2_5D:
                //    {
                //        // http://dc1.maps.lt/cache/mapslt_25d_vkkp/map/_alllayers/L01/R00007194/C0000a481.png
                //        int z = zoom;
                //        if (zoom >= 10)
                //        {
                //            z -= 10;
                //        }

                //        return string.Format("http://dc1.maps.lt/cache/mapslt_25d_vkkp/map/_alllayers/L{0:00}/R{1:x8}/C{2:x8}.png", z, row, col);
                //    }

                //case WebServiceType.MapsLT_Map_Labels:
                //    {
                //        //http://arcgis.maps.lt/ArcGIS/rest/services/mapslt_ortofoto_overlay/MapServer/tile/0/9/13
                //        //return string.Format("http://arcgis.maps.lt/ArcGIS/rest/services/mapslt_ortofoto_overlay/MapServer/tile/{0}/{1}/{2}", zoom, row, col);
                //        //http://dc1.maps.lt/cache/mapslt_ortofoto_overlay_512/map/_alllayers/L03/R0000001d/C00000029.png

                //        return string.Format("http://dc1.maps.lt/cache/mapslt_ortofoto_overlay/map/_alllayers/L{0:00}/R{1:x8}/C{2:x8}.png", zoom, row, col);
                //    }
                #endregion

                #region -- KarteLV --

                //case WebServiceType.KarteLV_Map:
                //    {
                //        // http://www.maps.lt/cache/ikartelv/map/_alllayers/L03/R00000037/C00000053.png

                //        return string.Format("http://www.maps.lt/cache/ikartelv/map/_alllayers/L{0:00}/R{1:x8}/C{2:x8}.png", zoom, row, col);
                //    }

                #endregion

                #region -- YandexMap --
                //case WebServiceType.YandexMapRu:
                //    {
                //        string server = "vec";

                //        //http://vec01.maps.yandex.ru/tiles?l=map&v=2.10.2&x=1494&y=650&z=11

                //        return string.Format("http://{0}0{1}.maps.yandex.ru/tiles?l=map&v={2}&x={3}&y={4}&z={5}", server, GetServerNum(row, col, 4) + 1, VersionYandexMap, col, row, zoom);
                //    }

                //case WebServiceType.YandexMapRuSatellite:
                //    {
                //        string server = "sat";

                //        //http://sat04.maps.yandex.ru/tiles?l=sat&v=1.18.0&x=149511&y=83513&z=18&g=Gagari

                //        return string.Format("http://{0}0{1}.maps.yandex.ru/tiles?l=sat&v={2}&x={3}&y={4}&z={5}", server, GetServerNum(row, col, 4) + 1, VersionYandexSatellite, col, row, zoom);
                //    }

                //case WebServiceType.YandexMapRuLabels:
                //    {
                //        string server = "vec";

                //        //http://vec03.maps.yandex.ru/tiles?l=skl&v=2.15.0&x=585&y=326&z=10&g=G

                //        return string.Format("http://{0}0{1}.maps.yandex.ru/tiles?l=skl&v={2}&x={3}&y={4}&z={5}", server, GetServerNum(row, col, 4) + 1, VersionYandexMap, col, row, zoom);
                //    }

                #endregion

                #region -- WMS demo --
                //case WebServiceType.MapBenderWMS:
                //    {
                //        var px1 = ProjectionForWMS.FromTileXYToPixel(T);
                //        var px2 = px1;

                //        px1.Offset(0, ProjectionForWMS.TileSize.Height);
                //        PointLatLng p1 = ProjectionForWMS.FromPixelToLatLng(px1, zoom);

                //        px2.Offset(ProjectionForWMS.TileSize.Width, 0);
                //        PointLatLng p2 = ProjectionForWMS.FromPixelToLatLng(px2, zoom);

                //        var ret = string.Format(CultureInfo.InvariantCulture, "http://mapbender.wheregroup.com/cgi-bin/mapserv?map=/data/umn/osm/osm_basic.map&VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&LAYERS=OSM_Basic&styles=&bbox={0},{1},{2},{3}&width={4}&height={5}&srs=EPSG:4326&format=image/png", p1.Lng, p1.Lat, p2.Lng, p2.Lat, ProjectionForWMS.TileSize.Width, ProjectionForWMS.TileSize.Height);

                //        return ret;
                //    }
                #endregion

                #region -- NearMap --
                //case WebServiceType.NearMap:
                //    {
                //        // http://web1.nearmap.com/maps/hl=en&x=18681&y=10415&z=15&nml=Map_&nmg=1&s=kY8lZssipLIJ7c5

                //        return string.Format("http://web{0}.nearmap.com/maps/hl=en&x={1}&y={2}&z={3}&nml=Map_&nmg=1", GetServerNum(row, col, 3), col, row, zoom);
                //    }

                //case WebServiceType.NearMapSatellite:
                //    {
                //        // http://web2.nearmap.com/maps/hl=en&x=34&y=20&z=6&nml=Vert&s=2NYYKGF

                //        return string.Format("http://web{0}.nearmap.com/maps/hl=en&x={1}&y={2}&z={3}&nml=Vert", GetServerNum(row, col, 3), col, row, zoom);
                //    }

                //case WebServiceType.NearMapLabels:
                //    {
                //        //http://web1.nearmap.com/maps/hl=en&x=37&y=19&z=6&nml=MapT&nmg=1&s=2KbhmZZ             

                //        return string.Format("http://web{0}.nearmap.com/maps/hl=en&x={1}&y={2}&z={3}&nml=MapT&nmg=1", GetServerNum(row, col, 3), col, row, zoom);
                //    }

                #endregion

            }

            return "";
        }
Ejemplo n.º 16
0
 public static IApplicationBuilder UseErrorHandler(this IApplicationBuilder builder, int statusCode,
     IErrorPage page, WebServiceType type)
 {
     return builder.UseMiddleware<ErrorHandler>(statusCode, page, type);
 }
Ejemplo n.º 17
0
 public void SetStatus(WebServiceType type, bool online, string errorMessage)
 {
     _statusDictionary[type] = CreateStatus(online, errorMessage);
 }
Ejemplo n.º 18
0
 private void Handle(WebServiceType type, ServiceUnavailableException ex, string additionalErrorInfo)
 {
     _servicesStatus.SetStatus(type, false, ex.Message);
     _errorHandler.Warn(new Exception(additionalErrorInfo, ex.InnerException));
 }
Ejemplo n.º 19
0
 public bool IsOnline(WebServiceType type)
 {
     return(_statusDictionary[type].Item1);
 }
Ejemplo n.º 20
0
 public DateTime GetTimeUpdated(WebServiceType type)
 {
     return(_statusDictionary[type].Item3);
 }
Ejemplo n.º 21
0
 public string GetErrorMessage(WebServiceType type)
 {
     return(_statusDictionary[type].Item2);
 }
Ejemplo n.º 22
0
        public void Create(WebServiceType ServiceType)
        {
            Type = ServiceType;

            switch (ServiceType)
            {

                #region -- Google --

                case (WebServiceType.GoogleMap):
                case (WebServiceType.GoogleSatellite):
                case (WebServiceType.GoogleLabels):
                case (WebServiceType.GoogleTerrain):
                case (WebServiceType.GoogleHybrid):

                case (WebServiceType.GoogleMapChina):
                case (WebServiceType.GoogleSatelliteChina):
                case (WebServiceType.GoogleLabelsChina):
                case (WebServiceType.GoogleTerrainChina):
                case (WebServiceType.GoogleHybridChina):
                    {
                        TryCorrectGoogleVersions();
                        Copyright = string.Format("©{0} Google - Map data ©{0} Tele Atlas, Imagery ©{0} TerraMetrics", DateTime.Today.Year);
                    }
                    break;
                #endregion

                #region -- Yahoo --
                case (WebServiceType.YahooMap):
                case (WebServiceType.YahooSatellite):
                case (WebServiceType.YahooLabels):
                case (WebServiceType.YahooHybrid):
                    {
                        Copyright = string.Format("© Yahoo! Inc. - Map data & Imagery ©{0} NAVTEQ", DateTime.Today.Year);
                    }
                    break;
                #endregion

                #region -- Bing --
                case (WebServiceType.BingMap):
                case (WebServiceType.BingMap_New):
                case (WebServiceType.BingSatellite):
                case (WebServiceType.BingHybrid):
                    {
                        TryCorrectBingVersions();
                        Copyright = string.Format("©{0} Microsoft Corporation, ©{0} NAVTEQ, ©{0} Image courtesy of NASA", DateTime.Today.Year);
                    }
                    break;
                #endregion

                #region -- ArcGIS --
                case (WebServiceType.ArcGIS_StreetMap_World_2D):
                case (WebServiceType.ArcGIS_Imagery_World_2D):
                case (WebServiceType.ArcGIS_ShadedRelief_World_2D):
                case (WebServiceType.ArcGIS_Topo_US_2D):
                case (WebServiceType.ArcGIS_World_Physical_Map):
                case (WebServiceType.ArcGIS_World_Shaded_Relief):
                case (WebServiceType.ArcGIS_World_Street_Map):
                case (WebServiceType.ArcGIS_World_Terrain_Base):
                case (WebServiceType.ArcGIS_World_Topo_Map):
                    {
                        Copyright = string.Format("©{0} ESRI - Map data ©{0} ArcGIS", DateTime.Today.Year);
                    }
                    break;

                #endregion

                #region -- OpenStreet --
                case (WebServiceType.OpenStreetMap):
                case (WebServiceType.OpenStreetOsm):
                case (WebServiceType.OpenStreetMapSurfer):
                case (WebServiceType.OpenStreetMapSurferTerrain):
                case (WebServiceType.OpenSeaMapLabels):
                case (WebServiceType.OpenSeaMapHybrid):
                case (WebServiceType.OpenCycleMap):
                    {
                        Copyright = string.Format("© OpenStreetMap - Map data ©{0} OpenStreetMap", DateTime.Today.Year);
                    }
                    break;
                #endregion

            }

            switch (ServiceType)
            {
                case (WebServiceType.ArcGIS_StreetMap_World_2D):
                case (WebServiceType.ArcGIS_Topo_US_2D):
                case (WebServiceType.ArcGIS_World_Topo_Map):
                    {
                        ProjectionInfo prjinfo = KnownCoordinateSystems.Geographic.World.WGS1984;
                        Extent MaxExtent = new Extent(-180.0, -90, 180, 90);
                        Size tlSize = new Size(256, 256);
                        int StartNumX = 2;
                        int StartNumY = 1;

                        CreateAuto(prjinfo, 20, MaxExtent, tlSize, StartNumX, StartNumY);
                    }
                    break;
                case (WebServiceType.ArcGIS_ShadedRelief_World_2D):
                    {
                        ProjectionInfo prjinfo = KnownCoordinateSystems.Geographic.World.WGS1984;
                        Extent MaxExtent = new Extent(-180.0, -90, 180, 90);
                        Size tlSize = new Size(256, 256);
                        int StartNumX = 2;
                        int StartNumY = 1;

                        CreateAuto(prjinfo, 12, MaxExtent, tlSize, StartNumX, StartNumY);
                    }
                    break;

                case (WebServiceType.ArcGIS_Imagery_World_2D):
                    {
                        ProjectionInfo prjinfo = KnownCoordinateSystems.Geographic.World.WGS1984;
                        Extent MaxExtent = new Extent(-180.0, -90, 180, 90);
                        Size tlSize = new Size(256, 256);
                        int StartNumX = 2;
                        int StartNumY = 1;

                        CreateAuto(prjinfo, 9, MaxExtent, tlSize, StartNumX, StartNumY);
                    }
                    break;

                default:
                    {
                        ProjectionInfo prjinfo = KnownCoordinateSystems.Projected.World.WebMercator;
                        Extent MaxExtent = new Extent(-20037508.342789, -20037508.342789, 20037508.342789, 20037508.342789);
                        Size tlSize = new Size(256, 256);
                        int StartNumX = 1;
                        int StartNumY = 1;

                        CreateAuto(prjinfo, 20, MaxExtent, tlSize, StartNumX, StartNumY);
                    }
                    break;
            }
        }
Ejemplo n.º 23
0
 private void Handle(WebServiceType type, ServiceException ex, string additionalErrorInfo)
 {
     _servicesStatus.SetStatus(type, true);
     _errorHandler.Warn(new Exception(additionalErrorInfo, ex));
 }