コード例 #1
0
ファイル: ConsoleClient.cs プロジェクト: Vearol/COITest
        private static void TestElementsFromDB(NpgsqlConnection connection)
        {
            Console.WriteLine("Testing random data from database");

            for (var i = 0; i < 10; i++)
            {
                var containerIndex = random.Next(1, containerArraySize);
                var matrixIndex    = random.Next(1, matrixArraySize);
                var positionIndex  = random.Next(1, positionArraySize);
                var pointIndex     = random.Next(1, pointArraySize);

                var container = ContainerService.Find(connection, containerIndex);
                var matrix    = MatrixService.Find(connection, matrixIndex);
                var position  = PositionService.Find(connection, positionIndex);
                var point     = IntPointService.Find(connection, pointIndex);

                if (container == null || matrix == null || position == null)
                {
                    throw new CustomException("Can't find data in database.", (byte)CustomErrorCode.MissingDataInDatabase);
                }

                Console.WriteLine(point.ToString());
            }
        }
コード例 #2
0
ファイル: ConsoleClient.cs プロジェクト: Vearol/COITest
        private static Containers <int> LoadDataFromDbToModel(NpgsqlConnection connection)
        {
            Console.WriteLine("Loading data to Containers PMC Model");

            var containerCollection = ContainerCollectionService.Find(connection, validCollectionContainerId);
            var dataType            = containerCollection.DataType;

            var containerCollectionData = ContainerCollectionService.Query(connection, containerCollection.Id);

            var pmsContainers = new Container <int> [containerCollectionData.Count];

            for (var i = 0; i < containerCollectionData.Count; i++)
            {
                if (i % 100 == 0 && i != 0)
                {
                    Console.WriteLine("Loaded {0} containers", i);
                }

                var containerModel = ContainerService.Find(connection, containerCollectionData[i].ContainerId);

                if (containerModel.DataType != dataType)
                {
                    throw new CustomException("Containers has incorrect data type", (byte)CustomErrorCode.IncorrectDataTypeInContainers);
                }

                var containerMatrices = ContainerService.Query(connection, containerModel.Id);

                var pmsMatrices = new Matrix <int> [containerMatrices.Count];

                for (var j = 0; j < containerMatrices.Count; j++)
                {
                    if (j % 10 == 0 && j != 0)
                    {
                        Console.WriteLine("Loaded {0} matrices", j);
                    }

                    var matrixModel = MatrixService.Find(connection, containerMatrices[j].MatrixId);
                    if (matrixModel.DataType != dataType)
                    {
                        throw new CustomException("Containers has incorrect data type", (byte)CustomErrorCode.IncorrectDataTypeInContainers);
                    }

                    var matrixPositions = MatrixService.Query(connection, matrixModel.Id);

                    var pmsPositions = new Position <int> [matrixPositions.Count];

                    for (var k = 0; k < matrixPositions.Count; k++)
                    {
                        var positionModel = PositionService.Find(connection, matrixPositions[k].PositionId);
                        if (positionModel.DataType != dataType)
                        {
                            throw new CustomException("Containers has incorrect data type", (byte)CustomErrorCode.IncorrectDataTypeInContainers);
                        }

                        var positionPoints = PositionService.Query(connection, positionModel.Id);

                        var pmsPoints = new Point <int> [positionPoints.Count];

                        var dimension = Dimension.D1;
                        for (var s = 0; s < positionPoints.Count; s++)
                        {
                            var pointModel = IntPointService.Find(connection, positionPoints[s].PointId);
                            if (pointModel == null)
                            {
                                continue;
                            }
                            var pointModelDimension = (Dimension)pointModel.Dimension;
                            if (dimension != pointModelDimension)
                            {
                                dimension = pointModelDimension;
                            }

                            pmsPoints[s] = new Point <int>(pointModel.GetPointArray());
                        }

                        pmsPositions[k] = new Position <int>(pmsPoints, dimension);
                    }

                    pmsMatrices[j] = new Matrix <int>(pmsPositions);
                }

                pmsContainers[i] = new Container <int>(pmsMatrices);
            }

            ContainerCollectionBuilder <int> builder = new IntContainers();
            var containers = builder.Create();

            containers.ContainerArray = pmsContainers;
            return(containers);
        }
