protected override IStructure[] CreateStructuresInSerial <T>(T[] items, IStructureSchema structureSchema)
        {
            var structures = new IStructure[items.Length];
            var timeStamp  = SysDateTime.Now;

            for (var i = 0; i < structures.Length; i++)
            {
                var itm         = items[i];
                var structureId = structureSchema.IdAccessor.GetValue(itm);
                if (structureId.IsEmpty)
                {
                    structureId = StructureIdGenerator.Generate(structureSchema);
                    structureSchema.IdAccessor.SetValue(itm, structureId);
                }

                if (structureSchema.HasTimeStamp)
                {
                    structureSchema.TimeStampAccessor.SetValue(itm, timeStamp);
                }

                structures[i] = new Structure(
                    structureSchema.Name,
                    structureId,
                    IndexesFactory.CreateIndexes(structureSchema, itm, structureId),
                    StructureSerializer.Serialize(itm, structureSchema));
            }

            return(structures);
        }
Exemplo n.º 2
0
        protected virtual IStructure[] CreateStructuresInParallel <T>(T[] items, IStructureSchema structureSchema) where T : class
        {
            var structureIds = StructureIdGenerator.Generate(structureSchema, items.Length);
            var structures   = new IStructure[items.Length];
            var timeStamp    = SysDateTime.Now;

            Parallel.For(0, items.Length, i =>
            {
                var id  = structureIds[i];
                var itm = items[i];

                structureSchema.IdAccessor.SetValue(itm, id);

                if (structureSchema.HasTimeStamp)
                {
                    structureSchema.TimeStampAccessor.SetValue(itm, timeStamp);
                }

                structures[i] = new Structure(
                    structureSchema.Name,
                    id,
                    IndexesFactory.CreateIndexes(structureSchema, itm, id),
                    StructureSerializer.Serialize(itm, structureSchema));
            });

            return(structures);
        }
Exemplo n.º 3
0
        public override IStructure CreateStructure <T>(T item, IStructureSchema structureSchema)
        {
            var structureId = structureSchema.IdAccessor.GetValue(item);

            if (structureSchema.HasTimeStamp)
            {
                structureSchema.TimeStampAccessor.SetValue(item, SysDateTime.Now);
            }

            return(new Structure(
                       structureSchema.Name,
                       structureId,
                       IndexesFactory.CreateIndexes(structureSchema, item, structureId),
                       StructureSerializer.Serialize(item, structureSchema)));
        }
Exemplo n.º 4
0
        public virtual IStructure CreateStructure <T>(T item, IStructureSchema structureSchema) where T : class
        {
            var structureId = StructureIdGenerator.Generate(structureSchema);

            structureSchema.IdAccessor.SetValue(item, structureId);

            if (structureSchema.HasTimeStamp)
            {
                structureSchema.TimeStampAccessor.SetValue(item, SysDateTime.Now);
            }

            return(new Structure(
                       structureSchema.Name,
                       structureId,
                       IndexesFactory.CreateIndexes(structureSchema, item, structureId),
                       StructureSerializer.Serialize(item, structureSchema)));
        }
Exemplo n.º 5
0
        protected override IStructure[] CreateStructuresInParallel <T>(T[] items, IStructureSchema structureSchema)
        {
            var structures = new IStructure[items.Length];
            var timeStamp  = SysDateTime.Now;

            Parallel.For(0, items.Length, i =>
            {
                var itm         = items[i];
                var structureId = structureSchema.IdAccessor.GetValue(itm);

                if (structureSchema.HasTimeStamp)
                {
                    structureSchema.TimeStampAccessor.SetValue(itm, timeStamp);
                }

                structures[i] = new Structure(
                    structureSchema.Name,
                    structureId,
                    IndexesFactory.CreateIndexes(structureSchema, itm, structureId),
                    StructureSerializer.Serialize(itm, structureSchema));
            });

            return(structures);
        }