public void buildEmailTamplateReportedIssues(SellerNotesReportedIssue NewReport) { var DownloadRecored = db.Downloads.Where(m => m.id == NewReport.AgainstDownloadID).SingleOrDefault(); var buyer = db.Users.Where(m => m.id == DownloadRecored.Downloader).Select(m => m.FirstName).SingleOrDefault(); var seller = db.Users.Where(m => m.id == DownloadRecored.Seller).Select(m => m.FirstName).SingleOrDefault(); var Title = DownloadRecored.NoteTitle; string body = System.IO.File.ReadAllText(HostingEnvironment.MapPath("~/EmailTemplate/") + "TextReportIssues" + ".cshtml"); body = body.Replace("ViewBag.bn", buyer); body = body.Replace("ViewBag.sn", seller); body = body.Replace("ViewBag.nt", Title); body = body.ToString(); string subject = buyer + " Reported an issue for " + Title; string to = db.SystemConfigurations.Where(m => m.Key == "Aemail").Select(m => m.Value).SingleOrDefault(); string from = db.SystemConfigurations.Where(m => m.Key == "Semail").Select(m => m.Value).SingleOrDefault(); HomeController.buildEmailTamplate(subject, body, from, to); }
public ActionResult Inappropriate(string Remark, string DownloadID) { int downloadID = int.Parse(DownloadID); var downloadRecored = db.Downloads.Where(m => m.id == downloadID).SingleOrDefault(); SellerNotesReportedIssue NewReport = new SellerNotesReportedIssue(); NewReport.NoteID = downloadRecored.NoteID; NewReport.ReportedByID = downloadRecored.Downloader; NewReport.AgainstDownloadID = downloadID; NewReport.Remarks = Remark; NewReport.CreatedDate = DateTime.Now; NewReport.CreatedBy = downloadRecored.Downloader; db.SellerNotesReportedIssues.Add(NewReport); db.SaveChanges(); buildEmailTamplateReportedIssues(NewReport); return(RedirectToAction("MyDonwloads")); }
// intializing the template that we want to send to admin for marking note as inappropriate private void SpamReportTemplate(SellerNotesReportedIssue spam, string membername) { string from, to, body, subject; // get all texts from SpamReport.cshtml from EmailTemplate body = System.IO.File.ReadAllText(HostingEnvironment.MapPath("~/EmailTemplate/") + "SpamReport" + ".cshtml"); // get notes and user by using SellerNotesReportedIssue object var note = _dbcontext.SellerNotes.Find(spam.NoteID); var seller = _dbcontext.Users.Find(note.SellerID); // replace some text with note title, seller name and user's name who mark this note as inappropriate body = body.Replace("ViewBag.SellerName", seller.FirstName + " " + seller.LastName); body = body.Replace("ViewBag.NoteTitle", note.Title); body = body.Replace("ViewBag.ReportedBy", membername); body = body.ToString(); // get support email var fromemail = _dbcontext.SystemConfigurations.Where(x => x.Key == "supportemail").FirstOrDefault(); var tomail = _dbcontext.SystemConfigurations.Where(x => x.Key == "notifyemail").FirstOrDefault(); // set from, to, subject, body from = fromemail.Value.Trim(); to = tomail.Value.Trim(); subject = membername + " Reported an issue for " + note.Title; StringBuilder sb = new StringBuilder(); sb.Append(body); body = sb.ToString(); // create object of MailMessage MailMessage mail = new MailMessage(); mail.From = new MailAddress(from, "NotesMarketplace"); mail.To.Add(new MailAddress(to)); mail.Subject = subject; mail.Body = body; mail.IsBodyHtml = true; // send mail (NotesMarketplace/SendMail/) SendingEmail.SendEmail(mail); }
public ActionResult ReportanIssue(int id, string remarks) { var Emailid = User.Identity.Name.ToString(); User user = dbobj.Users.Where(x => x.EmailId == Emailid).FirstOrDefault(); SellerNote sellrnote = dbobj.SellerNotes.Where(x => x.Id == id).FirstOrDefault(); Download objdownload = dbobj.Downloads.Where(x => x.NoteId == id).FirstOrDefault(); SellerNotesReportedIssue reportedIssue = dbobj.SellerNotesReportedIssues.Where(x => x.NoteId == sellrnote.Id && x.ReportedByid == user.ID).FirstOrDefault(); if (reportedIssue != null) { reportedIssue.Remarks = remarks; reportedIssue.Modifieddate = DateTime.Now; reportedIssue.ModifiedBy = user.ID; dbobj.Entry(reportedIssue).State = EntityState.Modified; dbobj.SaveChanges(); } else { SellerNotesReportedIssue objseller1 = new SellerNotesReportedIssue { NoteId = sellrnote.Id, Remarks = remarks, ReportedByid = user.ID, againstDownloadId = objdownload.Id, CreatedBy = objdownload.downloader, CreatedDate = DateTime.Now, IsActive = true }; dbobj.SellerNotesReportedIssues.Add(objseller1); dbobj.SaveChanges(); } SystemConfiguration system = dbobj.SystemConfigurations.Where(x => x.Key == "SupportEmail").FirstOrDefault(); SystemConfiguration system1 = dbobj.SystemConfigurations.Where(x => x.Key == "Password").FirstOrDefault(); SystemConfiguration system2 = dbobj.SystemConfigurations.Where(x => x.Key == "EmailAddress").FirstOrDefault(); SendEmailtoAdmin(system.Value, system1.Value, system2.Value, id); return(RedirectToAction("Dashboard", "Notes")); }
public ActionResult SpamReport(FormCollection form) { // get download id by form int downloadid = Convert.ToInt32(form["downloadid"]); // get ReportedIssues object var alreadyreportedspam = _dbcontext.SellerNotesReportedIssues.Where(x => x.AgainstDownloadID == downloadid).FirstOrDefault(); // if user not slready reported spam if (alreadyreportedspam == null) { //get logged in user var user = _dbcontext.Users.Where(x => x.EmailID == User.Identity.Name).FirstOrDefault(); // store logged in user name into variable string membername = user.FirstName + " " + user.LastName; // create a spam report object SellerNotesReportedIssue spamnote = new SellerNotesReportedIssue(); spamnote.NoteID = Convert.ToInt32(form["noteid"]); spamnote.AgainstDownloadID = downloadid; spamnote.ReportedByID = user.UserID; spamnote.Remarks = form["spamreport"]; spamnote.CreatedDate = DateTime.Now; spamnote.CreatedBy = user.UserID; // save spam report object into database _dbcontext.SellerNotesReportedIssues.Add(spamnote); _dbcontext.SaveChanges(); // send mail to admin that buyer reported the notes as inappropriate SpamReportTemplate(spamnote, membername); } return(RedirectToAction("MyDownloads")); }
public ActionResult Spam(int id) { //Auth User User user = db.Users.FirstOrDefault(x => x.Email == User.Identity.Name); //Find Note on Download Table var download = db.Downloads.Where(x => x.ID == id).FirstOrDefault(); //Note Seller var seller = db.Users.FirstOrDefault(x => x.ID == download.Seller); SellerNotesReportedIssue reportedIssue = new SellerNotesReportedIssue(); string remark = Request.Form["Remark"]; var checkAlreadyReport = db.SellerNotesReportedIssues.Where(x => x.NoteID == download.NoteID && x.ReportedByID == user.ID && x.AgainstDownloadID == download.ID).FirstOrDefault(); if (checkAlreadyReport != null) { return(RedirectToAction("Index", "MyDownload")); } if (string.IsNullOrEmpty(remark)) { return(Content("Please enter Remark...")); } //Save info in SellerNotesReportedIssue Table reportedIssue.NoteID = download.NoteID; reportedIssue.ReportedByID = user.ID; reportedIssue.AgainstDownloadID = download.ID; reportedIssue.Remarks = remark; reportedIssue.CreatedDate = DateTime.Now; reportedIssue.CreatedBy = user.ID; reportedIssue.ModifiedDate = DateTime.Now; reportedIssue.ModifiedBy = user.ID; db.SellerNotesReportedIssues.Add(reportedIssue); db.SaveChanges(); //Send Mail to Admin to Check Note var body = "<p>Hello Admins,</p><br>" + "<p>We want to inform you that, {0} Reported an issue for {1}’s Note with title {2}. Please look at the notes and take required actions. </p><br><br>" + "<p>Regards,</p>" + "<p>Note MarketPlace</p>"; var message = new MailMessage(); message.To.Add(new MailAddress("*****@*****.**")); // Reciever message.From = new MailAddress("**[email protected]"); // Sender message.Subject = user.FirstName + " " + user.LastName + " " + "Reported an issue for " + download.NoteTitle; message.Body = string.Format(body, user.FirstName + " " + user.LastName, seller.FirstName + " " + seller.LastName, download.NoteTitle); message.IsBodyHtml = true; using (var smtp = new SmtpClient()) { var credential = new NetworkCredential { UserName = "******", Password = "******" }; smtp.Credentials = credential; smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; smtp.Send(message); } return(RedirectToAction("Index", "MyDownload")); }