public async Task <ActionResult> ContactProductUser(contactUserViewModel vm)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    await configSendGridasync(vm);

                    //try
                    //{
                    //    MailMessage msz = new MailMessage();
                    //    msz.From = new MailAddress(vm.EmailSender);//Email which you are getting
                    //                                         //from contact us page
                    //    msz.To.Add(vm.user);//Where mail will be sent
                    //    msz.Subject = vm.SubjectSender;
                    //    msz.Body = vm.Message;
                    //    SmtpClient smtp = new SmtpClient();
                    //smtp.UseDefaultCredentials = false;
                    //    smtp.Host = "smtp.gmail.com";

                    //    smtp.Port = 587;

                    //    smtp.Credentials = new NetworkCredential("*****@*****.**", "florent23");

                    //smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                    //    smtp.EnableSsl = true;

                    //    smtp.Send(msz);

                    //    ModelState.Clear();
                    //    ViewBag.Message = "Méssage envoyé avec succès ";
                    //}
                    //catch (Exception ex)
                    //{

                    //    ModelState.Clear();
                    //    ViewBag.Message = $" Sorry we are facing Problem here {ex.Message}";
                    //}
                    ViewBag.Message = "Message envoyé avec succès ";
                }catch (Exception ex)
                {
                    ModelState.Clear();
                    ViewBag.Message = $" désolé il y'a un problème {ex.Message}";
                }
            }

            return(PartialView("ContactProductUser_PartialView", vm));
        }
 public ContactEmailUserPage(contactUserViewModel contact)
 {
     InitializeComponent();
     Indicator.IsVisible = false;
     Name.Text           = contact.NameSender;
     Email.Text          = contact.EmailSender;
     Subject.Text        = contact.SubjectSender;
     updateMessage(contact.Category, contact.RecieverName, contact.NameSender);
     Contact = new ContactEmailUserViewModel()
     {
         NameSender    = contact.NameSender,
         EmailSender   = contact.EmailSender,
         Category      = contact.Category,
         Linkshare     = contact.Linkshare,
         RecieverEmail = contact.RecieverEmail,
         RecieverName  = contact.RecieverName,
         SubjectSender = contact.SubjectSender
     };
 }
        private List <string> AttachFileMessage(contactUserViewModel contact)
        {
            List <string> list = new List <string>();

            if (contact.file != null)
            {
                //Save image name path
                string FileName = Path.GetFileNameWithoutExtension(contact.file.FileName);

                // save extension of image
                string FileExtension = Path.GetExtension(contact.file.FileName);

                //Add extension to attached file name
                FileName = FileName + FileExtension;

                //name for mail attachement
                string NameMailAttachement = FileName;
                list.Add(NameMailAttachement);

                //Add a curent date to attached file name
                FileName = DateTime.Now.ToString("yyyyMMdd") + "-" + FileName;

                //Create complete path to store in server
                var path = Server.MapPath("~/UserImage/");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                contact.attachFile = $"/UserImage/{FileName}";

                FileName = Path.Combine(path, FileName);

                contact.file.SaveAs(FileName);
                list.Add(FileName);
                return(list);
            }
            else
            {
                return(null);
            }
        }
        public async Task <ActionResult> ContactUs(contactUserViewModel vm)
        {
            string text = null;

            if (ModelState.IsValid)
            {
                try
                {
                    await configSendGridasync(vm);

                    text = "Message envoyé avec succès ";
                }
                catch (Exception ex)
                {
                    ModelState.Clear();
                    text = $" désolé il y'a un problème {ex.Message}";
                }
            }

            return(RedirectToAction("Contact", "Home", new { text = text }));
        }
        private async Task configSendGridasync(contactUserViewModel message)
        {
            Environment.SetEnvironmentVariable("SENDGRID_API_KEY", "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");

            var apikey = Environment.GetEnvironmentVariable("SENDGRID_API_KEY");
            //var apiKey = ConfigurationManager.AppSettings["mailPasswordSendGrid"];
            var client           = new SendGridClient(apikey);
            var from             = new EmailAddress("*****@*****.**", message.NameSender + "(Ne pas répondre ici)");
            var subject          = message.SubjectSender;
            var to               = new EmailAddress(message.RecieverEmail, message.RecieverName);
            var plainTextContent = "<a href='lookaukwat.azurewebsites.net'><img src=" + @Url.Content("~/UserImage/lookaukwat_logo.jpg") + " alt='lien vers le site' style='height: 50px;' /><br/><br/> <strong style='height: 20px;'>LookAuKwat</strong></a> " +
                                   "Hello <br/><br/> vous avez un nouveau message sur votre annonce dans <strong style='color:blue;Height:20px;'> LookAuKwat! </strong> <br/> " +
                                   " <a href =\"" + message.Linkshare + "\">" + message.Linkshare + "</a> <br/>" + message.Message + " <br/>" + "<br/>"
                                   + "Vous pouvez lui répondre aussi sur son email suivant : " + " <a href =\"mailto:" + message.EmailSender + "\">" + message.EmailSender + "</a>";

            var htmlContent = "<a href='lookaukwat.azurewebsites.net'><img src=" + @Url.Content("~/UserImage/lookaukwat_logo.jpg") + " alt='lien vers le site' style='height: 50px;' /><br/><br/> <strong style='height: 20px;'>LookAuKwat</strong></a> "
                              + "Hello <br/><br/> vous avez un nouveau message sur votre annonce dans <strong style='color:blue;Height:20px;'> LookAuKwat! </strong> <br/> " +
                              " <a href =\"" + message.Linkshare + "\">" + message.Linkshare + "</a> <br/>" + message.Message + " <br/>" + "<br/>"
                              + "Vous pouvez lui répondre aussi sur son email suivant : " + " <a href =\"mailto:" + message.EmailSender + "\">" + message.EmailSender + "</a>";

            var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);

            List <string> files = AttachFileMessage(message);

            if (files != null)
            {
                byte[] byteData = System.IO.File.ReadAllBytes(files[1]);
                var    Content  = Convert.ToBase64String(byteData);
                msg.AddAttachment(files[0], Content);
                //        new List<SendGrid.Helpers.Mail.Attachment>
                //{
                //    new SendGrid.Helpers.Mail.Attachment
                //    {
                //        Content = Convert.ToBase64String(byteData),
                //        Filename = file,

                //        Disposition = "attachment"
                //    }
                //};
            }

            var response = await client.SendEmailAsync(msg);

            //message.Message = "Hello <br/> vous avez un nouveau message sur votre annonce dans LookAuKwat! <br/> " +
            //   " <a href =\"" + message.Linkshare + "\">" + message.Linkshare + "</a> <br/>"+ message.Message;
            //var myMessage = new SendGridMessage();
            //myMessage.AddTo(message.user);
            //myMessage.From = new System.Net.Mail.MailAddress(
            //                    message.EmailSender, message.NameSender);
            //myMessage.Subject = message.SubjectSender;
            //myMessage.Text = message.Message;
            //myMessage.Html = message.Message;
            //string file = AttachFileMessage(message);
            //if (file != null)
            //{
            //    myMessage.AddAttachment(file);
            //}


            //if (message.file != null)
            //{

            //    //Save image name path
            //    string FileName = Path.GetFileNameWithoutExtension(message.file.FileName);

            //    // save extension of image
            //    string FileExtension = Path.GetExtension(message.file.FileName);

            //    //Add a curent date to attached file name
            //    FileName = DateTime.Now.ToString("yyyyMMdd") + "-" + FileName + FileExtension;

            //    //Create complete path to store in server
            //    var path = Server.MapPath("~/UserImage/");
            //    if (!Directory.Exists(path))
            //    {
            //        Directory.CreateDirectory(path);
            //    }
            //    message.attachFile = $"/UserImage/{FileName}";

            //    FileName = Path.Combine(path, FileName);

            //    message.file.SaveAs(FileName);

            //}
            // myMessage.AddAttachment("C:/Users/wangu/OneDrive/Bureau/LOGEMENT/barman.png");

            //var credentials = new NetworkCredential(
            //           ConfigurationManager.AppSettings["mailAccountSendGrid"],
            //           ConfigurationManager.AppSettings["mailPasswordSendGrid"]
            //           );

            //// Create a Web transport for sending email.
            //var transportWeb = new Web(credentials);

            //// Send the email.
            //if (transportWeb != null)
            //{

            //   await transportWeb.DeliverAsync(myMessage);

            //}
            //else
            //{
            //    Trace.TraceError("Failed to create Web transport.");
            //    await Task.FromResult(0);
            //}
        }
 public ActionResult ContactProductUser_PartialView(contactUserViewModel vm)
 {
     return(PartialView(vm));
 }