Table of Contents

Class DefaultTeamService

Namespace
Tharga.Team.MongoDB
Assembly
Tharga.Team.MongoDB.dll

The standard team service, storing DefaultTeamEntity teams with DefaultTeamMember members. Register it and write no team storage code at all.

public class DefaultTeamService : TeamServiceRepositoryBase<DefaultTeamEntity, DefaultTeamMember>
Inheritance
DefaultTeamService
Inherited Members

Remarks

The two members it implements are the only ones TeamServiceRepositoryBase<TTeamEntity, TMember> leaves abstract, and neither carries a decision: they exist because a base class cannot new a generic type parameter it does not control, so every host was writing the same two object initializers.

Everything stays overridable. Derive from this to change any of it — the twenty-odd storage members are virtual on the base, and both factories below are virtual too. Use TeamServiceRepositoryBase<TTeamEntity, TMember> directly instead when the team or member needs properties of your own; that is what the three-argument RegisterTeamService overload is for.

Constructors

DefaultTeamService(IUserService, ITeamRepository<DefaultTeamEntity, DefaultTeamMember>, IMongoDbServiceFactory, IIconStore)

public DefaultTeamService(IUserService userService, ITeamRepository<DefaultTeamEntity, DefaultTeamMember> teamRepository, IMongoDbServiceFactory mongoDbServiceFactory, IIconStore iconStore = null)

Parameters

userService IUserService
teamRepository ITeamRepository<DefaultTeamEntity, DefaultTeamMember>
mongoDbServiceFactory IMongoDbServiceFactory
iconStore IIconStore

Methods

CreateTeam(string, string, IUser, string)

protected override Task<DefaultTeamEntity> CreateTeam(string teamKey, string name, IUser user, string displayName)

Parameters

teamKey string
name string
user IUser
displayName string

Returns

Task<DefaultTeamEntity>

Remarks

teamKey is supplied by TeamServiceBase, which generates it and has already checked it is unused — this method does not invent one.

CreateTeamMember(InviteUserModel)

protected override Task<DefaultTeamMember> CreateTeamMember(InviteUserModel model)

Parameters

model InviteUserModel

Returns

Task<DefaultTeamMember>

Remarks

The member starts with a null Key and an invitation: they are not a member of anything until they accept, and the key is theirs, not one this service may invent for them.