Example #1
0
        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);
        }
Example #2
0
        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);
        }