public override void Initialize(IArgument[] properties)
        {
            base.Initialize(properties);

            var engineApiAccess         = (IEngine)_engineApiAccess;
            var outputExchangeItemCount = engineApiAccess.GetOutputExchangeItemCount();

            for (var i = 0; i < outputExchangeItemCount; i++)
            {
                // initialize data operations
                var outputExchangeItem = engineApiAccess.GetOutputExchangeItem(i);

                //Add dataoperations to outputExchangeItems
                var dataOperations = ElementMapper.GetAvailableDataOperations(outputExchangeItem.ElementSet.ElementType);

                var linearConversionDataOperationExists = false;
                foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations)
                {
                    if (LinearConversionDataOperation.LinearConversionId == existingDataOperation.ID)
                    {
                        linearConversionDataOperationExists = true;
                    }
                }

                if (!linearConversionDataOperationExists)
                {
                    outputExchangeItem.AddDataOperation(new LinearConversionDataOperation());
                }

                bool smartBufferDataOperationExists = false;
                foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations)
                {
                    if (SmartBufferDataOperation.SmartBufferDataOperationId == existingDataOperation.ID)
                    {
                        smartBufferDataOperationExists = true;
                    }
                }

                if (!smartBufferDataOperationExists)
                {
                    outputExchangeItem.AddDataOperation(new SmartBufferDataOperation());
                }

                foreach (var dataOperation in dataOperations)
                {
                    outputExchangeItem.DataOperations.Add(dataOperation);
                }
            }
        }
        public void GetAvailableDataOperations()
        {
            ElementMapper elementMapper = new ElementMapper();

            Console.WriteLine("=========================FROM XYPoint====================================");
            var dataOperationsXYPoint = ElementMapper.GetAvailableDataOperations(ElementType.XYPoint);

            foreach (IDataOperation operation in dataOperationsXYPoint)
            {
                Console.WriteLine(" ");
                Console.WriteLine("------------------------------------");
                Console.WriteLine("DataOperationID: " + operation.ID);
                for (int i = 0; i < operation.ArgumentCount; i++)
                {
                    Console.WriteLine(" ");
                    Console.WriteLine("Key:         " + operation.GetArgument(i).Key);
                    Console.WriteLine("Value:       " + operation.GetArgument(i).Value);
                    Console.WriteLine("ReadOnly:    " + operation.GetArgument(i).ReadOnly.ToString());
                    Console.WriteLine("Description: " + operation.GetArgument(i).Description);
                }
            }

            Console.WriteLine(" ");
            Console.WriteLine("========================= FROM XYLine ====================================");
            var dataOperationsXYLine = ElementMapper.GetAvailableDataOperations(ElementType.XYLine);

            foreach (IDataOperation operation in dataOperationsXYLine)
            {
                Console.WriteLine(" ");
                Console.WriteLine("------------------------------------");
                Console.WriteLine("DataOperationID: " + operation.ID);
                for (int i = 0; i < operation.ArgumentCount; i++)
                {
                    Console.WriteLine(" ");
                    Console.WriteLine("Key:         " + operation.GetArgument(i).Key);
                    Console.WriteLine("Value:       " + operation.GetArgument(i).Value);
                    Console.WriteLine("ReadOnly:    " + operation.GetArgument(i).ReadOnly.ToString());
                    Console.WriteLine("Description: " + operation.GetArgument(i).Description);
                }
            }

            Console.WriteLine(" ");
            Console.WriteLine("========================= FROM XYPolyLine ====================================");
            var dataOperationsXYPolyLine = ElementMapper.GetAvailableDataOperations(ElementType.XYPolyLine);

            foreach (IDataOperation operation in dataOperationsXYPolyLine)
            {
                Console.WriteLine(" ");
                Console.WriteLine("------------------------------------");
                Console.WriteLine("DataOperationID: " + operation.ID);
                for (int i = 0; i < operation.ArgumentCount; i++)
                {
                    Console.WriteLine(" ");
                    Console.WriteLine("Key:         " + operation.GetArgument(i).Key);
                    Console.WriteLine("Value:       " + operation.GetArgument(i).Value);
                    Console.WriteLine("ReadOnly:    " + operation.GetArgument(i).ReadOnly.ToString());
                    Console.WriteLine("Description: " + operation.GetArgument(i).Description);
                }
            }

            Console.WriteLine(" ");
            Console.WriteLine("=========================FROM XYPolygon====================================");
            var dataOperationsXYPolygon = ElementMapper.GetAvailableDataOperations(ElementType.XYPolygon);

            foreach (IDataOperation operation in dataOperationsXYPolygon)
            {
                Console.WriteLine(" ");
                Console.WriteLine("------------------------------------");
                Console.WriteLine("DataOperationID: " + operation.ID);
                for (int i = 0; i < operation.ArgumentCount; i++)
                {
                    Console.WriteLine(" ");
                    Console.WriteLine("Key:         " + operation.GetArgument(i).Key);
                    Console.WriteLine("Value:       " + operation.GetArgument(i).Value);
                    Console.WriteLine("ReadOnly:    " + operation.GetArgument(i).ReadOnly.ToString());
                    Console.WriteLine("Description: " + operation.GetArgument(i).Description);
                }
            }

            bool operationWasFound       = false;
            bool IDWasFound              = false;
            bool descriptionWasFound     = false;
            bool typeWasFound            = false;
            bool fromElementTypeWasFound = false;
            bool toElementTypeWasFound   = false;

            foreach (IDataOperation operation in dataOperationsXYPolygon)
            {
                if (operation.ID == "ElementMapper801")
                {
                    operationWasFound = true;

                    for (int i = 0; i < operation.ArgumentCount; i++)
                    {
                        if (operation.GetArgument(i).Key == "ID")
                        {
                            Assert.AreEqual("801", operation.GetArgument(i).Value);
                            IDWasFound = true;
                        }
                        if (operation.GetArgument(i).Key == "Description")
                        {
                            Assert.AreEqual("Weighted Sum", operation.GetArgument(i).Value);
                            descriptionWasFound = true;
                        }
                        if (operation.GetArgument(i).Key == "Type")
                        {
                            Assert.AreEqual("SpatialMapping", operation.GetArgument(i).Value);
                            typeWasFound = true;
                        }
                        if (operation.GetArgument(i).Key == "FromElementType")
                        {
                            Assert.AreEqual("XYPolygon", operation.GetArgument(i).Value);
                            fromElementTypeWasFound = true;
                        }
                        if (operation.GetArgument(i).Key == "ToElementType")
                        {
                            Assert.AreEqual("XYPolygon", operation.GetArgument(i).Value);
                            toElementTypeWasFound = true;
                        }
                    }
                }
            }

            Assert.AreEqual(true, operationWasFound);
            Assert.AreEqual(true, IDWasFound);
            Assert.AreEqual(true, descriptionWasFound);
            Assert.AreEqual(true, typeWasFound);
            Assert.AreEqual(true, fromElementTypeWasFound);
            Assert.AreEqual(true, toElementTypeWasFound);
        }
