Esempio n. 1
0
        public async Task <IActionResult> Answer(int id, [Bind("Id,Answer")] Contact contact)
        {
            try
            {
                if (id != contact.Id)
                {
                    return(NotFound());
                }

                var entity = await _context.Contacts
                             .FirstOrDefaultAsync(m => m.Id == id);

                if (entity == null)
                {
                    return(NotFound());
                }
                if (entity.Answer != null)
                {
                    return(BadRequest());
                }
                entity.Answer     = contact.Answer;
                entity.AnswerDate = DateTime.UtcNow.AddHours(4);

                var host     = config.GetValue <string>("emailAccount:smtpServer");
                var port     = config.GetValue <int>("emailAccount:smtpPort");
                var userName = config.GetValue <string>("emailAccount:userName");
                var password = config.GetValue <string>("emailAccount:password");
                var cc       = config.GetValue <string>("emailAccount:cc")
                               .Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);


                SmtpClient client = new SmtpClient(host, port);
                client.Credentials = new NetworkCredential(userName, password);
                client.EnableSsl   = true;

                MailMessage message = new MailMessage(userName, entity.Email);

                foreach (var item in cc)
                {
                    message.CC.Add(item);
                }

                message.Subject    = "Organi Musteri Servisi";
                message.Body       = entity.Answer;
                message.IsBodyHtml = true;

                client.Send(message);

                _context.Entry(entity).State = EntityState.Modified;
                await _context.SaveChangesAsync();

                TempData["Message"] = "Cavablandirildi";

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                throw;
            }
        }