public Result <EmptyResult> AssociateOrganizationUserToGroup(AssociateOrganizationUserToGroupCommand command) { if (command.OrganizationId <= 0) { return(new Result <EmptyResult>(GroupServiceErrors.InvalidAssociateOrganizationUserToGroupDataError(nameof(command.OrganizationId)))); } if (command.GroupId <= 0) { return(new Result <EmptyResult>(GroupServiceErrors.InvalidAssociateOrganizationUserToGroupDataError(nameof(command.GroupId)))); } if (!groupRepository.GroupExists(command.GroupId, command.OrganizationId)) { return(new Result <EmptyResult>(GroupServiceErrors.GroupNotFoundError())); } if (groupRepository.OrganizationUserAssociationWithGroupExists(command.GroupId, command.OrganizationUserId, command.OrganizationId)) { return(new Result <EmptyResult>(GroupServiceErrors.AssociationAlreadyExistsError())); } // want to check allowed user types to prevent non authorized user-types being added to a group var orgUserType = organizationUserRepository.GetOrganizationUserType(command.OrganizationUserId, command.OrganizationId); if (!orgUserType.HasValue || !command.AllowedUserTypes.Contains(orgUserType.Value)) { return(new Result <EmptyResult>(GroupServiceErrors.OrganizationUserNotFoundError())); } groupRepository.AssociateOrganizationUserToGroup(command); return(new Result <EmptyResult>()); }
public Result <EmptyResult> UpdateGroup(UpdateGroupCommand command) { if (command.OrganizationId <= 0) { return(new Result <EmptyResult>(GroupServiceErrors.InvalidUpdateGroupDataError(nameof(command.OrganizationId)))); } if (command.GroupId <= 0) { return(new Result <EmptyResult>(GroupServiceErrors.InvalidUpdateGroupDataError(nameof(command.GroupId)))); } if (!groupRepository.GroupExists(command.GroupId, command.OrganizationId)) { return(new Result <EmptyResult>(GroupServiceErrors.GroupNotFoundError())); } if (groupRepository.GroupNameExists(command.GroupId, command.Name, command.OrganizationId)) { return(new Result <EmptyResult>(GroupServiceErrors.GroupAlreadyExistsError())); } groupRepository.UpdateGroup(command); return(new Result <EmptyResult>()); }
public Result <EmptyResult> DisassociateOrganizationUserFromGroup(DisassociateOrganizationUserFromGroupCommand command) { if (command.OrganizationId <= 0) { return(new Result <EmptyResult>(GroupServiceErrors.InvalidDisassociateOrganizationUserFromGroupDataError(nameof(command.OrganizationId)))); } if (command.GroupId <= 0) { return(new Result <EmptyResult>(GroupServiceErrors.InvalidDisassociateOrganizationUserFromGroupDataError(nameof(command.GroupId)))); } if (!groupRepository.GroupExists(command.GroupId, command.OrganizationId)) { return(new Result <EmptyResult>(GroupServiceErrors.GroupNotFoundError())); } if (!organizationUserRepository.OrganizationUserExists(command.OrganizationUserId, command.OrganizationId)) { return(new Result <EmptyResult>(GroupServiceErrors.OrganizationUserNotFoundError())); } var result = groupRepository.DisassociateOrganizationUserFromGroup(command); if (!result) { return(new Result <EmptyResult>(GroupServiceErrors.InvalidDisassociateOrganizationUserFromGroupDataError())); } return(new Result <EmptyResult>()); }
public Result <EmptyResult> DeleteGroup(DeleteGroupCommand command) { if (command.OrganizationId <= 0) { return(new Result <EmptyResult>(GroupServiceErrors.InvalidDeleteGroupDataError(nameof(command.OrganizationId)))); } if (command.GroupId <= 0) { return(new Result <EmptyResult>(GroupServiceErrors.InvalidDeleteGroupDataError(nameof(command.GroupId)))); } if (!groupRepository.GroupExists(command.GroupId, command.OrganizationId)) { return(new Result <EmptyResult>(GroupServiceErrors.GroupNotFoundError())); } groupRepository.DeleteGroup(command); return(new Result <EmptyResult>()); }
public Result <QueryGroupMemberResult> QueryGroupMember(QueryGroupMemberCriteria criteria) { if (criteria.GroupId <= 0) { return(new Result <QueryGroupMemberResult>(GroupServiceErrors.InvalidQueryGroupMemberDataError(nameof(criteria.GroupId)))); } if (criteria.OrganizationId <= 0) { return(new Result <QueryGroupMemberResult>(GroupServiceErrors.InvalidQueryGroupMemberDataError(nameof(criteria.OrganizationId)))); } if (!groupRepository.GroupExists(criteria.GroupId, criteria.OrganizationId)) { return(new Result <QueryGroupMemberResult>(GroupServiceErrors.GroupNotFoundError())); } if (criteria.Page == null || criteria.Page.Value <= 0) { criteria.Page = 1; } if (criteria.PageSize == null || criteria.PageSize.Value <= 0) { criteria.PageSize = 10; } string[] sortableFields = groupRepository.GetGroupMemberSortableFields(); if (!sortableFields.Contains(criteria.OrderBy, StringComparer.OrdinalIgnoreCase)) { criteria.OrderBy = groupRepository.GetDefaultSortField(); } if (!string.Equals(criteria.Direction, "DESC", StringComparison.OrdinalIgnoreCase)) { criteria.Direction = "ASC"; } var queryGroupMemberResult = groupRepository.QueryGroupMember(criteria); return(new Result <QueryGroupMemberResult>(queryGroupMemberResult)); }