Esempio n. 3
0
        private OutputExchangeItem addDataOperations(OutputExchangeItem outputexchangeitem)
        {
            //Add dataoperations to outputexchangeitems
            ElementMapper elementMapper  = new ElementMapper();
            ArrayList     dataOperations = new ArrayList();

            dataOperations = elementMapper.GetAvailableDataOperations(outputexchangeitem.ElementSet.ElementType);
            bool spatialDataOperationExists;
            bool linearConversionDataOperationExists;
            bool smartBufferDataOperationExists;

            foreach (IDataOperation dataOperation in dataOperations)
            {
                spatialDataOperationExists = false;
                foreach (IDataOperation existingDataOperation in outputexchangeitem.DataOperations)
                {
                    if (dataOperation.ID == existingDataOperation.ID)
                    {
                        spatialDataOperationExists = true;
                    }
                }

                if (!spatialDataOperationExists)
                {
                    outputexchangeitem.AddDataOperation(dataOperation);
                }
            }

            IDataOperation linearConversionDataOperation = new LinearConversionDataOperation();

            linearConversionDataOperationExists = false;
            foreach (IDataOperation existingDataOperation in outputexchangeitem.DataOperations)
            {
                if (linearConversionDataOperation.ID == existingDataOperation.ID)
                {
                    linearConversionDataOperationExists = true;
                }
            }

            if (!linearConversionDataOperationExists)
            {
                outputexchangeitem.AddDataOperation(new LinearConversionDataOperation());
            }

            IDataOperation smartBufferDataOperaion = new SmartBufferDataOperation();

            smartBufferDataOperationExists = false;
            foreach (IDataOperation existingDataOperation in outputexchangeitem.DataOperations)
            {
                if (smartBufferDataOperaion.ID == existingDataOperation.ID)
                {
                    smartBufferDataOperationExists = true;
                }
            }

            if (!smartBufferDataOperationExists)
            {
                outputexchangeitem.AddDataOperation(new SmartBufferDataOperation());
            }

            return(outputexchangeitem);
        }
Esempio n. 4
0
        /// <summary>
        /// get a output exchange item
        /// </summary>
        /// <param name="index">index number of the requested output exchange item</param>
        /// <returns>The requested exchange item</returns>
        public override IOutputExchangeItem GetOutputExchangeItem(int index)
        {
            OutputExchangeItem outputExchangeItem = ((IEngine)_engineApiAccess).GetOutputExchangeItem(index);

            //Add dataoperations to outputExchangeItems
            ElementMapper elementMapper  = new ElementMapper();
            ArrayList     dataOperations = new ArrayList();

            dataOperations = elementMapper.GetAvailableDataOperations(outputExchangeItem.ElementSet.ElementType);
            bool spatialDataOperationExists;
            bool linearConversionDataOperationExists;
            bool smartBufferDataOperationExists;

            foreach (IDataOperation dataOperation in dataOperations)
            {
                spatialDataOperationExists = false;
                foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations)
                {
                    if (dataOperation.ID == existingDataOperation.ID)
                    {
                        spatialDataOperationExists = true;
                    }
                }

                if (!spatialDataOperationExists)
                {
                    outputExchangeItem.AddDataOperation(dataOperation);
                }
            }

            IDataOperation linearConversionDataOperation = new LinearConversionDataOperation();

            linearConversionDataOperationExists = false;
            foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations)
            {
                if (linearConversionDataOperation.ID == existingDataOperation.ID)
                {
                    linearConversionDataOperationExists = true;
                }
            }

            if (!linearConversionDataOperationExists)
            {
                outputExchangeItem.AddDataOperation(new LinearConversionDataOperation());
            }

            IDataOperation smartBufferDataOperaion = new SmartBufferDataOperation();

            smartBufferDataOperationExists = false;
            foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations)
            {
                if (smartBufferDataOperaion.ID == existingDataOperation.ID)
                {
                    smartBufferDataOperationExists = true;
                }
            }

            if (!smartBufferDataOperationExists)
            {
                outputExchangeItem.AddDataOperation(new SmartBufferDataOperation());
            }

            return((IOutputExchangeItem)outputExchangeItem);
        }