private IProperty GetSpecialDefaultBindingProperty(DataBindingDragDropFlags filteredDragFlags) { DataSchemaNodePath primaryAbsolutePath = this.DragModel.DataSource.PrimaryAbsolutePath; IProperty defaultBindingProperty = this.GetDefaultBindingProperty(filteredDragFlags, primaryAbsolutePath); if (!DataContextMetadata.HasDataContextAttributes(defaultBindingProperty)) { return((IProperty)null); } DataContextInfo dataContextInfo = new DataContextEvaluator().Evaluate(this.DragModel.TargetNode, (IPropertyId)defaultBindingProperty, true); if (dataContextInfo.DataSource.SourceNode != primaryAbsolutePath.Schema.DataSource.DocumentNode) { return((IProperty)null); } DataSchemaNodePath nodePathFromPath = primaryAbsolutePath.Schema.GetNodePathFromPath(dataContextInfo.DataSource.Path); if (!nodePathFromPath.IsSubpathOf(primaryAbsolutePath)) { return((IProperty)null); } DataSchemaNodePath relativeNodePath = nodePathFromPath.GetRelativeNodePath(primaryAbsolutePath); if (relativeNodePath.CollectionDepth != 0) { return((IProperty)null); } this.DragModel.TargetPropertySpecialDataContext = relativeNodePath; return(defaultBindingProperty); }
private void InititalStoreProduceItems(DataContextMetadata metadata) { foreach (var entity in metadata.Entitys.Values.Where(a => !a.Definition.Configure.IsView)) { var keys = GetEntityKeys(entity, metadata); var columns = GetEntityColumns(entity, metadata); var item = new EntityStoreProduceItem() { Name = entity.ClassName, InsertParameters = keys.Where(a => !IsCompute(a, keys)).Select(a => a.Name).Concat( columns.Where(a => !IsCompute(a)).Select(a => a.Name)).ToArray(), UpdateParameters = keys.Select(a => a.Name).Concat( columns.Where(a => !IsCompute(a)).Select(a => a.Name)).ToArray(), DeleteParameters = keys.Select(a => a.Name).ToArray() }; var timestamp = GetTimestampColumn(columns); if (timestamp != null) { var name = timestamp.Name + "_Original"; item.UpdateParameters = item.UpdateParameters.Concat(new string[] { name }).ToArray(); item.DeleteParameters = item.DeleteParameters.Concat(new string[] { name }).ToArray(); } Compare(item.InsertParameters, entity.ProjectItem.Name, "Insert"); Compare(item.UpdateParameters, entity.ProjectItem.Name, "Update"); Compare(item.DeleteParameters, entity.ProjectItem.Name, "Delete"); StoreProduceItems.Add(item); } }
public DataContextTemplate(DataContextMetadata data) { Data = data; Documnet = Data.Source; EntityStoreProduceNames = data.Entitys.Values.Where(a => !a.Definition.Configure.IsView).Select(a => a.ClassName).ToArray(); AllowRenameProcedureParameter = data.DatabaseType == EDatabaseType.MySql; }
private PropertyPrimaryData[] GetEntityKeys(EntityMetadata entity, DataContextMetadata metadata) { while (entity.Definition.Configure.InheritEntityId > 0) { entity = metadata.Entitys[entity.Definition.Configure.InheritEntityId]; } return(entity.PrimaryPropertys.Select(a => a.Value).ToArray()); }
private PropertyColumnData[] GetEntityColumns(EntityMetadata entity, DataContextMetadata metadata) { return(entity.ColumnPropertys.Select(a => a.Value).ToArray()); }