public ActionResult AddProject(int? id)
        {
            ProjectViewModel pro = new ProjectViewModel();
            if (id != null)
            {
                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    pro = db.Projects.Where(p => p.ProjectId == id)
                        .Select(x => new ProjectViewModel
                        {
                            ID = x.ProjectId,
                            Name = x.Name,
                            IsBaseLine = x.IsBaseLine,
                            StartDate = x.StartDate,
                            FinishDate = x.FinishDate,
                            Notes = x.Notes
                        }).FirstOrDefault();
                }
            }

            return View(pro);
        }
 public int AddProject(ProjectViewModel project, string userId)
 {
     Project p = new Project();
     using (ApplicationDbContext db = new ApplicationDbContext())
     {
         if (project.ID == null)
         {
             p = new Project()
             {
                 Name = project.Name,
                 IsBaseLine = project.IsBaseLine,
                 Notes = project.Notes,
                 StartDate = project.StartDate,
                 FinishDate = project.FinishDate,
                 DateUpdated = DateTime.Now,
                 UserId = userId
             };
             db.Projects.Add(p);
         }
         else
         {
             p = db.Projects.Where(x => x.ProjectId == project.ID && x.UserId == userId).FirstOrDefault();
             if (p != null)
             {
                 p.Name = project.Name;
                 p.IsBaseLine = project.IsBaseLine;
                 p.Notes = project.Notes;
                 p.StartDate = project.StartDate;
                 p.FinishDate = project.FinishDate;
                 p.DateUpdated = DateTime.Now;
             }
         }
         db.SaveChanges();
         db.Entry(p).GetDatabaseValues();
     }
     return p.ProjectId;
 }
        public ActionResult AddProject(ProjectViewModel project)
        {
            int projectId = 0;
            try
            {
                if (!ModelState.IsValid)
                {
                    foreach (ModelState modelState in ViewData.ModelState.Values)
                    {
                        foreach (ModelError error in modelState.Errors)
                        {
                            TempData["Model Error"] += "<p style='color:lightblue;'>" + modelState.Value + ": " + error.ErrorMessage + "</p>";
                        }
                    }
                    return View();
                }

                projectId = _adapter.AddProject(project, UserId);

            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        TempData["Exception"] += string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
                return RedirectToAction("Index");
            }

            return RedirectToAction("ProjectDetails", new { id = projectId });
        }