public async Task <int> AssignMembers(int groupId, AssignScope scope, string search = null) { if (!string.IsNullOrWhiteSpace(search)) { search = UsersHelper.ReplaceWildcardCharacters(search); } var parameters = new DynamicParameters(); parameters.Add("@GroupId", groupId); parameters.Add("@GroupsIds", SqlConnectionWrapper.ToDataTable(GroupsHelper.ParsingTypesToUserTypeArray(scope.Members, UserType.Group))); parameters.Add("@UsersIds", SqlConnectionWrapper.ToDataTable(GroupsHelper.ParsingTypesToUserTypeArray(scope.Members, UserType.User))); parameters.Add("@SelectAll", scope.SelectAll); parameters.Add("@Search", search); parameters.Add("@ErrorCode", dbType: DbType.Int32, direction: ParameterDirection.Output); var result = await _connectionWrapper.ExecuteScalarAsync <int>("AssignGroupMembers", parameters, commandType : CommandType.StoredProcedure); var errorCode = parameters.Get <int?>("ErrorCode"); if (errorCode.HasValue) { switch (errorCode.Value) { case (int)SqlErrorCodes.GroupWithCurrentIdNotExist: throw new ResourceNotFoundException(ErrorMessages.GroupNotExist, ErrorCodes.ResourceNotFound); case (int)SqlErrorCodes.GeneralSqlError: throw new Exception(ErrorMessages.GeneralErrorOfUpdatingGroup); } } return(result); }
public async Task <int> DeleteMembersFromGroupAsync(int groupId, AssignScope body) { var parameters = new DynamicParameters(); parameters.Add("@GroupId", groupId); parameters.Add("@GroupsIds", SqlConnectionWrapper.ToDataTable(GroupsHelper.ParsingTypesToUserTypeArray(body.Members, UserType.Group))); parameters.Add("@UsersIds", SqlConnectionWrapper.ToDataTable(GroupsHelper.ParsingTypesToUserTypeArray(body.Members, UserType.User))); parameters.Add("@SelectAll", body.SelectAll); parameters.Add("@ErrorCode", dbType: DbType.Int32, direction: ParameterDirection.Output); var result = await _connectionWrapper.ExecuteScalarAsync <int>("DeleteMembersFromGroup", parameters, commandType : CommandType.StoredProcedure); var errorCode = parameters.Get <int?>("ErrorCode"); if (errorCode.HasValue) { switch (errorCode.Value) { case (int)SqlErrorCodes.GeneralSqlError: throw new Exception(ErrorMessages.GeneralErrorOfRemovingMembersFromGroup); case (int)SqlErrorCodes.GroupWithCurrentIdNotExist: throw new ResourceNotFoundException(ErrorMessages.GroupNotExist, ErrorCodes.ResourceNotFound); } } return(result); }