コード例 #3
0
ファイル: ConsoleClient.cs プロジェクト: Vearol/COITest
        private static void WriteTestDataToDB(NpgsqlConnection connection)
        {
            var pointIds1D = new int[pointArraySize];
            var pointIds2D = new int[pointArraySize];
            var pointIds3D = new int[pointArraySize];

            Console.WriteLine("Creating Points");
            for (var i = 0; i < pointArraySize; i++)
            {
                pointIds1D[i] = IntPointService.Create(connection, RandomNumber());

                pointIds2D[i] = IntPointService.Create(connection, RandomNumber(), RandomNumber());

                pointIds3D[i] = IntPointService.Create(connection, RandomNumber(), RandomNumber(), RandomNumber());
            }

            var positionIds1D = new int[positionArraySize];
            var positionIds2D = new int[positionArraySize];
            var positionIds3D = new int[positionArraySize];

            Console.WriteLine("Creating Positions");
            for (var i = 0; i < positionArraySize; i++)
            {
                if (i != 0 && i % 100 == 0)
                {
                    Console.WriteLine("Created {0} positions", i);
                }

                var position1D = PositionService.CreateNewPosition(connection, (byte)DataType.Int);
                var position2D = PositionService.CreateNewPosition(connection, (byte)DataType.Int);
                var position3D = PositionService.CreateNewPosition(connection, (byte)DataType.Int);

                positionIds1D[i] = position1D;
                positionIds2D[i] = position2D;
                positionIds3D[i] = position3D;

                for (var j = 0; j < pointArraySize; j++)
                {
                    PositionService.AddPoint(connection, position1D, pointIds1D[j]);
                    PositionService.AddPoint(connection, position2D, pointIds2D[j]);
                    PositionService.AddPoint(connection, position3D, pointIds3D[j]);
                }
            }

            var matrixIds = new int[matrixArraySize];

            Console.WriteLine("Creating Matrices");
            for (var i = 0; i < matrixArraySize; i++)
            {
                if (i != 0 && i % 10 == 0)
                {
                    Console.WriteLine("Created {0} matrices", i);
                }

                var matrixId = MatrixService.CreateNewMatrix(connection, (byte)DataType.Int);
                matrixIds[i] = matrixId;

                for (var j = 0; j < positionArraySize; j++)
                {
                    switch (i / 20)
                    {
                    case 0:
                        MatrixService.AddPosition(connection, matrixId, positionIds1D[j]);
                        break;

                    case 1:
                        MatrixService.AddPosition(connection, matrixId, positionIds2D[j]);
                        break;

                    case 2:
                        MatrixService.AddPosition(connection, matrixId, positionIds3D[j]);
                        break;
                    }
                }
            }

            var containerIds = new int[containerArraySize];

            Console.WriteLine("Creating Containers");
            for (var i = 0; i < containerArraySize; i++)
            {
                if (i != 0 && i % 100 == 0)
                {
                    Console.WriteLine("Created {0} containers", i);
                }

                var containerId = ContainerService.CreateNewContainer(connection, (byte)DataType.Int);
                containerIds[i] = containerId;

                for (var j = 0; j < matrixArraySize; j++)
                {
                    ContainerService.AddMatrix(connection, containerId, matrixIds[j]);
                }
            }

            Console.WriteLine("Creating Container Collection.");
            var containerCollectionId = ContainerCollectionService.CreateNewContainerCollection(connection, (byte)DataType.Int);

            for (var i = 0; i < containerArraySize; i++)
            {
                if (i != 0 && i % 100 == 0)
                {
                    Console.WriteLine("Added {0} containers to collection", i);
                }

                ContainerCollectionService.AddContainer(connection, containerCollectionId, containerIds[i]);
            }

            Console.WriteLine("All items are created.");
        }