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("~/"));
                        }
                    }
                }
            }
        }