コード例 #1
0
        public void TestDelete()
        {
            // should allow deleting resources

            ImageUploadParams uploadParams = new ImageUploadParams()
            {
                File     = new FileDescription(m_testImagePath),
                PublicId = "testdelete"
            };

            m_cloudinary.Upload(uploadParams);

            GetResourceResult resource = m_cloudinary.GetResource("testdelete");

            Assert.IsNotNull(resource);
            Assert.AreEqual("testdelete", resource.PublicId);

            DelResResult delResult = m_cloudinary.DeleteResources(
                "randomstringopa", "testdeletederived", "testdelete");

            Assert.AreEqual("not_found", delResult.Deleted["randomstringopa"]);
            Assert.AreEqual("deleted", delResult.Deleted["testdelete"]);

            resource = m_cloudinary.GetResource("testdelete");

            Assert.IsTrue(String.IsNullOrEmpty(resource.PublicId));
        }
コード例 #2
0
        public void TestRestoreNoBackup()
        {
            string publicId = GetUniquePublicId();

            ImageUploadParams uploadParams_nobackup = new ImageUploadParams()
            {
                File     = new FileDescription(m_testImagePath),
                PublicId = publicId,
                Tags     = m_apiTag
            };

            m_cloudinary.Upload(uploadParams_nobackup);
            GetResourceResult resource = m_cloudinary.GetResource(publicId);

            Assert.IsNotNull(resource);
            Assert.AreEqual(publicId, resource.PublicId);

            DelResResult delResult = m_cloudinary.DeleteResources(publicId);

            Assert.AreEqual("deleted", delResult.Deleted[publicId]);

            resource = m_cloudinary.GetResource(publicId);
            Assert.IsTrue(string.IsNullOrEmpty(resource.PublicId));

            RestoreResult rResult = m_cloudinary.Restore(publicId);

            Assert.IsNotNull(rResult.JsonObj[publicId], string.Format("Should contain key \"{0}\". ", publicId));
            Assert.AreEqual("no_backup", rResult.JsonObj[publicId]["error"].ToString());
        }
コード例 #3
0
        public void TestDeleteByTag()
        {
            // should allow deleting resources

            ImageUploadParams uploadParams = new ImageUploadParams()
            {
                File     = new FileDescription(m_testImagePath),
                PublicId = "api_test4",
                Tags     = "api_test_tag_for_delete"
            };

            m_cloudinary.Upload(uploadParams);

            GetResourceResult resource = m_cloudinary.GetResource(
                "api_test4");

            Assert.IsNotNull(resource);
            Assert.AreEqual("api_test4", resource.PublicId);

            DelResResult delResult = m_cloudinary.DeleteResourcesByTag(
                "api_test_tag_for_delete");

            resource = m_cloudinary.GetResource("api_test4");

            Assert.IsTrue(String.IsNullOrEmpty(resource.PublicId));
        }
コード例 #4
0
        public async Task <ActionResult <bool> > Delete(long id)
        {
            //Check if gear item exists
            GearItemViewModel gearItemToDelete = await this._supervisor.GetGearItemByIdAsync(id);

            if (gearItemToDelete == null)
            {
                return(BadRequest(Errors.AddErrorToModelState(ErrorCodes.GearItemNotFound, ErrorDescriptions.GearItemDeleteFailure, ModelState)));
            }

            if (gearItemToDelete.Images.Count() > 0)
            {
                DelResResult deletedFromCloudinary = await this._cloudinary.DeleteResources(gearItemToDelete);

                if (deletedFromCloudinary.StatusCode != HttpStatusCode.OK)
                {
                    return(BadRequest(Errors.AddErrorToModelState(ErrorCodes.CloudinaryDelete, ErrorDescriptions.CloudinaryImageDeleteFailure, ModelState)));
                }
            }

            if (!await _supervisor.DeleteGearItemAsync(id))
            {
                return(BadRequest(Errors.AddErrorToModelState(ErrorCodes.GearItemDelete, ErrorDescriptions.GearItemDeleteFailure, ModelState)));
            }

            return(new OkObjectResult(true));
        }
コード例 #5
0
        public void TestDeleteResultDeleteCountProperty()
        {
            // should allow deleting resources by transformations
            var publicId = GetUniquePublicId();

            var transformations = new List <Transformation>
            {
                m_simpleTransformation,
                m_simpleTransformationAngle,
                m_explicitTransformation
            };

            var uploadParams = new ImageUploadParams()
            {
                File            = new FileDescription(m_testImagePath),
                PublicId        = publicId,
                Tags            = m_apiTag,
                EagerTransforms = transformations
            };

            m_cloudinary.Upload(uploadParams);

            var delParams = new DelResParams {
                Transformations = transformations
            };

            delParams.PublicIds.Add(publicId);

            DelResResult delResult = m_cloudinary.DeleteResources(delParams);

            Assert.IsNotNull(delResult.Deleted, delResult.Error?.Message);
            Assert.AreEqual(1, delResult.DeletedCounts.Count);
        }
