Example #1
0
        private async Task SendEmail(ContactUsDump dump)
        {
            var sb = new StringBuilder();

            sb.AppendLine($"From: {dump.UserId?.ToString() ?? "anonymous"} <{dump.Email}>");
            sb.Append(Environment.NewLine);
            sb.AppendLine($"Subject: {dump.Subject}");
            sb.Append(Environment.NewLine);
            //sb.AppendLine($"Uri: {dump.Uri}");
            sb.Append(Environment.NewLine);
            sb.AppendLine(dump.Message);

            string adminAddress = ConfigurationManager.AppSettings["AdminMail"];
            string emailSubject = dump.Subject;

            UserId userId = 0;

            if (User.Identity.IsAuthenticated)
            {
                userId = User.Identity.GetClaims().Id;
            }
            await SgManager.SendContactUsMail(userId, adminAddress, dump.Email, emailSubject, sb.ToString());

            Log.Info(LogTag.EmailSent_ContactUsForm, new { email = dump.Email });
        }
Example #2
0
        public async Task Message(ContactUsMessageData model)
        {
            if (!ModelState.IsValid)
            {
                BadRequest(ModelState);                 // Note: BadRequest returns non-localized strings part of .net. I don't know if we display those
                return;
            }

            var messageDump = new ContactUsDump {
                Email   = model.Email,
                Subject = model.Subject,
                Message = model.Message,
                Uri     = model.Uri
            };

            if (User.Identity.IsAuthenticated)
            {
                messageDump.UserId = User.Identity.GetClaims().Id;
                messageDump.Email  = _db.AspNetUsers.Find(User.Identity.GetUserId()).Email;
            }

            await SendEmail(messageDump);

            Ok();
        }