public async Task <ProviderUserResponseModel> Get(Guid providerId, Guid id) { var providerUser = await _providerUserRepository.GetByIdAsync(id); if (providerUser == null || !_currentContext.ProviderManageUsers(providerUser.ProviderId)) { throw new NotFoundException(); } return(new ProviderUserResponseModel(providerUser)); }
public async Task <ProviderUser> AcceptUserAsync(Guid providerUserId, User user, string token) { var providerUser = await _providerUserRepository.GetByIdAsync(providerUserId); if (providerUser == null) { throw new BadRequestException("User invalid."); } if (providerUser.Status != ProviderUserStatusType.Invited) { throw new BadRequestException("Already accepted."); } if (!CoreHelpers.TokenIsValid("ProviderUserInvite", _dataProtector, token, user.Email, providerUser.Id, _globalSettings)) { throw new BadRequestException("Invalid token."); } if (string.IsNullOrWhiteSpace(providerUser.Email) || !providerUser.Email.Equals(user.Email, StringComparison.InvariantCultureIgnoreCase)) { throw new BadRequestException("User email does not match invite."); } providerUser.Status = ProviderUserStatusType.Accepted; providerUser.UserId = user.Id; providerUser.Email = null; await _providerUserRepository.ReplaceAsync(providerUser); return(providerUser); }
public async Task <ListResponseModel <EventResponseModel> > GetProviderUser(Guid providerId, Guid id, [FromQuery] DateTime?start = null, [FromQuery] DateTime?end = null, [FromQuery] string continuationToken = null) { var providerUser = await _providerUserRepository.GetByIdAsync(id); if (providerUser == null || !providerUser.UserId.HasValue || !_currentContext.ProviderAccessEventLogs(providerUser.ProviderId)) { throw new NotFoundException(); } var dateRange = GetDateRange(start, end); var result = await _eventRepository.GetManyByProviderActingUserAsync(providerUser.ProviderId, providerUser.UserId.Value, dateRange.Item1, dateRange.Item2, new PageOptions { ContinuationToken = continuationToken }); var responses = result.Data.Select(e => new EventResponseModel(e)); return(new ListResponseModel <EventResponseModel>(responses, result.ContinuationToken)); }