private FilterViewModel ExtractSkills(BllFilter filter) { int id = filter != null ? filter.Id : 0; var allSkills = skillService.GetAll().Select(x => x.ToMvc()).ToList(); if (filter != null && filter.Skills != null) { foreach (var skill in filter.Skills) { UserSkillViewModel fsvm = allSkills.First(x => x.Skill.Id == skill.Key.Id); fsvm.Level = skill.Value; } } FilterViewModel filterViewModel = new FilterViewModel { Id = id, Skills = allSkills }; return(filterViewModel); }
public async Task <IActionResult> CreateAsync(UserViewModel userVM) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // email validation var is_email_exist = _context.Users.Any(u => u.Email == userVM.Email); if (is_email_exist) { return(StatusCode(409)); } userVM.SubmittedDate = DateTime.Now.AddHours(8); var user = _map.Map <User>(userVM); _context.Add(user); _context.SaveChanges(); // save skill if (userVM.Skills != null) { string[] skillId = null; skillId = userVM.Skills.Split(","); for (int i = 0; i < skillId.Length; i++) { UserSkillViewModel userskillVM = new UserSkillViewModel { UserId = user.UserId, SkillId = int.Parse(skillId[i]) }; _context.Add(_map.Map <UserSkills>(userskillVM)); } _context.SaveChanges(); } // will create folder where it stored the uploaded file. if (userVM.Filename == null || userVM.Filename.Length == 0) { return(Content("file not selected")); } var path = Path.Combine("C:\\UploadFiles", user.UserId.ToString(), userVM.Filename.FileName); Directory.CreateDirectory(Path.GetDirectoryName(path)); using (var stream = new FileStream(path, FileMode.Create)) { userVM.Filename.CopyTo(stream); } var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); // email the user_config.GetSection("AppSettings:Token").Value await _send.SendEmailAsync(userVM.FirstName, _configuration.GetSection("AdminEmailCredentials:SenderEmail").Value, userVM.Email, "Thank you for submitting your profile to Dev Partners. We will review your CV and contact you for current openings.", "Application received."); // email the admin await _send.SendEmailAsync("Admin", _configuration.GetSection("AdminEmailCredentials:SenderEmail").Value, _configuration["AdminEmailCredentials:ReceiverEmail"], "A new CV/profile has been uploaded to the Pooling System on " + userVM.SubmittedDate, "New application received on the Pooling System."); return(StatusCode(201)); } catch (Exception ex) { return(BadRequest(ex)); } }