public IActionResult Edit(int id)
        {
            var addVm = new CreateProjectVM { Id = id };
            var p = _projectManager.GetProject(id);
            addVm.Name = p.Name;

            return PartialView("Partial/Add", addVm);
        }
        public void Save(CreateProjectVM model)
        {
            model.CreatedById = userSessionHelper.UserId;
            model.TeamId = userSessionHelper.TeamId;
            this.projectRepository.Save(model);

            // Clear the cache so that new data will be read and stored to cache when needed
            cache.Clear(CacheKey.GetKey(CacheKey.Projects, userSessionHelper.TeamId));

        }
        public ActionResult Add(CreateProjectVM model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Project project = new Project { ID = model.ID };

                    project = repo.GetProject(model.Name, UserID);
                    if ((project != null) && (project.ID != model.ID))
                        return Json(new { Status = "Error", Message = "Project name exists" });

                    if (project == null)
                    {
                        if (model.ID > 0)
                            project = repo.GetProject(model.ID);
                        else
                            project = new Project();

                        project.TeamID = TeamID;
                        project.CreatedByID = UserID;
                    }
                    project.Name=model.Name;

                    var res = repo.SaveProject(project);
                    if (res != null)
                    {
                        var teamMember = repo.GetTeamMember(UserID, TeamID);
                        if (teamMember != null && !teamMember.DefaultProjectID.HasValue)
                        {
                            var defProjRes = userService.SaveDefaultProjectForTeam(UserID, TeamID, project.ID);
                        }
                        return Json(new { Status = "Success", Message = "Project created successfully" });
                    }
                }
                return Json(new { Status = "Error", Message = "Required fields are missing" });
            }
            catch (Exception ex)
            {
                log.Error(ex);
                return Json(new { Status = "Error", Message = "Error in saving project" });
            }
        }
        public IActionResult Add(CreateProjectVM model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    _projectManager.Save(model);
                    return Json(new { Status = "Success", Message = "Project created successfully" });

                }
                else
                {
                    var errorMessages = ViewData.ModelState.Values.SelectMany(s => s.Errors.Select(x => x.ErrorMessage));
                    return Json(new { Status = "Error", Errors = errorMessages });
                }
            }
            catch (Exception ex)
            {
                return Json(new { Status = "Error", Errors = new List<string> { "Error in saving project" } });
            }
        }
 public ActionResult Add()
 {
     var vm = new CreateProjectVM ();
     return PartialView("Partial/Add",vm);
 }
 public ActionResult Edit(int id)
 {
     try
     {
         var project = repo.GetProject(id, TeamID);
         if (project != null)
         {
             var vm = new CreateProjectVM { ID = id, Name = project.Name };
             return PartialView("Partial/Add", vm);
         }
         return View("NotFound");
     }
     catch (Exception ex)
     {
         log.Error("id : "+id,ex);
         return View("Error");
     }
 }
 public IActionResult Add()
 {
     var addVm = new CreateProjectVM();
     return PartialView("Partial/Add", addVm);
 }
        private void SetAsDefaultProjectIfNotExists(CreateProjectVM model)
        {
            using (var con = new SqlConnection(ConnectionString))
            {
                con.Open();

                var defaultProjectId = con.Query<int?>("SELECT TOP 1 DefaultProjectId from TEAMMEMBER WHERE TeamId = @teamId and MemberId = @userId", new { @teamId = model.TeamId, @userId = model.CreatedById });
                if (defaultProjectId.Any() == false || defaultProjectId.First() == null)
                {
                    con.Query<int>(" UPDATE TEAMMEMBER SET DEFAULTPROJECTID=@projectId WHERE TEAMID=@teamId AND MEMBERID=@userId",
                                      new
                                      {
                                          @projectId = model.Id,
                                          @teamId = model.TeamId,
                                          @userId = model.CreatedById
                                      });
                }
            }

        }
        public void Save(CreateProjectVM model)
        {
            using (var con = new SqlConnection(ConnectionString))
            {
                con.Open();
                if (model.Id == 0)
                {
                    var p = con.Query<int>("INSERT INTO Project(Name,TeamId,CreatedDate,CreatedByID) VALUES (@name,@teamId,@dt,@createdById);SELECT CAST(SCOPE_IDENTITY() as int)",
                                            new { @name = model.Name, @teamId = model.TeamId, @dt = DateTime.Now, @createdById = model.CreatedById });
                    model.Id = p.First();
                }
                else
                {
                    con.Query<int>("UPDATE Project SET Name=@name WHERE Id=@id", new { @name = model.Name, @id = model.Id });

                }

                SetAsDefaultProjectIfNotExists(model);
            }
        }