public async Task <IActionResult> PutSpoj([FromRoute] int id, [FromBody] Spoj spoj) { if (!ModelState.IsValid) { logger.LogError("spoj nije valjan"); return(BadRequest(ModelState)); } if (id != spoj.Id) { logger.LogError("spoj nema dobar id" + " tražen: " + spoj.Id + " dobiven " + id); return(BadRequest()); } _context.Entry(spoj).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SpojExists(id)) { logger.LogError("spoj " + id + " nije nađen"); return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> Create(int id, [Bind("Id,Name,TypeId")] Spoj spoj, ICollection <int> Elements) { if (Elements.Count >= Spoj.MinSizeOfElements) { _context.Add(spoj); if (ModelState.IsValid) { var list = new List <SpojElement>(); foreach (var elem in Elements) { //until the ui supports entering count for each element set it to 1 and later edit it list.Add(new SpojElement() { Count = 1, ElementId = elem, SpojId = spoj.Id }); } _context.AddRange(list); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } } ViewDataSet(); var spojVM = new SpojVM(); return(View(spojVM)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Name,TypeId")] Spoj spoj, ICollection <int> Elements) { if (id != spoj.Id) { return(NotFound()); } if (Elements.Count >= Spoj.MinSizeOfElements) { if (ModelState.IsValid) { try { var list = new List <SpojElement>(); //Add elements to compound foreach (var elem in Elements) { if (!SpojElementExists(spoj.Id, elem)) { //until the ui supports entering count for each element set it to 1 and later edit it list.Add(new SpojElement() { Count = 1, ElementId = elem, SpojId = spoj.Id }); } } //Remove elements from compound foreach (var elem2 in _context.SpojElement.Where(s => s.SpojId == spoj.Id).Select(s => s.Element).ToList()) { if (!Elements.Contains(elem2.Id)) { var spojElementToDelete = _context.SpojElement.FirstOrDefault(s => s.SpojId == spoj.Id && s.ElementId == elem2.Id); _context.Remove(spojElementToDelete); } } _context.AddRange(list); _context.Update(spoj); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SpojExists(spoj.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } } ViewDataSet(); var spojVM = new SpojVM(); return(View(spojVM)); }
public async Task <IActionResult> PostSpoj([FromBody] Spoj spoj) { if (!ModelState.IsValid) { logger.LogError("spoj nije valjan"); return(BadRequest(ModelState)); } _context.Spoj.Add(spoj); await _context.SaveChangesAsync(); return(CreatedAtAction("GetSpoj", new { id = spoj.Id }, spoj)); }