public ActionResult Create()
        {
            CertificationModel model = new CertificationModel();
              IList<SelectListItem> DiveAgencyListItems = BuildList(null);
              model.DiveAgencyListItems = DiveAgencyListItems;
              model.DiveAgencyListItems = DiveAgencyListItems.OrderBy(m => m.Text).ToList(); //this works too as opposed to the following 2 lines
              var sortedList = from row in DiveAgencyListItems orderby row.Text select row;
              model.DiveAgencyListItems = sortedList.ToList();

             return View(model);
        }
        public ActionResult Create(CertificationModel certificationModel)
        {
            user = userServices.FindUser(this.User.Identity.Name);

              if (ModelState.IsValid) {
            Certification certification = new Certification();
            certification.User = user;
            certification.Title = certificationModel.Title;
            certification.Notes = certificationModel.Notes;
            certification.DiveAgency = diveAgencyServices.GetDiveAgency(certificationModel.DiveAgencyId);
            certification.Created = DateTime.Now;
            certification.LastModified = DateTime.Now;
            certificationServices.Save(certification);

            TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] = "The certification was successfully created.";
            return RedirectToAction("Index");
              }
              certificationModel.DiveAgencyListItems = BuildList(null);
              return View(certificationModel);
        }
        public ActionResult Edit(CertificationModel certificationModel)
        {
            certificationModel.DiveAgencyListItems = BuildList(certificationModel.DiveAgencyId);
              Certification certificationToUpdate = certificationServices.Get(certificationModel.Id);
              //certificationModel.User = certificationToUpdate.User;
              TransferFormValuesTo(certificationToUpdate, certificationModel);
              certificationToUpdate.DiveAgency = diveAgencyServices.GetDiveAgency(certificationModel.DiveAgencyId);

              if (ModelState.IsValid) {
            certificationServices.Save(certificationToUpdate);
            TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] =
               "The certifiation was successfully updated.";
            return RedirectToAction("Index");
              }
              else {
            return View(certificationModel);
              }
        }
 private void TransferFormValuesTo(Certification certificationToUpdate, CertificationModel certificationFromForm)
 {
     certificationToUpdate.Title = certificationFromForm.Title;
       certificationToUpdate.Notes = certificationFromForm.Notes;
       certificationToUpdate.LastModified = System.DateTime.Now;
 }
        public ActionResult Edit(int id)
        {
            CertificationModel viewModel = new CertificationModel();
              Certification certification = certificationServices.Get(id);
              viewModel.Id = id;
              viewModel.DiveAgencyListItems = BuildList(certification.DiveAgency.Id);
              viewModel.Title = certification.Title;
              viewModel.Notes = certification.Notes;

              return View(viewModel);
        }