Example #1
0
        private void SearchLogoInCloud(string ticker, ref string logoLink)
        {
            var cloudinaryAccount = new CloudinaryDotNet.Account(
                _appSettings.CloudinaryCloudName,
                _appSettings.CloudinaryApiKey,
                _appSettings.CloudinaryApiSecret);
            var cloudinary       = new CloudinaryDotNet.Cloudinary(cloudinaryAccount);
            var checkLogoInCloud = cloudinary.GetResource(ticker);

            if (checkLogoInCloud.StatusCode == HttpStatusCode.OK)
            {
                logoLink = checkLogoInCloud.SecureUrl;
            }
            else
            {
                // если лого в облаке нет, попытаемся загрузить его туда
                try
                {
                    var uploadParams = new CloudinaryDotNet.Actions.ImageUploadParams()
                    {
                        File     = new CloudinaryDotNet.FileDescription(ticker + ".png", logoLink),
                        PublicId = ticker
                    };
                    var uploadResult = cloudinary.Upload(uploadParams);
                    if (uploadResult.StatusCode == HttpStatusCode.OK)
                    {
                        logoLink = uploadResult.SecureUrl?.ToString();
                    }
                }
                catch
                {
                    // если не получилось, оставляем logoLink как есть, т.е. ссылкой, полученной из StocksWebScraping.GetLogo
                }
            }
        }