public async Task <ApiResponse <bool> > Verify(Guid tcid, string token) { Guard.Against.NullOrWhiteSpace(token, nameof(token)); Guard.Against.NullOrEmpty(tcid, nameof(tcid)); var tenantContact = await _hostRepository.GetFirstAsync <TenantContact>(tc => tc.Id == tcid, includeProperties : "Tokens"); if (tenantContact == null) { return(ApiResponse <bool> .Error()); //ErrorProvider.GetError("no_tenant_contact") } var validToken = tenantContact.Tokens.FirstOrDefault(t => t.Value == token); if (validToken != null && !validToken.Valid) { return(ApiResponse <bool> .Error()); //ErrorProvider.GetError("token_issued") } var validDurationPassed = validToken.CreatedOn.AddHours(24) < DateTime.Now; if (validDurationPassed) { return(ApiResponse <bool> .Error()); // ErrorProvider.GetError("token_expired") } validToken.Valid = false; tenantContact.EmailConfirmed = true; _hostRepository.Update(tenantContact); await _hostRepository.SaveAsync(); await CreateTenantResources(tenantContact.Email, tenantContact.PasswordHash); return(ApiResponse <bool> .Success()); }
public async Task <HostModel> Update(HostModel model) { var entity = _repository.Update(model.Id, model.ToEntity()); var m = entity.ToModel(); m.Status = _cacheService.Get(m.IpAddress); return(await Task.FromResult(m).ConfigureAwait(false)); }