public JsonResult GetHandlerTypeList()
 {
     try
     {
         RequestObjectPackage<ActionTypeSearchTemplate> request = new RequestObjectPackage<ActionTypeSearchTemplate>() { requestData = new ActionTypeSearchTemplate() };
         ResponseObjectPackage<List<ActionTypeModel>> response = new EventEditorLogic().GetHandlerTypeList(request).GetSelfOrExceptionIfError();
         return Json(response);
     }
     catch (Exception ex)
     {
         return this.HandleException(ex);
     }
 }
 /// <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 };
 }