public CremaDataType ReadData(Authentication authentication) { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); dataSet.ReadType(this.SchemaPath); return(dataSet.Types[base.Name]); }
public CremaDataSet ReadAll(Authentication authentication) { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); this.ReadAll(authentication, dataSet); return(dataSet); }
public CremaDataSet ReadData(Authentication authentication, bool recursive) { try { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var types = CollectTypes(); var typeFiles = types.Select(item => item.SchemaPath).ToArray(); dataSet.ReadMany(typeFiles, new string[] { }); dataSet.AcceptChanges(); return(dataSet); Type[] CollectTypes() { if (recursive == true) { return(EnumerableUtility.Descendants <IItem, Type>(this as IItem, item => item.Childs).ToArray()); } return(this.Types.ToArray()); } } catch (Exception e) { this.CremaHost.Error(e); throw; } }
public CremaDataType ReadAllData(Authentication authentication) { try { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var tables = this.ReferencedTables.ToArray(); var typeFiles = tables.SelectMany(item => item.GetTypes()) .Concat(EnumerableUtility.One(this)) .Select(item => item.SchemaPath) .Distinct() .ToArray(); var tableFiles = tables.Select(item => item.Parent ?? item) .Select(item => item.XmlPath) .Distinct() .ToArray(); dataSet.ReadMany(typeFiles, tableFiles); dataSet.AcceptChanges(); return(dataSet.Types[base.Name]); } catch (Exception e) { this.CremaHost.Error(e); throw; } }
/// <summary> /// 폴더내에 모든 타입과 타입이 사용하고 있는 테이블, 상속된 테이블을 읽어들입니다. /// </summary> public CremaDataSet ReadAllData(Authentication authentication, bool recursive) { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var types = CollectTypes(); var tables = CollectTables(); var typeFiles = types.Select(item => item.SchemaPath).ToArray(); var tableFiles = tables.Select(item => item.Parent ?? item) .Select(item => item.XmlPath) .Distinct() .ToArray(); dataSet.ReadMany(typeFiles, tableFiles); dataSet.AcceptChanges(); return(dataSet); Type[] CollectTypes() { if (recursive == true) { return(EnumerableUtility.Descendants <IItem, Type>(this as IItem, item => item.Childs).ToArray()); } return(this.Types.ToArray()); } Table[] CollectTables() { var tableContext = this.GetService(typeof(TableContext)) as TableContext; var query = from table in EnumerableUtility.Descendants <IItem, Table>(tableContext.Root as IItem, item => item.Childs) from type in types where table.IsTypeUsed(type.Path) select table; return(query.ToArray()); } }
/// <summary> /// 폴더내에 모든 테이블과 상속된 테이블을 읽어들입니다. /// </summary> public CremaDataSet ReadAllData(Authentication authentication) { try { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var tables = EnumerableUtility.Descendants <IItem, Table>(this as IItem, item => item.Childs).ToArray(); var typeFiles = tables.SelectMany(item => item.GetTypes()) .Select(item => item.SchemaPath) .Distinct() .ToArray(); var tableFiles = tables.SelectMany(item => EnumerableUtility.Friends(item, item.DerivedTables)) .Select(item => item.XmlPath) .Distinct() .ToArray(); dataSet.ReadMany(typeFiles, tableFiles); dataSet.AcceptChanges(); return(dataSet); } catch (Exception e) { this.CremaHost.Error(e); throw; } }
protected override CremaDataType CreateSource(Authentication authentication) { var newName = NameUtility.GenerateNewName("Type", this.Types.Select((Type item) => item.Name).ToArray()); var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var dataType = dataSet.Types.Add(); dataType.TypeName = newName; dataType.CategoryPath = this.category.Path; return(dataType); }
public void InvokeTypesDeletedEvent(Authentication authentication, Type[] types, string[] oldPaths) { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var eventLog = EventLogBuilder.BuildMany(authentication, this, nameof(InvokeTypesDeletedEvent), oldPaths); var message = EventMessageBuilder.DeleteType(authentication, types); this.CremaHost.Debug(eventLog); this.CremaHost.Info(message); this.OnTypesDeleted(new ItemsDeletedEventArgs <IType>(authentication, types, oldPaths)); this.Context.InvokeItemsDeleteEvent(authentication, types, oldPaths, dataSet); }
public void InvokeCategoriesDeletedEvent(Authentication authentication, TableCategory[] categories, string[] categoryPaths) { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var eventLog = EventLogBuilder.BuildMany(authentication, this, nameof(InvokeCategoriesDeletedEvent), categoryPaths); var message = EventMessageBuilder.DeleteTableCategory(authentication, categories); this.CremaHost.Debug(eventLog); this.CremaHost.Info(message); this.OnCategoriesDeleted(new ItemsDeletedEventArgs <ITableCategory>(authentication, categories, categoryPaths, dataSet)); this.Context.InvokeItemsDeletedEvent(authentication, categories, categoryPaths, dataSet); }
public void InvokeTablesDeletedEvent(Authentication authentication, Table[] tables, string[] oldPaths) { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var eventLog = EventLogBuilder.BuildMany(authentication, this, nameof(InvokeTablesDeletedEvent), oldPaths); var comment = EventMessageBuilder.DeleteTable(authentication, tables); this.CremaHost.Debug(eventLog); this.Repository.Commit(authentication, comment, eventLog); this.CremaHost.Info(comment); this.OnTablesDeleted(new ItemsDeletedEventArgs <ITable>(authentication, tables, oldPaths, dataSet)); this.Context.InvokeItemsDeletedEvent(authentication, tables, oldPaths, dataSet); }
public void InvokeCategoriesCreatedEvent(Authentication authentication, TypeCategory[] categories) { var args = categories.Select(item => (object)null).ToArray(); var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var eventLog = EventLogBuilder.BuildMany(authentication, this, nameof(InvokeCategoriesCreatedEvent), categories); var message = EventMessageBuilder.CreateTypeCategory(authentication, categories); this.CremaHost.Debug(eventLog); this.CremaHost.Info(message); this.OnCategoriesCreated(new ItemsCreatedEventArgs <ITypeCategory>(authentication, categories, args, dataSet)); this.Context.InvokeItemsCreatedEvent(authentication, categories, args, dataSet); }
private CremaDataSet ReadData(Authentication authentication, IEnumerable <Table> tables) { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); var typeFiles = tables.SelectMany(item => item.GetTypes()) .Select(item => item.SchemaPath) .Distinct() .ToArray(); var tableFiles = tables.Select(item => item.XmlPath).Distinct().ToArray(); dataSet.ReadMany(typeFiles, tableFiles); dataSet.AcceptChanges(); return(dataSet); }
public CremaDataType ReadData(Authentication authentication) { try { var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID)); dataSet.ReadType(this.SchemaPath); return(dataSet.Types[base.Name]); } catch (Exception e) { this.CremaHost.Error(e); throw; } }
public object Deserialize(string itemPath, Type type, ObjectSerializerSettings settings) { if (type == typeof(CremaDataTable)) { throw new NotImplementedException(); } else if (type == typeof(CremaDataType)) { var extension = settings.Extension != string.Empty ? settings.Extension : CremaSchema.SchemaExtension; var filename = itemPath + extension; var dataSet = new CremaDataSet(); var dataType = CremaDataType.ReadSchema(filename); dataSet.Types.Add(dataType); return(dataType); } else if (type == typeof(CremaDataSet)) { if (settings is CremaDataSetSerializerSettings props) { var dataSet = CremaDataSet.Create(props.SignatureDateProvider); var typePaths = props.TypePaths.Select(item => item + CremaSchema.SchemaExtension).ToArray(); var tablePaths = props.TablePaths.Select(item => item + CremaSchema.XmlExtension).ToArray(); dataSet.ReadMany(typePaths, tablePaths, props.SchemaOnly); dataSet.AcceptChanges(); return(dataSet); } else { return(CremaDataSet.ReadFromDirectory(itemPath)); } } else { var extension = settings.Extension != string.Empty ? settings.Extension : CremaSchema.XmlExtension; var filename = itemPath + extension; return(DataContractSerializerUtility.Read(filename, type)); } }
public CremaDataTable ReadData(Authentication authentication) { return(this.ReadData(authentication, CremaDataSet.Create(new SignatureDateProvider(authentication.ID)))); }