/// <summary> /// Adds or updates the given model in the database /// depending on its state. /// </summary> /// <param name="model">The model</param> public void SaveFolder(Data.MediaFolder model) { App.Hooks.OnBeforeSave <MediaFolder>(model); var folder = db.MediaFolders .FirstOrDefault(f => f.Id == model.Id); if (folder == null) { folder = new Data.MediaFolder() { Id = model.Id != Guid.Empty ? model.Id : Guid.NewGuid(), Created = DateTime.Now }; model.Id = folder.Id; db.MediaFolders.Add(folder); } App.Mapper.Map <Data.MediaFolder, Data.MediaFolder>(model, folder); db.SaveChanges(); App.Hooks.OnAfterSave <MediaFolder>(model); RemoveFromCache(folder); RemoveStructureFromCache(); }
protected override void Init() { using (var api = new Api(services, GetDb(), storage, cache)) { Piranha.App.Init(api); // Add media folders var folder1 = new Data.MediaFolder() { Name = "Images" }; api.Media.SaveFolder(folder1); folder1Id = folder1.Id; // Add media using (var stream = File.OpenRead("../../../Assets/HLD_Screenshot_01_mech_1080.png")) { var image1 = new Models.StreamMediaContent() { Filename = "HLD_Screenshot_01_mech_1080.png", Data = stream }; api.Media.Save(image1); image1Id = image1.Id.Value; } using (var stream = File.OpenRead("../../../Assets/HLD_Screenshot_01_rise_1080.png")) { var image2 = new Models.StreamMediaContent() { FolderId = folder1Id, Filename = "HLD_Screenshot_01_rise_1080.png", Data = stream }; api.Media.Save(image2); image2Id = image2.Id.Value; } using (var stream = File.OpenRead("../../../Assets/HLD_Screenshot_01_robot_1080.png")) { var image3 = new Models.StreamMediaContent() { Filename = "HLD_Screenshot_01_robot_1080.png", Data = stream }; api.Media.Save(image3); image3Id = image3.Id.Value; } } }
/// <summary> /// Adds or updates the given model in the database /// depending on its state. /// </summary> /// <param name="model">The model</param> /// <param name="transaction">The optional transaction</param> public void SaveFolder(Data.MediaFolder model, IDbTransaction transaction = null) { var insert = db.ExecuteScalar <int>($"SELECT COUNT(*) FROM [{FOLDERTABLE}] where [Id]=@Id", model, transaction: transaction) == 0; // Prepare model.Id = !string.IsNullOrWhiteSpace(model.Id) ? model.Id : Guid.NewGuid().ToString(); model.Created = insert ? DateTime.Now : model.Created; if (insert) { db.Execute($"INSERT INTO [{FOLDERTABLE}] ([Id],[ParentId],[Name],[Created]) VALUES(@Id,@ParentId,@Name,@Created)", model, transaction: transaction); } else { db.Execute($"UPDATE [{FOLDERTABLE}] SET [Id]=@Id,[ParentId]=@ParentId,[Name]=@Name WHERE [Id]=@Id", model, transaction: transaction); } RemoveStructureFromCache(); }
/// <summary> /// Adds or updates the given model in the database /// depending on its state. /// </summary> /// <param name="model">The model</param> public async Task SaveFolder(Models.MediaFolder model) { var folder = await _db.MediaFolders .FirstOrDefaultAsync(f => f.Id == model.Id) .ConfigureAwait(false); if (folder == null) { folder = new Data.MediaFolder() { Id = model.Id != Guid.Empty ? model.Id : Guid.NewGuid(), Created = DateTime.Now }; model.Id = folder.Id; await _db.MediaFolders.AddAsync(folder).ConfigureAwait(false); } folder.ParentId = model.ParentId; folder.Name = model.Name; await _db.SaveChangesAsync().ConfigureAwait(false); }
/// <summary> /// Deletes the given model. /// </summary> /// <param name="model">The media</param> /// <param name="transaction">The optional transaction</param> public void DeleteFolder(Data.MediaFolder model, IDbTransaction transaction = null) { db.Execute($"DELETE FROM [{FOLDERTABLE}] WHERE [Id]=@Id", model, transaction: transaction); RemoveFromCache(model); }
/// <summary> /// Deletes the given model. /// </summary> /// <param name="model">The media</param> public void DeleteFolder(Data.MediaFolder model) { DeleteFolder(model.Id); }