public async Task <IActionResult> Create([Bind("FirstPartId", "SecondPartId")] TwoPartCompatibilities twoPartCompatibilities) { if (ModelState.IsValid) { var compatibility = new Compatibility(); _context.Add(compatibility); var firstCompatibility = new PartCompatibility(); firstCompatibility.Compatibility = compatibility; AddPartIdToCompatibility(firstCompatibility, twoPartCompatibilities.FirstPartId); _context.Add(firstCompatibility); var secondCompatibility = new PartCompatibility(); secondCompatibility.Compatibility = compatibility; AddPartIdToCompatibility(secondCompatibility, twoPartCompatibilities.SecondPartId); _context.Add(secondCompatibility); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(twoPartCompatibilities)); }
private void AddPartIdToCompatibility(PartCompatibility partCompatibility, string indetification) { partCompatibility.WipePartIds(); var splitIdentification = indetification.Split('`'); int id = int.Parse(splitIdentification[0]); string name = splitIdentification[1]; CPU cpu; if ((cpu = _context.Cpu.Find(id)) != null && cpu.Name == name) { partCompatibility.CPUId = id; } Cooler cooler; if ((cooler = _context.Cooler.Find(id)) != null && cooler.Name == name) { partCompatibility.CoolerId = id; } Motherboard motherboard; if ((motherboard = _context.Motherboard.Find(id)) != null && motherboard.Name == name) { partCompatibility.MotherboardId = id; } RAM ram; if ((ram = _context.Ram.Find(id)) != null && ram.Name == name) { partCompatibility.RAMId = id; } Storage storage; if ((storage = _context.Storage.Find(id)) != null && storage.Name == name) { partCompatibility.StorageId = id; } GPU gpu; if ((gpu = _context.Gpu.Find(id)) != null && gpu.Name == name) { partCompatibility.GPUId = id; } PSU psu; if ((psu = _context.Psu.Find(id)) != null && psu.Name == name) { partCompatibility.PSUId = id; } Case _case; if ((_case = _context.Case.Find(id)) != null && _case.Name == name) { partCompatibility.CaseId = id; } }