public void SaveModel(SlideShowWidget model)
 {
     using (var db = new SlideShowDbContext(_db))
     {
         db.Widgets.Add(model);
         db.SaveChanges();
     }
 }
        public SlideDocumentService(SlideShowDbContext readDb, DbContextOptions <SlideShowDbContext> writeDb)
        {
            Ensure.NotNull(readDb);
            Ensure.NotNull(writeDb);

            this._readDb  = readDb;
            this._writeDb = writeDb;
        }
 public SlideShowWidget GetModel(string widgetId)
 {
     using (var db = new SlideShowDbContext(_db))
     {
         return(db.Widgets
                //.Include(x => x.SlideShow)
                .FirstOrDefault(x => x.Id == widgetId));
     }
 }
        public async Task <Slide> GetAsync(string documentId)
        {
            Ensure.NotNullOrEmpty(documentId);

            using (var db = new SlideShowDbContext(_writeDb))
            {
                return(await db.Slides.SingleOrDefaultAsync(x => x.DocumentId == documentId));
            }
        }
        public void UpdateModel(SlideShowWidget model)
        {
            using (var db = new SlideShowDbContext(_db))
            {
                db.Attach <SlideShowWidget>(model);
                db.Entry(model).State = Microsoft.EntityFrameworkCore.EntityState.Modified;

                db.SaveChanges();
            }
        }
        public async Task DeleteAsync(string documentId)
        {
            using (var db = new SlideShowDbContext(_writeDb))
            {
                var document = await db.Slides.FirstOrDefaultAsync(x => x.DocumentId == documentId);

                db.Slides.Remove(document);
                await db.SaveChangesAsync();
            }
        }
        public async Task <Slide> CreateAsync(Slide document)
        {
            using (var db = new SlideShowDbContext(_writeDb))
            {
                db.Slides.Add(document);
                await db.SaveChangesAsync();
            }

            return(document);
        }
 public void DeleteModel(string widgetId)
 {
     using (var db = new SlideShowDbContext(_db))
     {
         var model = db.Widgets.FirstOrDefault(x => x.Id == widgetId);
         if (model == null)
         {
             return;                     // Another view/session already deleted it (race condition)
         }
         db.Widgets.Remove(model);
         db.SaveChanges();
     }
 }
        public async Task <Slide> UpdateAsync(Slide document)
        {
            // TODO: How to handle non-Drive image URLs?  Thumbnails handled how?
            using (var db = new SlideShowDbContext(_writeDb))
            {
                db.Attach(document);
                db.Entry(document).State = EntityState.Modified;

                await db.SaveChangesAsync();
            }

            return(document);
        }
        public async Task DeleteByIdsAsync(IEnumerable <string> documentIds)
        {
            using (var db = new SlideShowDbContext(_writeDb))
            {
                var delete = documentIds.Select(x => db.Slides.SingleOrDefault(y => y.DocumentId == x)).Where(x => x != null);

                foreach (var item in delete)
                {
                    db.Slides.Remove(item);
                }

                await db.SaveChangesAsync();
            }
        }
        public SlideShowWidget CloneModel(SlideShowWidget model)
        {
            var clonedWidget = model.Clone();


            // TODO: Update any child models, eg slides, etc.
            using (var db = new SlideShowDbContext(_db))
            {
                var slides = db.Slides
                             .Include(x => x.Layers)
                             .Where(x => x.WidgetId == model.Id)
                             .OrderBy(x => x.Position).ToList();

                clonedWidget.Id = Guid.NewGuid().ToString("N");


                var cloneSlides = slides.Select(x => new Slide
                {
                    WidgetId           = clonedWidget.Id,
                    DocumentId         = Guid.NewGuid().ToString("N"),
                    Title              = x.Title ?? "",
                    Duration           = x.Duration,
                    ImageUrl           = x.ImageUrl ?? "",
                    Description        = x.Description,
                    Transition         = x.Transition,
                    Color              = x.Color,
                    Position           = x.Position,
                    Delay              = x.Delay,
                    UseVideoBackground = x.UseVideoBackground,
                    VideoUrl           = x.VideoUrl,
                    EnableVideoSound   = x.EnableVideoSound,
                    VideoSource        = x.VideoSource,
                    Layers             = x.Layers.Select(l => new SlideLayer
                    {
                        Id = Guid.NewGuid().ToString("N"),
                        //SlideId = x.DocumentId,
                        Title = l.Title,
                        HorizontalAlignment = Alignment.Center,
                        VerticalAlignment   = Alignment.Center,
                        Color      = l.Color,
                        SourceUrl  = l.SourceUrl,
                        FontFamily = l.FontFamily,
                        FontSize   = l.FontSize,
                        X          = l.X,
                        Y          = l.Y,
                        Transition = l.Transition,
                        Position   = l.Position,
                        LayerType  = l.LayerType,
                        Delay      = l.Delay,
                        Target     = l.Target
                    }).ToList()
                });

                db.Widgets.Add(clonedWidget);
                db.Slides.AddRange(cloneSlides);

                db.SaveChanges();
            }

            return(clonedWidget);
        }
Exemple #12
0
 public P610002_AddVideoBgToSlides(SlideShowDbContext dbContext)
 {
     _dbContext = dbContext;
 }
 public P610001_AddStylingFieldsToLayers(SlideShowDbContext dbContext)
 {
     _dbContext = dbContext;
 }
Exemple #14
0
 public P610000_CreateInitialSlideShowTables(SlideShowDbContext dbContext)
 {
     _dbContext = dbContext;
 }
Exemple #15
0
 public SlideShowService(SlideShowDbContext readDb, DbContextOptions <SlideShowDbContext> writeDb, ConnectDbContext connectDb)
 {
     _readDb    = readDb;
     _writeDb   = writeDb;
     _connectDb = connectDb;
 }
Exemple #16
0
 public P610003_IncreaseTitleAndUrlColumnSize(SlideShowDbContext dbContext)
 {
     _dbContext = dbContext;
 }