public ActionResult EditWebSite(int? webSiteId, string submitButton, WebSite webSite)
        {
            try
            {
                IUnitOfWorkFactory factory = new ScheduMail.UnitsOfWork.WebSiteUnitOfWorkFactory();
                IWebSiteUnitOfWork unitOfWork = factory.GetWebSiteUnitOfWork();

                SelectList list = this.CopyToSelectList(0, unitOfWork);
                ViewData["webSites"] = this.GetWebSiteList();

                switch (submitButton)
                {
                    case "Add New Web Site":
                        // reset so displays default value                        
                        return RedirectToAction("EditWebSite", new { WebSiteId = -1 });
                    case "Save":
                        unitOfWork.Save(webSite);
                        int? tempVal = null;
                        return RedirectToAction("EditWebSite", new { WebSiteId = tempVal });
                    case "Delete":
                        webSite = unitOfWork.GetById(webSiteId.Value);
                        unitOfWork.Delete(webSite);
                        tempVal = null;
                        return RedirectToAction("EditWebSite", new { WebSiteId = tempVal });
                    default: // Change of drop down list ...                                           
                        return RedirectToAction("EditWebSite", new { WebSiteId = webSiteId });
                }
            }
            catch (RuleException ex)
            {
                ViewData["webSites"] = this.GetWebSiteList();
                ex.CopyToModelState(ModelState);
                return View();
            }
        }
        public void EFWEBRepository_UpdateTest()
        {
            WebSite webSite = new WebSite
            {
                Id = 3,
                SiteName = "wwww.google.com",
                Template = "<Hello World>",
                Created = DateTime.Now,
                CreatedBy = "James Galway",
                Modified = DateTime.Now,
                ModifiedBy = "John Coxhead"
            };

            WebSite newSite = this.repository.Save(webSite);
            Assert.AreEqual(webSite.Created, newSite.Created);
            Assert.AreEqual(webSite.CreatedBy, newSite.CreatedBy);
            Assert.AreEqual(webSite.Modified, newSite.Modified);
            Assert.AreEqual(webSite.ModifiedBy, newSite.ModifiedBy);
            Assert.AreEqual(webSite.SiteName, newSite.SiteName);
            Assert.AreEqual(webSite.Template, newSite.Template);
            Assert.Greater(newSite.Id, 0);
        }
        public ActionResult Edit(WebSite webSite)
        {
            try
            {
                IUnitOfWorkFactory factory = new ScheduMail.UnitsOfWork.WebSiteUnitOfWorkFactory();
                IWebSiteUnitOfWork unitOfWork = factory.GetWebSiteUnitOfWork();

                if (!ModelState.IsValid)
                {
                    return View();
                }

                unitOfWork.Save(webSite);
               
                return RedirectToAction("List");
            }
            catch
            {
                return View();
            }
        }