protected void btnSaveTable_OnClick(object sender, EventArgs e) { var model = tableControl.Model; var modelConverter = new TableModelEntityConverter(DataContext); var entityConverter = new TableEntityModelConverter(DataContext); var columnConverter = new ColumnModelEntityConverter(DataContext); var entity = DataContext.LP_Tables.FirstOrDefault(n => n.ID == model.ID); if (CopyMode) { if (entity == null) { return; } var oldModel = entityConverter.Convert(entity); oldModel.Status = String.Empty; oldModel.Name = model.Name; var newEntity = modelConverter.Convert(oldModel); foreach (var columnModel in oldModel.Columns) { var columnEntity = columnConverter.Convert(columnModel); newEntity.Columns.Add(columnEntity); } DataContext.LP_Tables.InsertOnSubmit(newEntity); } else { if (entity == null) { entity = modelConverter.Convert(model); DataContext.LP_Tables.InsertOnSubmit(entity); } else { modelConverter.FillObject(entity, model); } } DataContext.SubmitChanges(); FillTablesTree(); }
protected void tablesControl_OnEditItem(object sender, GenericEventArgs <Guid> e) { var entity = DataContext.LP_Tables.FirstOrDefault(n => n.ID == e.Value); if (entity == null) { return; } var converter = new TableEntityModelConverter(DataContext); var model = converter.Convert(entity); tableControl.Model = model; CopyMode = false; mpeAddEditTable.Show(); }
protected void tablesControl_OnSyncTable(object sender, GenericEventArgs <Guid> e) { var entity = DataContext.LP_Tables.FirstOrDefault(n => n.ID == e.Value); if (entity == null) { return; } var converter = new TableEntityModelConverter(DataContext); var model = converter.Convert(entity); var synchronizer = new SchemaSynchronizer(model); synchronizer.Update(); entity.Status = "Synchronized"; DataContext.SubmitChanges(); FillTablesTree(); }
public QueryGenerator(PortalDataContext dbContext, LogicModel logicModel) { _dbContext = dbContext; _logicModel = logicModel; _sourceType = _logicModel.SourceType; _expressionsLogicModel = logicModel.ExpressionsLogic; if (_logicModel.SourceType == "Table") { var table = dbContext.LP_Tables.First(n => n.ID == _logicModel.SourceID); var converter = new TableEntityModelConverter(_dbContext); var model = converter.Convert(table); var columns = model.Columns; _querySource = GetCorrectName(model.Name); var allColumnsQuery = (from n in columns let m = GetCorrectName(n.Name) select new KeyValuePair <String, String>(n.Name, m)); _allColumns = allColumnsQuery.ToDictionary(); var primaryColumnsQuery = (from n in columns where n.IsPrimary let m = GetCorrectName(n.Name) select new KeyValuePair <String, String>(n.Name, m)); _primaryColumns = primaryColumnsQuery.ToDictionary(); var dbTypesQuery = (from n in columns let t = GetDataType(n.Type) let m = GetCorrectName(n.Name) select new KeyValuePair <String, SqlDbType>(m, t)); _dbTypes = dbTypesQuery.ToDictionary(); _outputColumns = GetOutputs().ToHashSet(); } else if (_logicModel.SourceType == "Logic") { var logic = dbContext.LP_Logics.First(n => n.ID == _logicModel.SourceID); var converter = new LogicEntityModelConverter(_dbContext); var model = converter.Convert(logic); var queryGen = new QueryGenerator(_dbContext, model); var selectQuery = queryGen.SelectQuery(true); _querySource = String.Format("({0})", selectQuery); var allColumnsQuery = (from n in queryGen.OutputColumns let m = GetCorrectName(n) select new KeyValuePair <String, String>(n, m)); _allColumns = allColumnsQuery.ToDictionary(); var dbTypesQuery = (from n in queryGen.OutputColumns let m = GetCorrectName(n) let t = queryGen.DbTypes[m] select new KeyValuePair <String, SqlDbType>(m, t)); _dbTypes = dbTypesQuery.ToDictionary(); _outputColumns = GetOutputs().ToHashSet(); } if (_primaryColumns == null || _primaryColumns.Count == 0) { _primaryColumns = _allColumns; } var allParamsQuery = (from n in _allColumns let p = String.Format("@v{0}", n.Key.ComputeCrc16()) select new KeyValuePair <String, String>(n.Value, p)); _allColumnsParams = allParamsQuery.ToDictionary(); var primaryParamsQuery = (from n in _primaryColumns let p = String.Format("@p{0}", n.Key.ComputeCrc16()) select new KeyValuePair <String, String>(n.Value, p)); _primaryColumnsParams = primaryParamsQuery.ToDictionary(); }