using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Security.Principal; using System.Web; using System.Web.Mvc; using System.Web.Security; using System.Web.UI; using NHibernate; using NHibernate.Linq; using Sleis.Models; using Sleis.Infrastructure; using log4net; using Sleis.Utility; namespace Sleis.Controllers { public class FeedbackController : BaseController { public EmailUtility EmailUtility { get; set; } public string FeedbackMessageKey { get; set; } public string FeedbackToAddress { get; set; } public string ConfirmationMessage { get; set; } public override void Init() { base.Init(); ArgumentValidationUtility.ThrowOnNull(EmailUtility, "EmailUtility"); ArgumentValidationUtility.ThrowOnEmpty(FeedbackMessageKey, "FeedbackMessageKey"); ArgumentValidationUtility.ThrowOnEmpty(FeedbackToAddress, "FeedbackToAddress"); ArgumentValidationUtility.ThrowOnEmpty(ConfirmationMessage, "ConfirmationMessage"); } public ActionResult SendFeedback() { return View(); } [HttpPost] public ActionResult SendFeedback(SimpleEmailMessage Message) { ActionResult resultView = View(Message); if (ModelState.IsValid) { Message.Agent = Request.UserAgent; Message.From = Request.UserHostAddress; try { EmailUtility.SendObject(FeedbackToAddress, FeedbackMessageKey, Message); TempData[Constants.GlobalMessageKey] = new SimpleMessage(ConfirmationMessage); resultView = RedirectToAction("Home", "Public"); } catch (Exception err) { TempData[Constants.GlobalMessageKey] = new SimpleMessage("Error while sending message: " + err.Message, true); } } return resultView; } } }