Пример #1
0
        /// <summary>
        /// Create a new MimeType and MimeTypeGallery record for this instance.
        /// </summary>
        /// <exception cref="InvalidOperationException">Thrown when <see cref="MimeTypeId" /> is any value other than <see cref="Int32.MinValue" /></exception>
        private void SaveNew()
        {
            if (MimeTypeId != int.MinValue)
            {
                throw new InvalidOperationException("Cannot call SaveNew when the MIME type already exists in the data store.");
            }

            int mimeTypeId;

            using (var repo = new MimeTypeRepository())
            {
                var mimeTypeDto = new MimeTypeDto()
                {
                    FileExtension = Extension, MimeTypeValue = FullType, BrowserMimeTypeValue = BrowserMimeType
                };
                repo.Add(mimeTypeDto);
                repo.Save();

                mimeTypeId = mimeTypeDto.MimeTypeId;
            }

            using (var repo = new MimeTypeGalleryRepository())
            {
                repo.Add(new MimeTypeGalleryDto()
                {
                    FKGalleryId = GalleryId, FKMimeTypeId = mimeTypeId, IsEnabled = AllowAddToGallery
                });
                repo.Save();
            }

            // Clear the gallery cache. This will eventually trigger Gallery.Configure(), which will ensure that all galleries have a MimeTypeGallery record for
            // this MIME type.
            Factory.ClearGalleryCache();
        }
Пример #2
0
        /// <summary>
        /// Updates the data store records with the values of this instance.
        /// </summary>
        private void SaveExisting()
        {
            if (MimeTypeId == int.MinValue)
            {
                throw new InvalidOperationException("Cannot call SaveExisting for new MIME types.");
            }

            using (var repo = new MimeTypeRepository())
            {
                var mtDto = repo.Find(MimeTypeId);
                if (mtDto != null && mtDto.MimeTypeValue != FullType)
                {
                    mtDto.MimeTypeValue = FullType;
                    repo.Save();
                }
            }

            using (var repo = new MimeTypeGalleryRepository())
            {
                var mtDto = repo.Find(MimeTypeGalleryId);
                if (mtDto != null && mtDto.IsEnabled != AllowAddToGallery)
                {
                    mtDto.IsEnabled = AllowAddToGallery;
                    repo.Save();
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Permanently delete this MIME type from the data store.
        /// </summary>
        public void Delete()
        {
            if (MimeTypeId == int.MinValue)
            {
                return;
            }

            using (var repo = new MimeTypeRepository())
            {
                var mtDto = repo.Find(MimeTypeId);
                if (mtDto != null)
                {
                    repo.Delete(mtDto);
                    repo.Save();
                }
            }
        }