/// <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); } }
public string CreateUserPermission(PermissionModel model, bool recreate = false, bool AddPermissionsToUsers = true) { UserPermissionTree oUserPermissionTree = (UserPermissionTree)SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserPermissionTree); string msg = String.Empty; try { bool update = oUserPermissionTree.GetByKey(model.PermissionID); if (update && recreate) { int permission = oUserPermissionTree.Remove(); } oUserPermissionTree.PermissionID = model.PermissionID; oUserPermissionTree.Name = model.Name; oUserPermissionTree.Options = model.Options; oUserPermissionTree.IsItem = model.IsItem; if (!String.IsNullOrEmpty(model.ParentId)) { oUserPermissionTree.ParentID = model.ParentId; } if (model.IsItem == SAPbobsCOM.BoYesNoEnum.tYES && !String.IsNullOrEmpty(model.FormType)) { bool formExists = false; int i; for (i = 0; i < oUserPermissionTree.UserPermissionForms.Count; i++) { oUserPermissionTree.UserPermissionForms.SetCurrentLine(i); if (oUserPermissionTree.UserPermissionForms.FormType == model.FormType) { formExists = true; msg = String.Format("Permissão {0} - {1} já existe", model.PermissionID, model.Name); } } if (!formExists) { if (!String.IsNullOrEmpty(oUserPermissionTree.UserPermissionForms.FormType)) { oUserPermissionTree.UserPermissionForms.Add(); } oUserPermissionTree.UserPermissionForms.FormType = model.FormType; } } int error = 0; error = oUserPermissionTree.Add(); if (update && !recreate) { error = oUserPermissionTree.Update(); } else { error = oUserPermissionTree.Add(); } if (error != 0) { msg = ErrorController.GetLastErrorDescription(); } else if (AddPermissionsToUsers) { msg = this.SetPermissionForAllUsers(model.PermissionID); } } catch (Exception e) { msg = "Erro geral ao criar permissão: " + e.Message; } finally { Marshal.ReleaseComObject(oUserPermissionTree); oUserPermissionTree = null; } return(msg); }