public void SaveModel(DocumentListWidget model)
 {
     using (var db = new DocumentListDbContext(_db))
     {
         db.DocumentListWidgets.Add(model);
         db.SaveChanges();
     }
 }
        public void UpdateModel(DocumentListWidget model)
        {
            using (var db = new DocumentListDbContext(_db))
            {
                db.Attach <DocumentListWidget>(model);
                db.Entry(model).State = Microsoft.EntityFrameworkCore.EntityState.Modified;

                db.SaveChanges();
            }
        }
 public DocumentListWidget GetModel(string widgetId)
 {
     using (var db = new DocumentListDbContext(_db))
     {
         return(db.DocumentListWidgets
                .Include(x => x.Documents)
                .Include(x => x.Folders)
                .FirstOrDefault(x => x.Id == widgetId));
     }
 }
        public DocumentListWidget CloneModel(DocumentListWidget model)
        {
            var originalWidgetId = model.Id;
            var cloned           = new DocumentListWidget()
            {
                Id        = Guid.NewGuid().ToString("N"),
                SiteId    = model.SiteId,
                Title     = model.Title,
                Documents = new List <DocumentListDocument>(),
                Folders   = new List <DocumentListFolder>(),
            };

            cloned.Documents = model.Documents.Select(x =>
                                                      new DocumentListDocument()
            {
                Id           = Guid.NewGuid().ToString("N"),
                Sort         = x.Sort,
                Title        = x.Title,
                WidgetId     = cloned.Id,
                ThumbnailUrl = x.ThumbnailUrl,
                DocumentId   = x.DocumentId,
                FolderId     = x.FolderId,
                Url          = x.Url
            }).ToList();

            var clonedFolders = new List <DocumentListFolder>();

            foreach (var folder in model.Folders.ToList())
            {
                var originalId     = folder.Id;
                var clonedFolderId = Guid.NewGuid().ToString("N");
                clonedFolders.Add(new DocumentListFolder()
                {
                    WidgetId = cloned.Id,
                    Sort     = folder.Sort,
                    Title    = folder.Title,
                    Id       = clonedFolderId
                });

                foreach (var clonedDocs in cloned.Documents.Where(x => x.FolderId == originalId))
                {
                    clonedDocs.FolderId = clonedFolderId;
                }
            }

            cloned.Folders = clonedFolders;

            using (var db = new DocumentListDbContext(_db))
            {
                db.DocumentListWidgets.Add(cloned);
                db.SaveChanges();
            }

            return(cloned);
        }
 public void DeleteModel(string widgetId)
 {
     using (var db = new DocumentListDbContext(_db))
     {
         var model = db.DocumentListWidgets.Include(x => x.Documents).FirstOrDefault(x => x.Id == widgetId);
         if (model == null)
         {
             return;                     // Another view/session already deleted it (race condition)
         }
         db.DocumentListWidgets.Remove(model);
         db.SaveChanges();
     }
 }
예제 #6
0
 public P510001_AddFolderTableAndSortField(DocumentListDbContext dbContext)
 {
     _dbContext = dbContext;
 }
예제 #7
0
 public DocumentListService(DocumentListDbContext db, ConnectDbContext connectDb)
 {
     _db        = db;
     _connectDb = connectDb;
 }
 public P510000_CreateInitialDocumentTables(DocumentListDbContext dbContext)
 {
     _dbContext = dbContext;
 }