public async Task <TableGuest[]> Run() { var activated = new List <TableGuest>(); TableGuest[] guests = await this.apetitoApi.GetTableGuests(); foreach (TableGuest disabledGuest in guests.Where(guest => guest.IsLocked == true && HasAccountDomain(guest))) { disabledGuest.IsLocked = false; if (this.apetitoConfig.DefaultGroupName != null) { TableGuestGroup[] groups = await this.apetitoApi.GetTableGuestGroups(); var defaultGroup = groups.FirstOrDefault(group => group.GroupName == this.apetitoConfig.DefaultGroupName); if (defaultGroup != null) { disabledGuest.SetGroup(defaultGroup); } } TableGuest updated = await this.apetitoApi.UpdateTableGuest(disabledGuest.Id, disabledGuest); await this.mailClient.Send(ActivationSubject, ActivationText, updated.EmailAddress); activated.Add(updated); } return(activated.ToArray()); }
private bool HasAccountDomain(TableGuest guest) { var domain = this.apetitoConfig.EMail.Split('@', 2).Last(); return(guest.EmailAddress.EndsWith(domain, StringComparison.InvariantCultureIgnoreCase)); }