public int GetCount(COMMAND_ENTITY command) { int iRes = 0; iRes = m_dictEntityParser.Keys.Where(item => (item.Command == command)).Count(); return(iRes); }
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); }
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); }
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); }