public static RvsSavedProperties LoadFrom(long id, ILogMonitor logMonitor) { using (var db = new DB_RvsSettingsDataContext(SpecificInstances.DbFactory.CreateConnection())) { return(LoadFrom(db, db.RVS_Properties.FirstOrDefault(r => r.id == id))); } }
private static RvsSavedProperties LoadFrom(DB_RvsSettingsDataContext db, RVS_Property row) { if (row == null) { return(null); } var properties = new RvsSavedProperties { Grouping = row.Grouping.Elements("GroupColumn").Select(r => (GroupColumn)r.Value).ToList(), OrderByColumns = row.OrderByColumns == null ? null : string.Join(",", row.OrderByColumns.Elements("OrderColumn").Select(r => r.Value).ToArray()), PageUrl = row.Filter == null ? null : row.Filter.Value, ReportPluginName = row.ReportPluginName, NameRu = row.nameRu, NameKz = row.nameKz, JournalTypeName = row.JournalTypeName, }; ReadFixedHeader(row, properties); ReadColumnHierarchy(row, properties); ReadRowsProperties(row, properties); ReadStorageValues(row, properties); ReadCellsProperties(row, properties); ReadOtherParameters(row, properties); return(properties); }
public long Save() { using (var db = new DB_RvsSettingsDataContext(SpecificInstances.DbFactory.CreateConnection())) { var row = SaveProperties(db); db.SubmitChanges(); return(row.id); } }
public static RvsSavedProperties LoadBySavedViewSettings(long idSavedProperty, ILogMonitor logMonitor) { using (var db = new DB_RvsSettingsDataContext(SpecificInstances.DbFactory.CreateConnection())) { var row = db.RVS_SavedProperties. Where(r => r.id == idSavedProperty && (r.isSharedView || r.UserSID == User.GetSID())). Select(r => r.RVS_Property). FirstOrDefault(); return(LoadFrom(db, row)); } }
public static bool DeleteProperties(long id) { using (var db = new DB_RvsSettingsDataContext(SpecificInstances.DbFactory.CreateConnection())) { var data = db.RVS_SavedProperties. Where(r => r.id == id); if (UserRoles.IsInRole(UserRoles.AllowChangeOrDeleteJournalSettingsAsShared)) { data = data.Where(r => r.UserSID == User.GetSID() || r.isSharedView); } else { data = data.Where(r => r.UserSID == User.GetSID()); } var row = data.FirstOrDefault(); if (row == null) { return(false); } db.Connection.Open(); DbTransaction transaction = null; try { transaction = db.Connection.BeginTransaction(); db.Transaction = transaction; db.RVS_SavedProperties.DeleteOnSubmit(row); db.RVS_Properties.DeleteOnSubmit(row.RVS_Property); db.SubmitChanges(); transaction.Commit(); } catch { if (transaction != null) { transaction.Rollback(); } return(false); } finally { if (transaction != null) { transaction.Dispose(); } db.Connection.Close(); } } return(true); }
private RVS_Property SaveProperties(DB_RvsSettingsDataContext db) { var row = new RVS_Property { Grouping = new XElement("Root", Grouping.Select(r => new XElement("GroupColumn", r.ToString()))), OrderByColumns = new XElement("Root", (OrderByColumns ?? "").Split(',').Select(r => new XElement("OrderColumn", r.ToString()))), Filter = string.IsNullOrEmpty(PageUrl) ? null : new XElement("PageUrl", PageUrl), ReportPluginName = ReportPluginName, nameRu = NameRu, nameKz = NameKz, JournalTypeName = JournalTypeName, }; WriteFixedHeader(row, this); WriteColumnHierarchy(row, this); WriteRowsProperties(row, this); WriteStorageValues(row, this); WriteCellsProperties(row, this); WriteOtherParameters(row, this); db.RVS_Properties.InsertOnSubmit(row); return(row); }
public void SaveWithViewSettings(SavingJournalSettings.SaveArgument argument, string conext) { if (!argument.saveFilters) { PageUrl = null; } using (var db = new DB_RvsSettingsDataContext(SpecificInstances.DbFactory.CreateConnection())) { db.Connection.Open(); DbTransaction transaction = null; try { transaction = db.Connection.BeginTransaction(); db.Transaction = transaction; var row = SaveProperties(db); db.SubmitChanges(); RVS_SavedProperty viewRow = null; if (argument.id != null) { var data = db.RVS_SavedProperties. Where(r => r.id == argument.id); if (UserRoles.IsInRole(UserRoles.AllowChangeOrDeleteJournalSettingsAsShared)) { data = data.Where(r => r.isSharedView || r.UserSID == User.GetSID()); } else { data = data.Where(r => r.UserSID == User.GetSID()); } viewRow = data.FirstOrDefault(); } if (viewRow == null) { viewRow = new RVS_SavedProperty(); db.RVS_SavedProperties.InsertOnSubmit(viewRow); } viewRow.context = conext; viewRow.dateTime = DateTime.Now; viewRow.isDefaultView = false; viewRow.isSharedView = argument.saveAsShared && UserRoles.IsInRole(UserRoles.AllowSaveJournalSettingsAsShared); viewRow.JournalTypeName = JournalTypeName; viewRow.nameRu = argument.nameRu; viewRow.nameKz = argument.nameKz; viewRow.UserSID = User.GetSID(); viewRow.refProperties = row.id; db.SubmitChanges(); db.Transaction.Commit(); } catch { if (transaction != null) { transaction.Rollback(); } } finally { if (transaction != null) { transaction.Dispose(); } db.Connection.Close(); } } }