public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } Employee = await _context.Empployees.FindAsync(id); if (Employee != null) { _context.Empployees.Remove(Employee); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } IList <Employeeskill> Employeeskills = new List <Employeeskill>(); foreach (SelectListItem skill in SkillList) { if (skill.Selected) { Employeeskills.Add(new Employeeskill { SkillId = Convert.ToInt32(skill.Value) }); } } //checking if a new skills was added or not if (!string.IsNullOrEmpty(NewSkill)) { //when a new skill is added, create a new skill instance and assign it to and EmployeeSkill entity. //It is then assigned to a collection of Employeeskills Skill skill = new Skill { SkillName = NewSkill }; Employeeskill employeeskill = new Employeeskill { Skills = skill }; Employeeskills.Add(employeeskill); } //The collection of Employeeskills is assigned to the Employee entity and saved to the database Employee.Employeeskills = Employeeskills; _context.Empployees.Add(Employee); await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); }
// To protect from overposting attacks, enable the specific properties you want to bind to. // For more details, see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } Employee EmployeeFromDB = await _context.Empployees. Include(m => m.Employeeskills).FirstOrDefaultAsync(m => m.Id == Employee.Id); IList <Employeeskill> Employeeskills = new List <Employeeskill>(); //variable to hold removed skills IList <Employeeskill> SkillsToRemove = new List <Employeeskill>(); //variable to hold newly added skills IList <Employeeskill> SkillsToAdd = new List <Employeeskill>(); foreach (SelectListItem skill in SkillList) { if (skill.Selected) { // Add all the selected skills to Employeeskills collection. Employeeskills.Add(new Employeeskill { EmployeeId = Employee.Id, SkillId = Convert.ToInt32(skill.Value) }); //if a new skill is assigned to the employee it is added //to the SkillsToAdd collection Employeeskill selectedSkill = EmployeeFromDB.Employeeskills. Where(m => m.SkillId == Convert.ToInt32(skill.Value)).FirstOrDefault(); if (selectedSkill == null) { SkillsToAdd.Add(new Employeeskill { EmployeeId = Employee.Id, SkillId = Convert.ToInt32(skill.Value) }); } } } //If a skill is not in the edited skill list, but present //in the skill list from the DB, it is added to // the SkillsToRemove collection. foreach (Employeeskill employeeskill in EmployeeFromDB.Employeeskills) { if (Employeeskills.Any(e => e.EmployeeId == employeeskill.EmployeeId && e.SkillId == employeeskill.SkillId) == false) { SkillsToRemove.Add(employeeskill); } } //Section which assigns the modified values //to the employee entity from the database EmployeeFromDB.FirstName = Employee.FirstName; EmployeeFromDB.LastName = Employee.LastName; //Delete the skills which are to be removed _context.RemoveRange(SkillsToRemove); //Adding newly assigned skills foreach (var empSKill in SkillsToAdd) { EmployeeFromDB.Employeeskills.Add(empSKill); } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EmployeeExists(Employee.Id)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Index")); }