private async Task SendCompanyOnboardingEmailAsync(InfoSessionFollowUpSpecDto specDto, OrganizationDto organization) { var receiversList = specDto.Receivers.ToList(); for (int i = 0; i < receiversList.Count; i++) { var OrganizationShortcutName = organization.OrganizationShortcutName; if (String.IsNullOrEmpty(OrganizationShortcutName)) { OrganizationShortcutName = " "; } var parameters = new Dictionary <string, string> { { "CompanyShortcut", OrganizationShortcutName }, { "supportPerson", organization.SupportPerson.Name } }; await _emailSenderService.SendOnboardingEmailAsync( receiversList[i], (receiversList.Count > 1 && i == 0)?null : specDto.CcReceivers, organization.OrganizationTypeId, parameters) .ConfigureAwait(false); } }
private async Task SendInfoSessionFollowUpEmailAsync(InfoSessionFollowUpSpecDto specDto, string generatedToken) { foreach (var receiver in specDto.Receivers) { await _emailSenderService.SendInfoSessionFollowUpEmailAsync(receiver, specDto.Message, generatedToken) .ConfigureAwait(false); } }
public async Task <IActionResult> SendFollowUpEmailAsync(InfoSessionFollowUpSpecDto specDto) { await _followUpService.SendInfoSessionFollowUpEmailAsync(specDto).ConfigureAwait(false); if (!_followUpService.ValidationDictionary.GetModelState().IsValid) { return(BadRequest(new { errors = _followUpService.ValidationDictionary.GetErrorMessages() })); } return(NoContent()); }
private async Task SendSMEOnboardingEmailAsync(InfoSessionFollowUpSpecDto specDto, OrganizationDto organization) { foreach (var receiver in specDto.Receivers) { var OrganizationShortcutName = organization.OrganizationShortcutName; if (String.IsNullOrEmpty(OrganizationShortcutName)) { OrganizationShortcutName = " "; } var parameters = new Dictionary <string, string> { { "areaPharmacy", organization.Area }, { "CompanyShortcut", OrganizationShortcutName }, { "firstTestingDate", organization.FirstTestTimestamp.Value.ToString("d", CultureInfo.CreateSpecificCulture("de-CH")) }, { "TestingDay", organization.FirstTestTimestamp.Value.ToString("dddd", CultureInfo.CreateSpecificCulture("de-CH")) } }; await _emailSenderService.SendOnboardingEmailAsync(receiver, null, organization.OrganizationTypeId, parameters).ConfigureAwait(false); } }
private async Task SendCampOnboardingEmailAsync(InfoSessionFollowUpSpecDto specDto, OrganizationDto organization) { var parameters = new Dictionary <string, string> { { "numberOfTestParticipants", organization.NumberOfSamples.ToString(CultureInfo.InvariantCulture) }, { "supportPerson", organization.SupportPerson.Name }, { "OrgContactPersonName", organization.Contacts.First(c => c.Id == specDto.OrganizationContactPersonId).Name }, { "OrgContactPersonEmail", organization.Contacts.First(c => c.Id == specDto.OrganizationContactPersonId).Email } }; var receiversList = specDto.Receivers.ToList(); for (int i = 0; i < receiversList.Count; i++) { await _emailSenderService.SendOnboardingEmailAsync( receiversList[i], (receiversList.Count > 1 && i == 0)?null : specDto.CcReceivers, organization.OrganizationTypeId, parameters) .ConfigureAwait(false); } }
public async Task SendInfoSessionFollowUpEmailAsync(InfoSessionFollowUpSpecDto specDto) { if (specDto == default) { throw new ArgumentNullException(nameof(specDto)); } var organization = await _organizationsRepository .GetByIdAsync(specDto.OrganizationId).ConfigureAwait(false); if (organization.OrganizationTypeId == _smeOrganizationTypeId) { if (!ValidateOrganizationForOnboarding(organization, specDto.OrganizationContactPersonId)) { return; } await SendSMEOnboardingEmailAsync(specDto, organization).ConfigureAwait(false); await _organizationsRepository.UpdateIsOnboardingEmailSent(true, organization.Id).ConfigureAwait(false); } else if (organization.OrganizationTypeId == _companyOrganizationTypeId) { if (!ValidateOrganizationForOnboarding(organization, specDto.OrganizationContactPersonId)) { return; } await SendCompanyOnboardingEmailAsync(specDto, organization).ConfigureAwait(false); await _organizationsRepository.UpdateIsOnboardingEmailSent(true, organization.Id).ConfigureAwait(false); } else if (organization.OrganizationTypeId == _campOrganizationTypeId) { if (!ValidateOrganizationForOnboarding(organization, specDto.OrganizationContactPersonId)) { return; } await SendCampOnboardingEmailAsync(specDto, organization).ConfigureAwait(false); await _organizationsRepository.UpdateIsOnboardingEmailSent(true, organization.Id).ConfigureAwait(false); } else { if (string.IsNullOrEmpty(specDto.Message)) { ValidationDictionary.AddModelError("Message", "Message must not be null or empty space"); return; } if (!ValidateOrganizationForNewFollowUp(organization)) { return; } string generatedToken = await AddFollowUpAsync(organization).ConfigureAwait(false); await SendInfoSessionFollowUpEmailAsync(specDto, generatedToken).ConfigureAwait(false); } }