/// <summary> /// Cria o objeto do tipo IForm /// </summary> /// <typeparam name="T">Tipo do evento</typeparam> /// <param name="form">Tipo do Form</param> /// <param name="evento">Objeto do evento</param> /// <returns>Objeto IForm</returns> public static Interfaces.IForm CreateForm <T>(Type form, ref T evento) { ConstructorInfo constructor = form.GetConstructor(new Type[] { typeof(T) }); Interfaces.IForm newForm = null; try { newForm = (Interfaces.IForm)constructor.Invoke(new object[] { evento }); } catch (NullReferenceException) { } catch (Exception ex) { throw ex; } return(newForm); }
/// <summary> /// Executa evento /// </summary> /// <typeparam name="T">Tipo do evento</typeparam> /// <param name="formID">ID do form</param> /// <param name="eventInfo">Objeto do evento</param> /// <param name="eventName">Nome do evento a ser executado</param> /// <param name="finishTransactionYN">Finaliza transação em caso de erro</param> /// <returns>Evento foi executado?</returns> public static Boolean ExecuteEvent <T>(String formID, T eventInfo, String eventName, Boolean finishTransactionYN) { Interfaces.IForm oForm = null; try { Type tType = FormController.GetFormType(formID); // Verifica se a variável tType contém algum valor, caso não, o método é interrompido if (tType == null) { return(true); } // Instancia o objeto referente ao menu que foi selecionado oForm = FormController.CreateForm <T>(tType, ref eventInfo); // Verifica se a variável oForm contém algum valor, caso não, o método é interrompido //if (oForm == null) return false; if (oForm == null) { return(true); } return((Boolean)oForm.GetType().GetMethod(eventName).Invoke(oForm, null)); } catch (Exception ex) { ErrorController.SetErrorMessage(ex, finishTransactionYN); //if (oForm != null) //{ // oForm.Freeze(false); //} return(false); } }