public async Task <string> RunOrchestrator( [OrchestrationTrigger] IDurableOrchestrationContext context) { var vm = context.GetInput <CommunityViewModel>(); string id = await context.CallActivityAsync <string>(ConfirmationTask.CreateCommunity, vm); var vmUpdate = CommunityUpdateViewModel.Create(vm); vmUpdate.ShortName = id; var activateSendMail = new ActivateCommunitySendMail { Data = vmUpdate, InstanceId = context.InstanceId }; await context.CallActivityAsync(ConfirmationTask.SendMailCommunity, activateSendMail); await HumanInteractionCommunity(context, vmUpdate); return(id); }
public async Task ConfirmCommunity([ActivityTrigger] ActivateCommunitySendMail activateSendMail, [SendGrid(ApiKey = "SendGridConnections:ApiKey")] IAsyncCollector <SendGridMessage> messageCollector, ILogger log) { var communityData = activateSendMail.Data; SendGridMessage message = new SendGridMessage(); message.SetFrom(new EmailAddress(sendGridSettings.From)); message.AddTos(adminSettings.GetMails().Select(x => new EmailAddress(x)).ToList()); message.SetSubject($"New Community submitted: {communityData.Name}"); message.SetTemplateId(sendGridSettings.TemplateCommunityId); message.SetTemplateData(new MailCommunityTemplateData { confirmurl = adminSettings.GetConfirmationCommunityLink(activateSendMail.InstanceId, true), aborturl = adminSettings.GetConfirmationCommunityLink(activateSendMail.InstanceId, false), communityname = communityData.Name, communitywebsite = communityData.WebSite.ToString(), communitymanagers = communityData.Managers.Select(t => new PersonTemplate { name = t.Name, surname = t.Surname }).ToList() }); await messageCollector.AddAsync(message); }