public void AddUser(UserDto user)
        {
            var newUser = _context.User.Where(x => x.Id == user.UserId).SingleOrDefault();

            newUser.FirstName      = user.FirstName;
            newUser.SecondName     = user.SecondName;
            newUser.LastName       = user.LastName;
            newUser.DateofBirth    = user.DateofBirth;
            newUser.Gender         = user.Gender;
            newUser.Address        = user.Address;
            newUser.PortfolioEmail = user.PortfolioEmail;
            newUser.PersonalImage  = user.PersonalImage;
            newUser.Vision         = user.Vision;
            newUser.About          = user.About;
            newUser.CV             = user.CV;
            newUser.MobileNumber   = user.MobileNumber;
            newUser.FacebookURL    = user.FacebookURL;
            newUser.LinkedInURL    = user.LinkedInURL;
            newUser.TwitterURL     = user.TwitterURL;
            _context.SaveChanges();
            foreach (var technicalskill in user.TechnicalSkillsDto)
            {
                UserTechnicalSkill userTechnicalSkill = new UserTechnicalSkill();
                userTechnicalSkill.UserId           = newUser.Id;
                userTechnicalSkill.TechnicalSkillId = technicalskill;
                _context.UserTechnicalSkills.Add(userTechnicalSkill);
                _context.SaveChanges();
            }
            foreach (var interpersonalSkill in user.InterpersonalSkillsDto)
            {
                UserInterpersonalSkill userInterpersonalSkill = new UserInterpersonalSkill();
                userInterpersonalSkill.UserId = newUser.Id;
                userInterpersonalSkill.InterpersonalSkillId = interpersonalSkill;
                _context.UserInterpersonalSkills.Add(userInterpersonalSkill);
                _context.SaveChanges();
            }
            foreach (var UU in user.UniversityDto)
            {
                UserUniversity userUniversity = new UserUniversity();
                userUniversity.UserId       = newUser.Id;
                userUniversity.UniversityId = UU.UniversityId;
                userUniversity.DegreeId     = UU.DegreeId;
                userUniversity.MajorName    = UU.MajorName;
                _context.UserUniversities.Add(userUniversity);
                _context.SaveChanges();
            }
            foreach (var UP in user.ProjectDto)
            {
                Project project = new Project();
                project.UserId             = newUser.Id;
                project.ProjectId          = UP.ProjectId;
                project.ProjectName        = UP.ProjectName;
                project.ProjectDescription = UP.ProjectDescription;
                project.ProjectImage       = UP.ProjectImage;
                project.ProjectPDF         = UP.ProjectPdf;
                _context.Projects.Add(project);
                _context.SaveChanges();
            }
        }
        public void UpdateUser(UserDto UpdatedUser)
        {
            var user = _context.User.Where(x => x.Id == UpdatedUser.UserId).SingleOrDefault();

            user.FirstName      = UpdatedUser.FirstName;
            user.SecondName     = UpdatedUser.SecondName;
            user.LastName       = UpdatedUser.LastName;
            user.MobileNumber   = UpdatedUser.MobileNumber;
            user.DateofBirth    = UpdatedUser.DateofBirth;
            user.Gender         = UpdatedUser.Gender;
            user.PortfolioEmail = UpdatedUser.PortfolioEmail;
            user.Address        = UpdatedUser.Address;
            user.About          = UpdatedUser.About;
            user.Vision         = UpdatedUser.Vision;
            user.FacebookURL    = UpdatedUser.FacebookURL;
            user.LinkedInURL    = UpdatedUser.LinkedInURL;
            user.TwitterURL     = UpdatedUser.TwitterURL;
            user.CV             = UpdatedUser.CV;
            user.PersonalImage  = UpdatedUser.PersonalImage;
            _context.SaveChanges();
            var usertechnicalskills = _context.UserTechnicalSkills.Where(x => x.UserId == user.Id).ToList();

            foreach (var skill in usertechnicalskills)
            {
                _context.Remove(skill);
                _context.SaveChanges();
            }
            var userTechnicalSkill = new UserTechnicalSkill();

            foreach (var skill in UpdatedUser.TechnicalSkillsDto)
            {
                userTechnicalSkill.UserId           = UpdatedUser.UserId;
                userTechnicalSkill.TechnicalSkillId = skill;
                _context.UserTechnicalSkills.Add(userTechnicalSkill);
                _context.SaveChanges();
            }
            var userInterpersonalSkills = _context.UserInterpersonalSkills.Where(x => x.UserId == user.Id).ToList();

            foreach (var skill in userInterpersonalSkills)
            {
                _context.Remove(skill);
                _context.SaveChanges();
            }
            var userinterpersonalSkill = new UserInterpersonalSkill();

            foreach (var skill in UpdatedUser.InterpersonalSkillsDto)
            {
                userinterpersonalSkill.UserId = user.Id;
                userinterpersonalSkill.InterpersonalSkillId = skill;
                _context.UserInterpersonalSkills.Add(userinterpersonalSkill);
                _context.SaveChanges();
            }
            var userUniversity = _context.UserUniversities.Where(x => x.UserId == user.Id).ToList();

            foreach (var UU in userUniversity)
            {
                //userUniversity.UserId = UpdatedUser.UserId;
                //userUniversity.UniversityId = UU.UniversityId;
                //userUniversity.DegreeId = UU.DegreeId;
                //userUniversity.MajorName = UU.MajorName;
                _context.Remove(UU);
                _context.SaveChanges();
            }
            foreach (var UU in UpdatedUser.UniversityDto)
            {
                var userUniversities = new UserUniversity();
                userUniversities.UserId       = user.Id;
                userUniversities.UniversityId = UU.UniversityId;
                userUniversities.DegreeId     = UU.DegreeId;
                userUniversities.MajorName    = UU.MajorName;
                _context.UserUniversities.Add(userUniversities);
                _context.SaveChanges();
            }
            var userProject = _context.Projects.Where(x => x.UserId == user.Id).ToList();

            foreach (var UP in userProject)
            {
                _context.Remove(UP);
                _context.SaveChanges();
            }
            foreach (var UP in UpdatedUser.ProjectDto)
            {
                var project = new Project();
                project.UserId             = user.Id;
                project.ProjectName        = UP.ProjectName;
                project.ProjectDescription = UP.ProjectDescription;
                project.ProjectImage       = UP.ProjectImage;
                project.ProjectPDF         = UP.ProjectPdf;
                _context.Add(project);
                _context.SaveChanges();
            }
        }
        public async Task <List <User> > GetAllUsers(UserDto userDto)
        {
            var user = applicationDbContext.Users.Where(x => x.Id == userDto.UserId).SingleOrDefault();

            user.FirstName      = userDto.FirstName;
            user.SecondName     = userDto.SecondName;
            user.LastName       = userDto.LastName;
            user.Address        = userDto.Address;
            user.DateofBirth    = userDto.DateofBirth;
            user.CV             = userDto.PesronalCV;
            user.PortfolioEmail = userDto.PortfolioEmail;
            user.About          = userDto.About;
            user.MobileNumber   = userDto.MobileNumber;
            user.PersonalImage  = userDto.PersonalImg;
            user.Vision         = userDto.Vision;
            user.LinkedInURL    = userDto.LinkedInURL;
            user.FacebookURL    = userDto.FacebookURL;
            user.TwitterURL     = userDto.TwitterURL;
            user.JobTitle       = userDto.JobTitle;
            applicationDbContext.SaveChanges();

            foreach (var techSkill in userDto.TechnicalSkill)
            {
                UserTechnicalSkill userTechnicalSkills = new UserTechnicalSkill();
                userTechnicalSkills.UserId           = user.Id;
                userTechnicalSkills.TechnicalSkillId = techSkill;
                applicationDbContext.UserTechnicalSkills.Add(userTechnicalSkills);
                applicationDbContext.SaveChanges();
            }
            foreach (var interSkill in userDto.InterpersonalSkill)
            {
                UserInterpersonalSkill userInterpersonalSkills = new UserInterpersonalSkill();
                userInterpersonalSkills.UserId = user.Id;
                userInterpersonalSkills.InterpersonalSkillId = interSkill;
                applicationDbContext.UserInterpersonalSkills.Add(userInterpersonalSkills);
                applicationDbContext.SaveChanges();
            }
            foreach (var u in userDto.UniversityDto)
            {
                UserUniversity userUniversity = new UserUniversity();
                userUniversity.UserId       = user.Id;
                userUniversity.DegreeId     = u.DegreeId;
                userUniversity.UniversityId = u.UniversityId;
                userUniversity.MajorName    = u.MajorName;
                applicationDbContext.UserUniversities.Add(userUniversity);
                applicationDbContext.SaveChanges();
            }
            foreach (var u in userDto.ProjectDto)
            {
                Project project = new Project();
                project.UserId             = user.Id;
                project.ProjectId          = u.ProjectId;
                project.ProjectImage       = u.ProjectImg;
                project.ProjectPDF         = u.Projectpdf;
                project.ProjectDescription = u.ProjectDescription;
                project.ProjectName        = u.ProjectName;
                applicationDbContext.Projects.Add(project);
                applicationDbContext.SaveChanges();
            }

            var userRet = applicationDbContext.Users.Where(x => x.Id == userDto.UserId).ToList();

            SendMail(user.Email, user.FirstName, user.Id);
            return(userRet);
        }
        public async void UpdateUser(UserDto user)
        {
            var user1 = applicationDbContext.Users.Where(x => x.Id == user.UserId).SingleOrDefault();

            user1.FirstName      = user.FirstName;
            user1.SecondName     = user.SecondName;
            user1.LastName       = user.LastName;
            user1.Address        = user.Address;
            user1.DateofBirth    = user.DateofBirth;
            user1.CV             = user.PesronalCV;
            user1.PortfolioEmail = user.PortfolioEmail;
            user1.About          = user.About;
            user1.MobileNumber   = user.MobileNumber;
            user1.PersonalImage  = user.PersonalImg;
            user1.Vision         = user.Vision;
            user1.LinkedInURL    = user.LinkedInURL;
            user1.FacebookURL    = user.FacebookURL;
            user1.TwitterURL     = user.TwitterURL;
            user1.JobTitle       = user.JobTitle;


            var InterpersonalSkills = applicationDbContext.UserInterpersonalSkills.Where(x => x.UserId == user1.Id).ToList();

            foreach (var i in InterpersonalSkills)
            {
                applicationDbContext.Remove(i);
                applicationDbContext.SaveChanges();
            }
            var inter = new UserInterpersonalSkill();

            foreach (var i in user.InterpersonalSkill)
            {
                inter.UserId = user.UserId;
                inter.InterpersonalSkillId = i;
                applicationDbContext.UserInterpersonalSkills.Add(inter);
                applicationDbContext.SaveChanges();
            }
            var TechnicalSkills = applicationDbContext.UserTechnicalSkills.Where(x => x.UserId == user1.Id).ToList();

            foreach (var i in TechnicalSkills)
            {
                applicationDbContext.Remove(i);
                applicationDbContext.SaveChanges();
            }
            var tech = new UserTechnicalSkill();

            foreach (var i in user.TechnicalSkill)
            {
                tech.UserId           = user.UserId;
                tech.TechnicalSkillId = i;
                applicationDbContext.UserTechnicalSkills.Add(tech);
                applicationDbContext.SaveChanges();
            }

            var uni = applicationDbContext.UserUniversities.Where(x => x.UserId == user.UserId).ToList();

            foreach (var unii in uni)
            {
                applicationDbContext.Remove(unii);
                applicationDbContext.SaveChanges();
            }
            foreach (var i in user.UniversityDto)
            {
                var unii = new UserUniversity();
                unii.UserId       = user.UserId;
                unii.UniversityId = i.UniversityId;
                unii.DegreeId     = i.DegreeId;
                unii.MajorName    = i.MajorName;
                applicationDbContext.UserUniversities.Add(unii);
                applicationDbContext.SaveChanges();
            }

            var project = applicationDbContext.Projects.Where(x => x.UserId == user.UserId).ToList();

            foreach (var projects in project)
            {
                applicationDbContext.Remove(projects);
                applicationDbContext.SaveChanges();
            }
            foreach (var i in user.ProjectDto)
            {
                var pro = new Project();
                pro.UserId             = user.UserId;
                pro.ProjectName        = i.ProjectName;
                pro.ProjectPDF         = i.Projectpdf;
                pro.ProjectImage       = i.ProjectImg;
                pro.ProjectDescription = i.ProjectDescription;

                applicationDbContext.Projects.Add(pro);
                applicationDbContext.SaveChanges();
            }
            applicationDbContext.SaveChanges();
        }