コード例 #6
0
        public void TestDelete()
        {
            // should allow deleting resources
            var publicId            = GetUniquePublicId();
            var nonExistingPublicId = GetUniquePublicId();

            ImageUploadParams uploadParams = new ImageUploadParams()
            {
                File     = new FileDescription(m_testImagePath),
                PublicId = publicId,
                Tags     = m_apiTag
            };

            m_cloudinary.Upload(uploadParams);

            GetResourceResult resource = m_cloudinary.GetResource(publicId);

            Assert.IsNotNull(resource);
            Assert.AreEqual(publicId, resource.PublicId);

            DelResResult delResult = m_cloudinary.DeleteResources(
                nonExistingPublicId, publicId);

            Assert.AreEqual("not_found", delResult.Deleted[nonExistingPublicId]);
            Assert.AreEqual("deleted", delResult.Deleted[publicId]);

            resource = m_cloudinary.GetResource(publicId);

            Assert.IsTrue(String.IsNullOrEmpty(resource.PublicId));
        }
コード例 #7
0
        public void TestDeleteByTag()
        {
            // should allow deleting resources
            var publicId = GetUniquePublicId();
            var tag      = GetMethodTag();

            ImageUploadParams uploadParams = new ImageUploadParams()
            {
                File     = new FileDescription(m_testImagePath),
                PublicId = publicId,
                Tags     = $"{tag},{m_apiTag}"
            };

            m_cloudinary.Upload(uploadParams);

            GetResourceResult resource = m_cloudinary.GetResource(publicId);

            Assert.IsNotNull(resource);
            Assert.AreEqual(publicId, resource.PublicId);

            DelResResult delResult = m_cloudinary.DeleteResourcesByTag(tag);

            resource = m_cloudinary.GetResource(publicId);
            Assert.IsTrue(String.IsNullOrEmpty(resource.PublicId));
        }
        public async Task <bool> DeleteFile(string fileName)
        {
            Guard.WhenArgument(
                fileName,
                GlobalConstants.FileNameRequiredExceptionMessage).IsNullOrWhiteSpace().Throw();

            var delParams = new DelResParams()
            {
                PublicIds = new List <string>()
                {
                    fileName
                },
                Invalidate = true
            };

            DelResResult delResult = null;

            try
            {
                delResult = await this.cloud.DeleteResourcesAsync(delParams);
            }
            catch (Exception)
            {
                // Log stuff
            }

            return(delResult.StatusCode == HttpStatusCode.OK);
        }
コード例 #9
0
        public async Task <ActionResult <bool> > Delete([FromBody] long[] ids)
        {
            for (int i = 0; i < ids.Length; i++)
            {
                LeagueImageViewModel leagueImageToDelete = await this._supervisor.GetLeagueImageByIdAsync(ids[i]);

                if (leagueImageToDelete == null)
                {
                    return(BadRequest(Errors.AddErrorToModelState(ErrorCodes.LeagueImageNotFound, ErrorDescriptions.LeagueImageDeleteFailure, ModelState)));
                }

                DelResResult deletedFromCloudinary = await this._cloudinary.DeleteResource(leagueImageToDelete.CloudinaryPublicId);

                if (deletedFromCloudinary.StatusCode != HttpStatusCode.OK)
                {
                    return(BadRequest(Errors.AddErrorToModelState(ErrorCodes.CloudinaryDelete, ErrorDescriptions.CloudinaryImageDeleteFailure, ModelState)));
                }

                if (!await _supervisor.DeleteLeagueImageAsync(leagueImageToDelete.Id))
                {
                    return(BadRequest(Errors.AddErrorToModelState(ErrorCodes.LeagueImageDelete, ErrorDescriptions.LeagueImageDeleteFailure, ModelState)));
                }
            }

            return(new OkObjectResult(true));
        }
コード例 #10
0
        public void DeleteResources()
        {
            Cloudinary cloudinary = TestUtilities.GetCloudinary();

            TestUtilities.UploadImageWithName();
            Debugger.Break();
            DelResResult delResResult = cloudinary.DeleteResources("zombie");

            TestUtilities.LogAndWrite(delResResult, "DeleteResources.txt");
        }
