public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(await OnGetAsync()); } Service.Active = true; foreach (var item in ServiceJobTitles.Where(r => r.IsSelected == true)) { ServiceJobTitle serviceJobTitle = new ServiceJobTitle(); serviceJobTitle.Service = Service; serviceJobTitle.JobTitleId = item.ServiceJobId; Service.ServiceJobTitle.Add(serviceJobTitle); } _context.Services.Add(Service); await _context.SaveChangesAsync(); return(RedirectToPage("./AddServices")); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { ViewData["ServiceCategoryId"] = new SelectList(_context.ServiceCategory, "Id", "Name"); List <SelectListItem> TimeInMinutes = new List <SelectListItem>(); for (int i = 15; i <= 240; i += 15) { TimeInMinutes.Add(new SelectListItem { Value = i.ToString(), Text = i.ToString() }); } ViewData["Times"] = new SelectList(TimeInMinutes.Select(r => new { Id = r.Value, r.Value }), "Id", "Value"); return(Page()); } var belongsToJobTitles = await _context.ServiceJobTitles.Where(r => r.ServiceId == Service.Id).Select(r => r.JobTitleId).ToListAsync(); foreach (var item in ServiceJobTitles) { ServiceJobTitle serviceJobTitle = new ServiceJobTitle(); if (item.IsSelected) { if (belongsToJobTitles.Contains(item.ServiceJobId)) { //the item was already there } else { serviceJobTitle.Service = Service; serviceJobTitle.JobTitleId = item.ServiceJobId; Service.ServiceJobTitle.Add(serviceJobTitle); } } else if (!item.IsSelected) { if (belongsToJobTitles.Contains(item.ServiceJobId)) { serviceJobTitle = await _context.ServiceJobTitles.Where(r => r.ServiceId == Service.Id && r.JobTitleId == item.ServiceJobId).FirstOrDefaultAsync(); if (serviceJobTitle != null) { _context.ServiceJobTitles.Remove(serviceJobTitle); } } else { //item wasn't there } } } _context.Attach(Service).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ServiceExists(Service.Id)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./AddServices")); }