public ActionResult UserAgreement(UserAgreementAudit model) { ModelState.Clear(); if (ModelState.IsValid) { using (var db = new ccEntities()) { var user = db.Users.SingleOrDefault(f => f.UniqueId == model.User.UniqueId); model.Date = DateTime.Now; model.User = user; model.IP = Request.ServerVariables["X_FORWARDED_FOR"] ?? Request.UserHostAddress; db.UserAgreementAudits.AddObject(model); db.SaveChanges(); FormsAuthentication.RedirectFromLoginPage(user.UserName, false); return(null); } } return(View(model)); }
public ActionResult UserAgreement(Guid id) { using (var context = new ccEntities()) { var lastAgreement = context.UserAgreements.OrderByDescending(f => f.Date).FirstOrDefault(); if (lastAgreement == null) { throw new InvalidOperationException("Agreement not exists"); } else { var user = context.Users.SingleOrDefault(f => f.UniqueId == id); if (user == null) { throw new InvalidOperationException("User not found"); } else { var existing = context.UserAgreementAudits.SingleOrDefault(f => f.UserAgreementId == lastAgreement.Id && f.User.UniqueId == id); if (existing == null) { var model = new UserAgreementAudit() { User = user, UserAgreement = lastAgreement }; return(View(model)); } else { //user had already cofirmed the agreement //inform him in any way? return(Redirect("~/")); } } } } }