public async Task <IActionResult> Create([Bind("Id,NameRus,NameKyrg,DictCountryId,Years,DictCinemaRegiserId,DictCinemaDurationId,DictCinemaAgeRestrictionsId,RegistrationDate,CreateDate,ApplicationUserId,CountriesRegisersJson")] ListOfCinematographyCertificates listOfCinematographyCertificates, string CountriesRegisersJson) { if (ModelState.IsValid) { _context.Add(listOfCinematographyCertificates); await _context.SaveChangesAsync(); JsonData jsonData = JsonConvert.DeserializeObject <JsonData>(CountriesRegisersJson); // страны foreach (int CountryId in jsonData.countries) { CinemaCountries cinemaC = new CinemaCountries { DictCountryId = CountryId, ListOfCinematographyCertificatesId = listOfCinematographyCertificates.Id }; _context.Add(cinemaC); await _context.SaveChangesAsync(); } // режиссеры foreach (int RegiserId in jsonData.regisers) { CinemaRegisers cinemaR = new CinemaRegisers { DictCinemaRegiserId = RegiserId, ListOfCinematographyCertificatesId = listOfCinematographyCertificates.Id }; _context.Add(cinemaR); await _context.SaveChangesAsync(); } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["DictCinemaAgeRestrictionsId"] = new SelectList(_context.DictCinemaAgeRestrictions, "Id", "Name", listOfCinematographyCertificates.DictCinemaAgeRestrictionsId); ViewData["DictCountryId"] = new SelectList(_context.DictCountry, "Id", "Name"); ViewData["DictCinemaDurationId"] = new SelectList(_context.DictCinemaDuration, "Id", "Name", listOfCinematographyCertificates.DictCinemaDurationId); ViewData["DictCinemaRegiserId"] = new SelectList(_context.DictCinemaRegiser, "Id", "FullName"); return(View(listOfCinematographyCertificates)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,NameRus,NameKyrg,DictCountryId,Years,DictCinemaRegiserId,DictCinemaDurationId,DictCinemaAgeRestrictionsId,RegistrationDate,CreateDate,ApplicationUserId,CountriesRegisersJson")] ListOfCinematographyCertificates listOfCinematographyCertificates, string CountriesRegisersJson) { if (id != listOfCinematographyCertificates.Id) { return(NotFound()); } if (ModelState.IsValid) { try { string uid = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value; listOfCinematographyCertificates.ApplicationUserId = uid; _context.Update(listOfCinematographyCertificates); await _context.SaveChangesAsync(); // для начала удалить старые данные var listCinemaC = _context.CinemaCountries.Where(a => a.ListOfCinematographyCertificatesId == id).ToList(); foreach (var item in listCinemaC) { _context.CinemaCountries.Remove(item); await _context.SaveChangesAsync(); } var listCinemaR = _context.CinemaRegisers.Where(a => a.ListOfCinematographyCertificatesId == id).ToList(); foreach (var item in listCinemaR) { _context.CinemaRegisers.Remove(item); await _context.SaveChangesAsync(); } JsonData jsonData = JsonConvert.DeserializeObject <JsonData>(CountriesRegisersJson); // страны foreach (int CountryId in jsonData.countries) { CinemaCountries cinemaC = new CinemaCountries { DictCountryId = CountryId, ListOfCinematographyCertificatesId = listOfCinematographyCertificates.Id }; _context.Add(cinemaC); await _context.SaveChangesAsync(); } // режиссеры foreach (int RegiserId in jsonData.regisers) { CinemaRegisers cinemaR = new CinemaRegisers { DictCinemaRegiserId = RegiserId, ListOfCinematographyCertificatesId = listOfCinematographyCertificates.Id }; _context.Add(cinemaR); await _context.SaveChangesAsync(); } } catch (DbUpdateConcurrencyException) { if (!ListOfCinematographyCertificatesExists(listOfCinematographyCertificates.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } // страны listOfCinematographyCertificates.CinemaCountries = _context.CinemaCountries .Include(c => c.ListOfCinematographyCertificates) .Where(c => c.ListOfCinematographyCertificatesId == id) .Include(c => c.DictCountry) .ToList(); // режиссеры listOfCinematographyCertificates.CinemaRegisers = _context.CinemaRegisers .Include(c => c.ListOfCinematographyCertificates) .Where(c => c.ListOfCinematographyCertificatesId == id) .Include(c => c.DictCinemaRegiser) .ToList(); // selectsLists for Countries List <SelectList> cinemaCountries = new List <SelectList>(); foreach (var item in listOfCinematographyCertificates.CinemaCountries) { cinemaCountries.Add(new SelectList(_context.DictCountry, "Id", "Name", item.DictCountryId)); } // selecLists for Regisers List <SelectList> cinemaRegisers = new List <SelectList>(); foreach (var item in listOfCinematographyCertificates.CinemaRegisers) { cinemaRegisers.Add(new SelectList(_context.DictCinemaRegiser, "Id", "FullName", item.DictCinemaRegiserId)); } ViewData["CinemaCountriesIds"] = cinemaCountries; ViewData["CinemaRegisersIds"] = cinemaRegisers; ViewData["DictCinemaAgeRestrictionsId"] = new SelectList(_context.DictCinemaAgeRestrictions, "Id", "Name", listOfCinematographyCertificates.DictCinemaAgeRestrictionsId); ViewData["DictCountryId"] = new SelectList(_context.DictCountry, "Id", "Name"); ViewData["DictCinemaDurationId"] = new SelectList(_context.DictCinemaDuration, "Id", "Name", listOfCinematographyCertificates.DictCinemaDurationId); ViewData["DictCinemaRegiserId"] = new SelectList(_context.DictCinemaRegiser, "Id", "FullName"); return(View(listOfCinematographyCertificates)); }