/// <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(); }
/// <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(); } } }
/// <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(); } } }