public async Task <IActionResult> set(CatCritViewModel model) //Настройка важности критериев для каждой категории { int count = 0; foreach (int item in model.critid) //для каждого задействованного критерия { CatCrit check = _context.CatCrits.SingleOrDefault(p => ((p.CategoryId == model.catid) && (p.CriterionId == item))); //проверяем, задавалась ли важность ранее if (check != null) //если да, то есть запись о приоритете данного критерия для данной категории существует { check.prio = model.prio[count]; //обновляем эту запись _context.CatCrits.Update(check); //обновляем БД await _context.SaveChangesAsync(); } else //если приоритет настраивается впервые { CatCrit catcrit = new CatCrit(); //создаётся новая запись catcrit.CategoryId = model.catid; //в неё помещаются данные из модели catcrit.CriterionId = item; catcrit.prio = model.prio[count]; _context.CatCrits.Add(catcrit); //обавляем запись в БД await _context.SaveChangesAsync(); } count++; } return(RedirectToAction("Index")); }
public IActionResult set(int id) //Настройка важности критериев для каждой категории { CatCritViewModel model = new CatCritViewModel(); model.category = _context.Categories.SingleOrDefault(p => p.CategoryId == id); //выбор нужной категории model.crits = _context.Criteria; //выбор всех критериев model.prio = new Priority[_context.Criteria.Count()]; //сейчас не используется из-за проблем с потоками БД //int count = 0; //foreach (Criterion item in model.crits) //{ // CatCrit check = _context.CatCrits.SingleOrDefault(p => ((p.CategoryId == id) && (p.CriterionId == item.CriterionId))); // if (check != null) // { // model.prio[count] = check.prio; // } // count++; //} return(View(model)); }