Esempio n. 1
0
        /// <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();
        }
Esempio n. 2
0
        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;
                }
            }
        }
Esempio n. 3
0
        /// <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();
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
 /// <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);
 }
Esempio n. 6
0
 /// <summary>
 /// Deletes the given model.
 /// </summary>
 /// <param name="model">The media</param>
 public void DeleteFolder(Data.MediaFolder model)
 {
     DeleteFolder(model.Id);
 }