public PicturesViewModel()
 {
     ProjectDetail = new ProjectDetailsViewModel();
     Education = new EducationViewModel();
     Experience = new ExperiencesViewModel();
     Skill = new SkillsViewModel();/**/
 }
 // GET: Experiences/Create
 public ActionResult Create()
 {
     var experience = new ExperiencesViewModel();
     experience.Skills = db.Skills.ToList();
     return View(experience);
 }
        private void addOrUpdateSkillWithObjects(ExperiencesViewModel experience, IEnumerable<string> listSkillOfExperiencesId, IEnumerable<string> isSkillSelected)
        {
            // Project Skills handling
            List<int> listAddedSkillsId = new List<int>();
            if (isSkillSelected != null)
            {
                int id;
                SkillsViewModel newSkill;
                for (int i = 0; i < isSkillSelected.Count(); i++)
                {
                    string isSelected = isSkillSelected.ElementAt(i).Split('-').ToList()[0];
                    string isSelectedId = isSkillSelected.ElementAt(i).Split('-').ToList()[1];
                    id = Int32.Parse(isSelectedId);
                    newSkill = db.Skills.Where(y => y.ID == id).Include("CategoryViewModel").Include("LevelsViewModel").Include(x => x.Projects).Include(x => x.Projects.Select(s => s.ProjectDetail)).Include(x => x.Experiences).DefaultIfEmpty().Single();
                    //var projectWithDetail = db.Projects.Where(p => p.Skills.Where(y => y.ID == newSkill.ID).Join(p.ProjectDetail)).Include(z=>z.);
                    
                    if (isSelected == "true")
                    {
                        experience.Skills.Add(newSkill);
                        listAddedSkillsId.Add(id);
                    }
                }
            }

            // removing uncheck Projects skills
            if (listSkillOfExperiencesId != null)
            {
                foreach (var skillIdString in listSkillOfExperiencesId)
                {
                    var skillId = Int32.Parse(skillIdString);
                    if ((listAddedSkillsId != null && !listAddedSkillsId.Contains(skillId)) || listAddedSkillsId == null)
                    {
                        var skillToRemove = db.Skills.Where(x => x.ID == skillId).Include("CategoryViewModel").Include("LevelsViewModel").First();
                        experience.Skills.Remove(skillToRemove);
                    }
                }
            }

        }