///<summary> /// Method Invocation of wrapper classes ///<summary> protected static FR_L5AC_GRfMID_1641_Array Invoke(DbConnection Connection, DbTransaction Transaction, string ConnectionString, P_L5AC_GRfMID_1641 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { bool cleanupConnection = Connection == null; bool cleanupTransaction = Transaction == null; FR_L5AC_GRfMID_1641_Array functionReturn = new FR_L5AC_GRfMID_1641_Array(); try { if (cleanupConnection == true) { Connection = CSV2Core_MySQL.Support.DBSQLSupport.CreateConnection(ConnectionString); Connection.Open(); } if (cleanupTransaction == true) { Transaction = Connection.BeginTransaction(); } functionReturn = Execute(Connection, Transaction, Parameter, securityTicket); #region Cleanup Connection/Transaction //Commit the transaction if (cleanupTransaction == true) { Transaction.Commit(); } //Close the connection if (cleanupConnection == true) { Connection.Close(); } #endregion } catch (Exception ex) { try { if (cleanupTransaction == true && Transaction != null) { Transaction.Rollback(); } } catch { } try { if (cleanupConnection == true && Connection != null) { Connection.Close(); } } catch { } throw new Exception("Exception occured in method cls_Get_Requests_for_Member", ex); } return(functionReturn); }
protected static FR_L5AC_GRfMID_1641_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5AC_GRfMID_1641 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5AC_GRfMID_1641_Array(); var maxRolePerGroup = new Dictionary <Guid, ECommunityRole>(); var user = cls_Get_AcctionGroups_with_Roles.Invoke(Connection, Transaction, new P_L5AC_GAGwR_1520() { CMN_BPT_USR_UserID = Parameter.CMN_BPT_USR_UserID }, securityTicket).Result; foreach (var group in user.Group)//set max role per group { foreach (var role in group.Group_Roles) { ECommunityRole eRole = EnumUtils.GetEnumValueByDescription <ECommunityRole>(role.GlobalPropertyMatchingID); if (!maxRolePerGroup.ContainsKey(group.HEC_CMT_CommunityGroupID)) { maxRolePerGroup.Add(group.HEC_CMT_CommunityGroupID, eRole); } else { if (maxRolePerGroup[group.HEC_CMT_CommunityGroupID] < eRole) { maxRolePerGroup[group.HEC_CMT_CommunityGroupID] = eRole; } } } } var res = new List <L5AC_GRfMID_1641>(); Guid[] groupIDsWhereCanAdministrate = maxRolePerGroup.ToArray().Where(w => w.Value >= ECommunityRole.Administrator).Select(s => s.Key).ToArray(); if (groupIDsWhereCanAdministrate.Length > 0) { var requests = cls_Get_Requests_for_GroupIDs.Invoke(Connection, Transaction, new P_L5AC_GRfGIDs_1555() { GroupIDs = groupIDsWhereCanAdministrate }, securityTicket).Result; List <L5AC_GRfGIDs_1555> requestsThatICanSee = new List <L5AC_GRfGIDs_1555>(); foreach (var request in requests) { ECommunityRole eRole = EnumUtils.GetEnumValueByDescription <ECommunityRole>(request.Role_GlobalPropertyMatchingID); if (maxRolePerGroup[request.CommunityGroup_RefID] >= eRole) { requestsThatICanSee.Add(request); } } var groups = ORM_HEC_CMT_CommunityGroup.Query.Search(Connection, Transaction, new ORM_HEC_CMT_CommunityGroup.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).ToArray(); foreach (var request in requestsThatICanSee) { var group = groups.SingleOrDefault(s => s.HEC_CMT_CommunityGroupID == request.CommunityGroup_RefID); res.Add(new L5AC_GRfMID_1641() { HEC_CMT_GroupSubscription_RequestID = request.HEC_CMT_GroupSubscription_RequestID, Role_GlobalPropertyMatchingID = request.Role_GlobalPropertyMatchingID, CommunityGroup_RefID = request.CommunityGroup_RefID, CommunityGroup_Name = group == null ? new Dict() : group.CommunityGroup_Name, IsGroupJoinRequest = request.RoleRequestForGroup == null, Request_By_MemberID = request.HEC_CMT_MembershipID, Member_FirstName = request.Member_FirstName, Member_LastName = request.Member_LastName, CMN_BPT_USR_UserID = request.CMN_BPT_USR_UserID }); } } returnValue.Result = res.ToArray(); return(returnValue); #endregion UserCode }