Exemplo n.º 1
0
        //
        /// <summary>
        /// Frequency of use: Regularly
        /// Function: Return New url:Image By params
        /// Scope: Every where
        /// </summary>
        /// <param name="url"></param>
        /// <param name="w"></param>
        /// <param name="h"></param>
        /// <param name="watermark"></param>
        /// http://admin.selectgo.vn/external/api/images/get?url=http://storage.selectgo.vn/media/uploads-1/avatar/product/3000x/2020/07/16/venice-1594876195323.png&namespace=/uploads-1/&indicatedate=2020/07/16&w=200&h=200&compression=100&watermark=
        public static string GetResize(string url, int w = -1, int h = -1, string watermark = "", string sizeDefault = "200x200", long compression = 60L)
        {
            if (url == null)
            {
                return("");
            }
            //return url;
            if (url.EndsWith(".gif"))
            {
                return(url);
            }
            if (!url.StartsWith(AppConfigs.LinksMedia))
            {
                return(url);
            }

            var re = (url == "" ? Helper.GetResize("~") : Helper.GetResize(url, w, h, watermark, compression));

            if (_cndProvider == null)
            {
                _cndProvider = new CDNProvider();
            }
            if (_cndProvider.Initialise("*") != false)
            {
                var newLinksMedia = _cndProvider.GetPreferCnd();
                if (newLinksMedia != AppConfigs.LinksMedia)
                {
                    var rex = re.Replace(AppConfigs.LinksMedia, _cndProvider.GetPreferCnd()); // resover

                    // Cache:
                    var key    = "UrlOnline::" + (rex);
                    var vlData = DefaultCacheProvider.Get <string>(key);
                    if (vlData == null)
                    {
                        vlData = _cndProvider.UrlIsOnline(rex) == true ? "OK" : null;
                        DefaultCacheProvider.Add(vlData, key, createFolder: false);
                    }
                    if (vlData == "OK")
                    {
                        re = rex;
                    }
                }
            }

            if (re.Contains("-1x-1"))
            {
                re = re.Replace("-1x-1", sizeDefault);
            }
            return(re);
        }
Exemplo n.º 2
0
        public Task GetCDNSetting([FromForm] CDNProviderType type)
        {
            CDNProvider  provider = ProviderAgent.Instance().GetCDNProviderInfo(type);
            ICDNProvider cdn      = provider?.Setting;

            if (cdn == null)
            {
                return(this.GetResult(true));
            }
            else
            {
                return(this.GetResult(cdn.ToSetting()));
            }
        }