public void AddEditTeam(TeamViewModel model) { try { var teamEntity = TeamMapper.ToTeamEntity(model); if (model.TeamId == 0) // ADD MEMBER { _dbContext.Team.Add(teamEntity); _dbContext.SaveChanges(); } else // EDIT MEMBER { var teamResult = this._dbContext.Team.Include("TeamMembers").FirstOrDefault(w => w.TeamId == model.TeamId); teamResult.TeamName = model.Name; teamResult.Description = model.Description; foreach (var dbMmeber in teamResult.TeamMembers.ToList()) { var member2Update = model.TeamMembers.FirstOrDefault(w => w.TeamMemberId == dbMmeber.TeamMemberId); if (member2Update == null) { _dbContext.TeamMember.Remove(dbMmeber); //Deleted from UI } else //update member { dbMmeber.Gender = member2Update.Gender; dbMmeber.ContactNumber = member2Update.ContactNumber; dbMmeber.DOB = member2Update.DOB; dbMmeber.Name = member2Update.Name; } } //new item foreach (var dbMmeber in model.TeamMembers.Where(w => w.TeamMemberId == null).ToList()) { var teamMeber = TeamMapper.ToTeamMemberEntity(dbMmeber, model.TeamId); _dbContext.TeamMember.Add(teamMeber); } _dbContext.SaveChanges(); } } catch (System.Exception) { throw; } }