public int GetCount(COMMAND_ENTITY command)
            {
                int iRes = 0;

                iRes = m_dictEntityParser.Keys.Where(item => (item.Command == command)).Count();

                return(iRes);
            }
Example #2
0
        public static MAP_KEY_ENTITY GetMapKeyEntity(COMMAND_ENTITY command)
        {
            MAP_KEY_ENTITY mapKeyEntityRes = new MAP_KEY_ENTITY()
            {
                m_command = COMMAND_ENTITY.UNKNOWN, m_type = Type.Missing as Type, m_nameCreateMethod = string.Empty, m_nameSolidType = string.Empty
            };

            MAP_KEY_ENTITY mapKeyEntity =
                s_MappingKeyEntity.Find(item => { return(item.m_command == command); });

            return(mapKeyEntityRes);
        }
Example #3
0
        public static string GetNameSolidTypeEntity(COMMAND_ENTITY command)
        {
            string nameSolidTypeRes = string.Empty;

            MAP_KEY_ENTITY mapKeyEntity =
                s_MappingKeyEntity.Find(item => { return(item.m_command == command); });

            if (!(mapKeyEntity.m_command == COMMAND_ENTITY.UNKNOWN))
            {
                nameSolidTypeRes = mapKeyEntity.m_nameSolidType;
            }
            else
            {
                ;
            }

            return(nameSolidTypeRes);
        }
