/// <summary> /// Функция получения списка типов контролов /// </summary> /// <param name="package"></param> /// <returns></returns> public ResponseObjectPackage<List<ControlTypeListEntity>> GetControlTypeList(RequestPackage package) { // получим список типов контролов List<ControlTypeListEntity> res = new DBUtils(new FireBirdConnectionFactory()).RunSqlAction(new FormEditorDataCRUD().GetControlTypeList, package).GetDataOrExceptionIfError(); // получим список зависимостей контролов List<ControlTypeDependenciesListEntity> depRes = new DBUtils(new FireBirdConnectionFactory()).RunSqlAction(new FormEditorDataCRUD().GetControlTypeDependenciesList, package).GetDataOrExceptionIfError(); // получим список свойств List<PropertyTypeListEntity> propRes = new DBUtils(new FireBirdConnectionFactory()).RunSqlAction(new FormEditorDataCRUD().GetPropertyTypeList, package).GetDataOrExceptionIfError(); // получим список свойств List<EventType> eventRes = new EventEditorLogic().GetEventTypeList(package).GetDataOrExceptionIfError(); // устанавливаем свойства foreach (ControlTypeListEntity type in res) { type.SetComponentIcon(); foreach (ControlTypeDependenciesListEntity dep in depRes) { if (type.ID == dep.controlTypeIDParent) { type.childComponents.Add(dep.child); } } foreach (PropertyTypeListEntity prop in propRes) { if (type.ID == prop.controlTypeID) { type.properties.Add(prop.property, prop.GetRightDefaultValue()); } } foreach (EventType ev in eventRes) { if (type.ID == ev.controlTypeID) { type.events.Add(ev); } } } res.Sort((x, y)=> x.component.ToLower().CompareTo(y.component.ToLower())); return new ResponseObjectPackage<List<ControlTypeListEntity>>() { resultData = res }; }