Example #1
0
        }                                           //set only via Secret Manager

        // public Task SendEmailAsync(string email, string subject, string message)
        // {
        //     return Execute(Options.SendGridKey, subject, message, message, email, email);
        // }
        public Task <Response> SendVerificationEmailAsync(string email, string userName, string link, string templateId)
        {
            link = Options.BaseUrl + link;
            var dynamicTemplateData = new templateData
            {
                name       = userName,
                button_url = link
            };
            var to   = new EmailAddress(email, userName);
            var from = new EmailAddress("*****@*****.**", "Gamitude");
            var msg  = MailHelper.CreateSingleTemplateEmail(from, to, templateId, dynamicTemplateData);

            return(Execute(Options.SendGridKey, msg));
        }
Example #2
0
        // htmlOutput reads the profile data from profile and generates an HTML
        // coverage report, writing it to outfile. If outfile is empty,
        // it writes the report to a temporary file and opens it in a web browser.
        private static error htmlOutput(@string profile, @string outfile)
        {
            var(profiles, err) = ParseProfiles(profile);
            if (err != null)
            {
                return(error.As(err) !);
            }
            templateData d = default;

            var(dirs, err) = findPkgs(profiles);
            if (err != null)
            {
                return(error.As(err) !);
            }
            foreach (var(_, profile) in profiles)
            {
                var fn = profile.FileName;
                if (profile.Mode == "set")
                {
                    d.Set = true;
                }
                var(file, err) = findFile(dirs, fn);
                if (err != null)
                {
                    return(error.As(err) !);
                }
                var(src, err) = ioutil.ReadFile(file);
                if (err != null)
                {
                    return(error.As(fmt.Errorf("can't read %q: %v", fn, err)) !);
                }
                ref strings.Builder buf = ref heap(out ptr <strings.Builder> _addr_buf);
                err = htmlGen(_addr_buf, src, profile.Boundaries(src));
                if (err != null)
                {
                    return(error.As(err) !);
                }
                d.Files = append(d.Files, addr(new templateFile(Name: fn, Body: template.HTML(buf.String()), Coverage: percentCovered(profile), )));
            }