public void InsertOrUpdate(User user)
 {
     if (user.Id == default(int)) {
         // New entity
         context.Users.Add(user);
     } else {
         // Existing entity
         context.Entry(user).State = EntityState.Modified;
     }
 }
 public ActionResult Edit(User user)
 {
     if (ModelState.IsValid)
     {
         context.Entry(user).State = EntityState.Modified;
         context.SaveChanges();
         return RedirectToAction("Index");
     }
     ViewBag.PossibleAnswers = context.Answers;
     return View(user);
 }
        public ActionResult Create(User user)
        {
            if (ModelState.IsValid)
            {
                context.Users.Add(user);
                context.SaveChanges();
                return RedirectToAction("Index");  
            }

            ViewBag.PossibleAnswers = context.Answers;
            return View(user);
        }
        public JsonResult SaveUser(int userId, string region, string browser, string browserVersion, string platform, int answerId)
        {
            string clientIP = HttpContext.Request.UserHostAddress.ToString();
             User user;

            if (userId > 0)
                user = context.Users.Single(u => u.Id == userId);
            else
                user = new User();

            if (userId > 0)
                user.Id = userId;
            
            if (!String.IsNullOrEmpty(region))
                user.Region = region;
            
            if (!String.IsNullOrEmpty(browser))
                user.Browser = browser;
            
            if (!String.IsNullOrEmpty(browserVersion))
                user.BrowserVersion = browserVersion;
            
            if (!String.IsNullOrEmpty(platform))
                user.Platform = platform;
            
            if (!String.IsNullOrEmpty(clientIP))
                user.IPAddress = clientIP;
            
            if (answerId > 0)
                user.AnswerId = answerId;
            
            if (userId > 0)
                context.Entry(user).State = EntityState.Modified;
            else
                context.Users.Add(user);

            user.Id = context.SaveChanges();

            return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = user };
        }