public void Handle(JoinGym command) { Membership membership = Membership.Start(MembershipId.Parse(command.Id), DateOfBirth.Parse(command.DateOfBirth)); membership.ApplyPromotions(repository.GetById <PromotionsList>(PromotionsListId.Value), dateTimeProvider); repository.Add(membership); }
private Membership(MembershipId id, DateOfBirth dateOfBirth) : base(id) { Id = id; DateOfBirth = dateOfBirth; RaiseEvent(new MembershipStarted { MembershipId = id, InitialFee = StandardFee }); }
public static Membership Start(MembershipId id, DateOfBirth dateOfBirth) { return(new Membership(id, dateOfBirth)); }