public virtual ActionResult Edit(string id)
        {
            var model = SurveyEditModel.FromDomain(Surveys.Get(id), Accounting);

            ViewData["groups"] = GroupSummaries;
            ViewData["users"]  = UserSummaries[model.Availability.Users ?? new string[0]];
            return(View(model));
        }
		public static SurveyEditModel FromDomain(Survey s, IAccountingService accounting)
		{
			var x = new SurveyEditModel {
                Points = s.Points,
                Questions = s.Questions,
                MaxTimes = s.MaxTimes,
			};
            x.Init(s, accounting);
            return x;
		}
        public static SurveyEditModel FromDomain(Survey s, IAccountingService accounting)
        {
            var x = new SurveyEditModel {
                Points    = s.Points,
                Questions = s.Questions,
                MaxTimes  = s.MaxTimes,
            };

            x.Init(s, accounting);
            return(x);
        }
        public virtual ActionResult Edit(string id, SurveyEditModel s)
        {
            var x = Surveys.Get(id);

            if (!ModelState.IsValid)
            {
                return(View(s));
            }
            try
            {
                s.Apply(x, Accounting);
                Surveys.Save(x);
                return(this.RedirectToAction(c => c.Index()));
            }
            catch (Exception ex)
            {
                ViewData["groups"] = GroupSummaries;
                ViewData["users"]  = UserSummaries[s.Availability.Users ?? new string[0]];
                Notifier.Notify(ex);
                return(View(s));
            }
        }
        public virtual ActionResult Edit(string id, SurveyEditModel s)
        {
			var x = Surveys.Get(id);
			if (!ModelState.IsValid)
			{
				return View(s);
			}
            try
            {
                s.Apply(x, Accounting);
				Surveys.Save(x);
                return this.RedirectToAction(c => c.Index());
            }
            catch (Exception ex)
            {
                ViewData["groups"] = GroupSummaries;
                ViewData["users"] = UserSummaries[s.Availability.Users ?? new string[0]];
				Notifier.Notify(ex);
                return View(s);
            }
        }