Example #4
0
        public static Type GetTypeEntity(COMMAND_ENTITY command)
        {
            Type typeRes = Type.Missing as Type;

            MAP_KEY_ENTITY mapKeyEntity =
                s_MappingKeyEntity.Find(item => { return(item.m_command == command); });

            if (!(mapKeyEntity.m_command == COMMAND_ENTITY.UNKNOWN))
            {
                typeRes = mapKeyEntity.m_type;
            }
            else
            {
                ;
            }

            return(typeRes);
        }
        /// <summary>
        /// Импортировать список объектов
        /// </summary>
        /// <param name="ef">Объект книги MS Excel</param>
        /// <param name="format">Формат книги MS Excel</param>
        /// <returns>Признак результата выполнения метода</returns>
        private static int import(ExcelFile ef, FORMAT format)
        {
            int iRes = 0;

            GemBox.Spreadsheet.CellRange range;
            EntityParser.ProxyEntity?    pEntity;
            string         nameEntity    = string.Empty;
            COMMAND_ENTITY commandEntity = COMMAND_ENTITY.UNKNOWN;

            foreach (ExcelWorksheet ews in ef.Worksheets)
            {
                if (ews.Name.Equals(WSHHEET_NAME_CONFIG) == false)
                {
                    range =
                        ews.GetUsedCellRange()
                        //getUsedCellRange(ews, format)
                    ;

                    Core.Logging.DebugCaller(MethodBase.GetCurrentMethod(), string.Format(@"Обработка листа с имененм = {0}", ews.Name));

                    if ((!(range == null)) &&
                        ((range.LastRowIndex + 1) > 0))
                    {
                        extractDataWorksheet(ews, range, format);

                        switch (ef.Worksheets.Cast <ExcelWorksheet>().ToList().IndexOf(ews))
                        {
                        case 0:     // BLOCK
                            foreach (DataRow rReferenceBlock in _dictDataTableOfExcelWorksheet[ews.Name].Rows)
                            {
                                s_dictBlock.AddReference(rReferenceBlock);
                            }
                            break;

                        default:
                            foreach (DataRow rEntity in _dictDataTableOfExcelWorksheet[ews.Name].Rows)
                            {
                                if (EntityParser.TryParseCommandAndNameEntity(format, rEntity, out nameEntity, out commandEntity) == true)
                                {
                                    pEntity = null;

                                    // соэдать примитив
                                    if (dictDelegateNewProxyEntity.ContainsKey(commandEntity) == true)
                                    {
                                        pEntity = dictDelegateNewProxyEntity[commandEntity](rEntity, format /*, ews.Name*/);
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    if (!(pEntity == null))
                                    {
                                        s_dictBlock.AddEntity(
                                            ews.Name
                                            , commandEntity
                                            , pEntity.GetValueOrDefault()
                                            , nameEntity
                                            );
                                    }
                                    else
                                    {
                                        Logging.DebugCaller(MethodBase.GetCurrentMethod(), string.Format(@"Элемент с именем {0} пропущен..."
                                                                                                         , nameEntity
                                                                                                         ));
                                    }
                                }
                                else
                                {
                                    // ошибка при получении типа и наименования примитива
                                    Core.Logging.DebugCaller(MethodBase.GetCurrentMethod()
                                                             , string.Format(@"Ошибка опрделения имени, типа  сущности лист={0}, строка={1}...", ews.Name, _dictDataTableOfExcelWorksheet[ews.Name].Rows.IndexOf(rEntity)));
                                }
                            }     // цикл по строкам таблицы для листа книги MS Excel

                            Logging.DebugCaller(MethodBase.GetCurrentMethod(), string.Format(@"На листе с имененм = {0} обработано строк = {1}, добавлено элементов {2}"
                                                                                             , ews.Name
                                                                                             , range.LastRowIndex + 1
                                                                                             , _dictDataTableOfExcelWorksheet[ews.Name].Rows.Count
                                                                                             ));
                            break;
                        }
                    }
                    else
                    {
                        // нет строк с данными
                        Logging.DebugCaller(MethodBase.GetCurrentMethod(), string.Format(@"На листе с имененм = {0} нет строк для распознования", ews.Name));
                    }
                }
                else
                {
                    ; // страница(лист) с конфигурацией
                }
            }

            return(iRes);
        }
        public static int GetLineEndPoint3d(COMMAND_ENTITY commandSlave, string blockName, string nameEntity, out POINT3D value)
        {
            int iRes = 0;

            value = new POINT3D();

            EntityParser.ProxyEntity entityFind;
            // ??? проверить на корректность связи ведущий-ведомый (есть ли сопряжение по оси)
            INDEX_COORD3d indxCoord3dLeading = INDEX_COORD3d.UNKNOWN
            , indxCoord3dSlave = INDEX_COORD3d.UNKNOWN;

            switch (commandSlave)
            {
            //case COMMAND_ENTITY.ALINE_X:
            case COMMAND_ENTITY.RLINE_X:
                indxCoord3dSlave = INDEX_COORD3d.X;
                break;

            //case COMMAND_ENTITY.ALINE_Y:
            case COMMAND_ENTITY.RLINE_Y:
                indxCoord3dSlave = INDEX_COORD3d.Z;
                break;

            //case COMMAND_ENTITY.ALINE_Z:
            case COMMAND_ENTITY.RLINE_Z:
                indxCoord3dSlave = INDEX_COORD3d.Z;
                break;

            default:
                break;
            }

            if (s_dictBlock.ContainsKey(blockName) == true)
            {
                entityFind = s_dictBlock[blockName].m_dictEntityParser.Values.First(entity => {
                    return(entity.m_name.Equals(nameEntity) == true);
                });

                if (!(entityFind.m_command == COMMAND_ENTITY.UNKNOWN))
                {
                    switch (entityFind.m_command)
                    {
                    case COMMAND_ENTITY.LINE:
                        indxCoord3dLeading = INDEX_COORD3d.ANY;
                        break;

                    case COMMAND_ENTITY.ALINE_X:
                        //case COMMAND_ENTITY.RLINE_X:
                        indxCoord3dLeading = INDEX_COORD3d.X;
                        break;

                    case COMMAND_ENTITY.ALINE_Y:
                        //case COMMAND_ENTITY.RLINE_Y:
                        indxCoord3dLeading = INDEX_COORD3d.Z;
                        break;

                    case COMMAND_ENTITY.ALINE_Z:
                        //case COMMAND_ENTITY.RLINE_Z:
                        indxCoord3dLeading = INDEX_COORD3d.Z;
                        break;

                    default:
                        break;
                    }

                    iRes = ((indxCoord3dLeading == indxCoord3dSlave) || (indxCoord3dLeading == INDEX_COORD3d.ANY)) ? 0 : -1;

                    if (iRes == 0)
                    {
                        value = new POINT3D(new double[] {
                            (double)entityFind.GetProperty(MSExcel.HEAP_INDEX_COLUMN.LINE_END_DECART_X)
                            , (double)entityFind.GetProperty(MSExcel.HEAP_INDEX_COLUMN.LINE_END_DECART_Y)
                            , (double)entityFind.GetProperty(MSExcel.HEAP_INDEX_COLUMN.LINE_END_DECART_Z)
                        });
                    }
                }
                else
                {
                    iRes = -2;
                }
            }
            else
            {
                iRes = -3;
            }

            return(iRes);
        }