/// <summary>
        /// This method generates Tags for the Image
        /// </summary>
        /// <param name="filename"></param>
        /// <returns></returns>
        public string GenerateTags(string filename)
        {
            try
            {
                string           resStr   = string.Empty;
                ImageTagResponse response = null;
                var uri        = AppConfiguration.GetConfiguration("ApiUrl");
                var imgUrl     = filename;
                var objRequest = new
                {
                    url = imgUrl
                };
                using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", AppConfiguration.GetConfiguration("ApiKey"));
                    StringContent content = new StringContent(JsonConvert.SerializeObject(objRequest), Encoding.UTF8, "application/json");
                    // HTTP POST
                    HttpResponseMessage resMsg = client.PostAsync(uri, content).Result;

                    if (resMsg.IsSuccessStatusCode)
                    {
                        resStr   = resMsg.Content.ReadAsStringAsync().Result;
                        response = JsonConvert.DeserializeObject <ImageTagResponse>(resStr);
                    }
                }
                return(resStr);
            }
            catch (Exception ex)
            {
                Logger.writelog(ex.Message);
                return("");
            }
        }
        public ImageTagResponse Upload()
        {
            ImageTagResponse responseModel = new ImageTagResponse();

            try
            {
                var files = Request.Form.Files;
                if (files == null && files.Count <= 0)
                {
                    return(null);
                }

                var    extension = Path.GetExtension(files[0].FileName);
                var    fileName  = string.Format(@"{0}" + extension, Guid.NewGuid());
                string mimeType  = files[0].ContentType;
                byte[] fileBytes;
                using (var ms = new MemoryStream())
                {
                    files[0].CopyTo(ms);
                    fileBytes = ms.ToArray();
                }

                BlobStorageService objBlobService = new BlobStorageService();
                Image image = new Image
                {
                    Path         = objBlobService.UploadFileToBlob(fileName, fileBytes, mimeType),
                    Name         = fileName,
                    CreateDate   = DateTime.Now,
                    LastModified = DateTime.Now,
                    ExternalKey  = _externalKey
                };

                string tagResult = objBlobService.GenerateTags(image.Path);
                image.Tags = tagResult;
                _context.ImageRepo.Add(image);
                _context.SaveChanges();
                var resultId = image.ImageId;

                if (!string.IsNullOrWhiteSpace(tagResult))
                {
                    responseModel = JsonConvert.DeserializeObject <ImageTagResponse>(tagResult);
                }
                if (responseModel != null)
                {
                    responseModel.ImageId = resultId;
                }
            }
            catch (Exception ex)
            {
                Logger.writelog(ex.Message);
                responseModel = null;
            }
            return(responseModel);
        }