コード例 #11
0
        public void Cleanup()
        {
            string       publicId  = string.Format("TestForTagSearch_{0}", m_suffix);
            DelResResult delResult = m_cloudinary.DeleteResources(new string[] { publicId });

            publicId  = string.Concat(m_suffix, "_TestForTagSearch");
            delResult = m_cloudinary.DeleteResources(new string[] { publicId });
            publicId  = string.Concat(m_suffix, "_TestForSearch");
            delResult = m_cloudinary.DeleteResources(new string[] { publicId });
        }
コード例 #12
0
        public async Task <DelResResult> DeleteResourcesAsync(DelResParams parameters)
        {
            var url = Api.ApiUrlV.Add("resources").Add(Api.GetCloudinaryParam(parameters.ResourceType));

            using (
                var response = await Api.CallAsync(HttpMethod.Delete,
                                                   new UrlBuilder((string.IsNullOrEmpty(parameters.Tag) ? url.Add(parameters.Type) : url.Add("tags").Add(parameters.Tag)).BuildUrl(), parameters.ToParamsDictionary()).ToString(), null,
                                                   null, null))
            {
                return(await DelResResult.Parse(response));
            }
        }
コード例 #13
0
        public void DeleteCloudinaryRecipeImage(string imageName)
        {
            CloudinaryDotNet.Cloudinary cloudinaryDelete = new CloudinaryDotNet.Cloudinary(cloudinaryAccount);

            var delParams = new DelResParams()
            {
                PublicIds = new List <string>()
                {
                    Path.GetFileNameWithoutExtension(imageName)
                },
                Invalidate = true
            };
            DelResResult result = cloudinaryDelete.DeleteResources(delParams);
        }
コード例 #14
0
 private static void DeleteRecipeImage(string recipeImageURL)
 {
     Cloudinary cloudinaryDelete = new Cloudinary(cloudinaryAccount);
     string     recipeImageURLWithoutExtension = recipeImageURL.Substring(0, recipeImageURL.LastIndexOf('.'));
     string     recipeImagePublicID            = recipeImageURLWithoutExtension.Substring(recipeImageURLWithoutExtension.IndexOf("Recipes"));
     var        delParams = new DelResParams()
     {
         PublicIds = new List <string>()
         {
             recipeImagePublicID
         },
         Invalidate = true
     };
     DelResResult result = cloudinaryDelete.DeleteResources(delParams);
 }
コード例 #15
0
        private static void DeleteCloudinaryProfileImage(string username, string applicationName)
        {
            Cloudinary cloudinaryDelete = new Cloudinary(cloudinaryAccount);
            string     profileImageURL  = String.Format(@"{0}/{1}/{2}", cloudinaryAccountsFolder, applicationName, username);

            var delParams = new DelResParams()
            {
                PublicIds = new List <string>()
                {
                    profileImageURL
                },
                Invalidate = true
            };
            DelResResult result = cloudinaryDelete.DeleteResources(delParams);
        }
コード例 #16
0
    public async Task <DelResResult> DeleteResources(GearItemViewModel gearItem)
    {
        DelResResult result = null;

        foreach (GearImageViewModel gearImage in gearItem.Images)
        {
            result = await this.DeleteResource(gearImage.CloudinaryPublicId);

            if (result.StatusCode != HttpStatusCode.OK)
            {
                return(result);
            }
        }
        return(result);
    }
コード例 #17
0
        public void TestDeleteByTagAndTransformation()
        {
            // should allow deleting resources
            string publicId = GetUniquePublicId();
            string tag      = GetMethodTag();

            var uploadParams = new ImageUploadParams()
            {
                File            = new FileDescription(m_testImagePath),
                PublicId        = publicId,
                Tags            = tag,
                EagerTransforms = new List <Transformation>()
                {
                    m_simpleTransformation,
                    m_simpleTransformationAngle,
                    m_explicitTransformation
                },
            };

            m_cloudinary.Upload(uploadParams);

            DelResResult delResult = m_cloudinary.DeleteResources(new DelResParams
            {
                Tag             = tag,
                Transformations = new List <Transformation> {
                    m_simpleTransformation
                }
            });

            Assert.NotNull(delResult.Deleted);
            Assert.AreEqual(delResult.Deleted.Count, 1);

            delResult = m_cloudinary.DeleteResources(new DelResParams
            {
                Tag             = tag,
                Transformations = new List <Transformation>()
                {
                    m_simpleTransformationAngle, m_explicitTransformation
                }
            });

            Assert.NotNull(delResult.Deleted);

            GetResourceResult resource = m_cloudinary.GetResource(publicId);

            Assert.IsNotNull(resource);
            Assert.AreEqual(resource.Derived.Length, 0);
        }
