public override void DeleteModule(IModule module) { if (module == null) throw new ArgumentNullException("module"); IModule m = GetModule(module.ID); if (m == null) return; LinqModule item = new LinqModule() { ApplicationName = this.ApplicationName, ContentRaw = module.ContentRaw, DateCreated = module.DateCreated, ID = module.ID, LastUpdated = m.LastUpdated, Title = module.Title }; using (ContentManagerDataContext db = new ContentManagerDataContext(ConfigurationManager.ConnectionStrings[this.ConnectionStringName].ConnectionString)) { Table<LinqModule> modules = db.GetTable<LinqModule>(); // Set to false to indicate that the object does not have a timestamp (RowVersion) modules.Attach(item, true); modules.DeleteOnSubmit(item); try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException ex) { Trace.TraceError(ex.Message); // All database values overwrite current values. foreach (ObjectChangeConflict occ in db.ChangeConflicts) occ.Resolve(RefreshMode.OverwriteCurrentValues); } catch (System.Data.Common.DbException ex) { Trace.TraceError(ex.Message); } } }
public override void UpdateModule(IModule module) { if (module == null) throw new ArgumentNullException("module"); IModule m = GetModule(module.ID); if (m == null) throw new ChangeConflictException("Page not found or deleted"); LinqModule item = new LinqModule() { ApplicationName = this.ApplicationName, ContentRaw = module.ContentRaw, DateCreated = module.DateCreated, ID = module.ID, LastUpdated = m.LastUpdated, Title = module.Title }; using (ContentManagerDataContext db = new ContentManagerDataContext(ConfigurationManager.ConnectionStrings[this.ConnectionStringName].ConnectionString)) { Table<LinqModule> modules = db.GetTable<LinqModule>(); // Assume that "module" has been sent by client. // Attach with "true" to the change tracker to consider the entity modified // and it can be checked for optimistic concurrency because // it has a column that is marked with "RowVersion" attribute modules.Attach(item, true); try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException ex) { Trace.TraceError(ex.Message); // All database values overwrite current values. foreach (ObjectChangeConflict occ in db.ChangeConflicts) occ.Resolve(RefreshMode.OverwriteCurrentValues); } catch (System.Data.Common.DbException ex) { Trace.TraceError(ex.Message); } } }
public override void InsertModule(IModule module) { if (module == null) throw new ArgumentNullException("module"); LinqModule m = new LinqModule() { ApplicationName = this.ApplicationName, ContentRaw = module.ContentRaw, DateCreated = module.DateCreated, ID = module.ID, LastUpdated = module.LastUpdated, Title = module.Title }; using (ContentManagerDataContext db = new ContentManagerDataContext(ConfigurationManager.ConnectionStrings[this.ConnectionStringName].ConnectionString)) { Table<LinqModule> modules = db.GetTable<LinqModule>(); modules.InsertOnSubmit(m); try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException ex) { Trace.TraceError(ex.Message); // All database values overwrite current values. foreach (ObjectChangeConflict occ in db.ChangeConflicts) occ.Resolve(RefreshMode.OverwriteCurrentValues); } catch (System.Data.Common.DbException ex) { Trace.TraceError(ex.Message); } } }