예제 #1
0
        public void ApproveEditRequest(EditRequest editRequest)
        {
            if (editRequest == null)
            {
                throw new ArgumentException("Provided deleteRequestId is not valid");
            }

            var materialToUpdate = editRequest.MaterialToUpdate;

            // since onDelete action on File_EditRequest FK constraint is SET NULL - we have to delete these files manually
            var filesFromOtherEditRequests = materialToUpdate.EditRequests.Where(er => er != editRequest).SelectMany(er => er.Files);

            _uow.Materials.RemoveFiles(filesFromOtherEditRequests);

            var oldMaterialFilesToRemove = editRequest.ApproveRequest(SharedResourcesLibrary.Properties.Resources.MaterialFilesUploadFolderName);

            // since onDelete action on File_Material FK constraint is RESTRICT - we have to delete these files manually before the material
            _uow.Materials.RemoveFiles(oldMaterialFilesToRemove);

            _uow.Materials.Update(materialToUpdate);
            _uow.SaveChanges();
        }