コード例 #1
0
        public CremaDataType ReadData(Authentication authentication)
        {
            var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID));

            dataSet.ReadType(this.SchemaPath);
            return(dataSet.Types[base.Name]);
        }
コード例 #2
0
ファイル: Table.cs プロジェクト: sedrion/Crema
        public CremaDataSet ReadAll(Authentication authentication)
        {
            var dataSet = CremaDataSet.Create(new SignatureDateProvider(authentication.ID));

            this.ReadAll(authentication, dataSet);
            return(dataSet);
        }
コード例 #3
0
ファイル: TypeCategory.cs プロジェクト: teize001/Crema
        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;
            }
        }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
        /// <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());
            }
        }
コード例 #6
0
ファイル: TableCategory.cs プロジェクト: teize001/Crema
        /// <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;
            }
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
ファイル: TableCategory.cs プロジェクト: MutesK/Crema
        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);
        }
コード例 #13
0
 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;
     }
 }
コード例 #14
0
        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));
            }
        }
コード例 #15
0
ファイル: Table.cs プロジェクト: sedrion/Crema
 public CremaDataTable ReadData(Authentication authentication)
 {
     return(this.ReadData(authentication, CremaDataSet.Create(new SignatureDateProvider(authentication.ID))));
 }