コード例 #18
0
        public void ForcingCacheInvalidation()
        {
            TestUtilities.UploadImageWithName();
            Debugger.Break();
            Cloudinary   cloudinary = TestUtilities.GetCloudinary();
            DelResParams delParams  = new DelResParams
            {
                PublicIds = new List <string> {
                    "zombie"
                },
                Invalidate = true
            };
            DelResResult delResult = cloudinary.DeleteResources(delParams);

            TestUtilities.LogAndWrite(delResult, "ForcingCacheInvalidation.txt");
        }
コード例 #19
0
        public async Task <string> DeletePost(NewPostDTO deletePost)
        {
            Account account = new Account(
                "doua5pgdi",
                "696442329793211",
                "7eVrRtWC2xJ68tiNIAmBPb93bOU");

            Cloudinary   cloudinary = new Cloudinary(account);
            DelResParams delRes     = new DelResParams()
            {
                PublicIds = deletePost.Images.Where(i => i.Url != null).Select(i => i.Url.Split('/').Last()).ToList()
            };

            DelResResult results = await cloudinary.DeleteResourcesAsync(delRes);

            return(await postService.DeletePost(deletePost));
        }
コード例 #20
0
        private static void DeleteCloudinaryPDF(string pdfName)
        {
            string cloudinaryAccount        = ConfigurationManager.AppSettings["CLOUDINARY_URL"];
            string cloudinaryStoreURL       = ConfigurationManager.AppSettings["AccountsStoreURL"];
            string cloudinaryAccountsFolder = ConfigurationManager.AppSettings["AccountsFolderName"];

            Cloudinary cloudinaryDelete = new Cloudinary(cloudinaryAccount);

            var delParams = new DelResParams()
            {
                PublicIds = new List <string>()
                {
                    pdfName
                },
                Invalidate = true
            };
            DelResResult result = cloudinaryDelete.DeleteResources(delParams);
        }
コード例 #21
0
        public async Task <DelResResult> DeleteFileAsync(string publicId)
        {
            var isPresent = this.IsPresentAsync(publicId).Result;

            DelResResult result = new DelResResult();

            if (isPresent)
            {
                var delResParams = new DelResParams()
                {
                    PublicIds = new List <string>()
                    {
                        $"{publicId}"
                    }
                };
                result = await this.cloudinary.DeleteResourcesAsync(delResParams);
            }

            return(result);
        }
コード例 #22
0
        public DelResResult DeleteResources(DelResParams parameters)
        {
            Url url = m_api.ApiUrlV.
                      Add("resources").
                      Add(Api.GetCloudinaryParam <ResourceType>(parameters.ResourceType));

            if (String.IsNullOrEmpty(parameters.Tag))
            {
                url = url.Add(parameters.Type);
            }
            else
            {
                url = url.Add("tags").Add(parameters.Tag);
            }

            UrlBuilder urlBuilder = new UrlBuilder(url.BuildUrl());

            foreach (var param in parameters.ToParamsDictionary())
            {
                if (param.Value is IEnumerable <string> )
                {
                    foreach (var item in (IEnumerable)param.Value)
                    {
                        urlBuilder.QueryString.Add(String.Format("{0}[]", param.Key), item.ToString());
                    }
                }
                else
                {
                    urlBuilder.QueryString[param.Key] = param.Value.ToString();
                }
            }

            using (HttpWebResponse response = m_api.Call(
                       HttpMethod.DELETE, urlBuilder.ToString(), null, null))
            {
                DelResResult result = DelResResult.Parse(response);
                return(result);
            }
        }
コード例 #23
0
        public DelResResult DeleteResources(DelResParams parameters)
        {
            Url url = m_api.ApiUrlV.
                      Add("resources").
                      Add(Api.GetCloudinaryParam <ResourceType>(parameters.ResourceType));

            if (String.IsNullOrEmpty(parameters.Tag))
            {
                url = url.Add(parameters.Type);
            }
            else
            {
                url = url.Add("tags").Add(parameters.Tag);
            }

            UrlBuilder urlBuilder = new UrlBuilder(url.BuildUrl(), parameters.ToParamsDictionary());

            using (HttpWebResponse response = m_api.Call(
                       HttpMethod.DELETE, urlBuilder.ToString(), null, null))
            {
                DelResResult result = DelResResult.Parse(response);
                return(result);
            }
        }
コード例 #24
0
 private void AssertResourceDeletionResult(DelResResult delResult_backup, string publicId)
 {
     Assert.AreEqual("deleted", delResult_backup.Deleted[publicId]);
 }
コード例 #25
0
 private void AssertResourceDeleted(DelResResult result, string deletedPublicId, string nonExistingPublicId)
 {
     Assert.IsNotNull(result);
     Assert.AreEqual("not_found", result.Deleted[nonExistingPublicId]);
     Assert.AreEqual("deleted", result.Deleted[deletedPublicId]);
 }