public async Task <IActionResult> Edit(int id, [Bind("Id,IdUredaja,IdZida,XKoord,YKoord")] EkranZida ekranZida) { if (id != ekranZida.Id) { return(NotFound()); } if (ModelState.IsValid && EkranZidaValid(ekranZida)) { try { _context.Update(ekranZida); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EkranZidaExists(ekranZida.Id)) { return(NotFound()); } else { throw; } } TempData["Success"] = $"Uspjesno ažuriranje podataka."; return(RedirectToAction("Details", new { id = ekranZida.Id })); } ViewData["IdUredaja"] = new SelectList(_context.Uredaj, "Id", "Naziv", ekranZida.IdUredaja); ViewData["IdZida"] = new SelectList(_context.Videozid, "Id", "Lokacija", ekranZida.IdZida); TempData["Error"] = $"Neuspjelo ažuriranje podataka."; return(View(ekranZida)); }
public async Task <IActionResult> Create([Bind("Id,IdUredaja,IdZida,XKoord,YKoord")] EkranZida ekranZida) { if (ModelState.IsValid && EkranZidaValid(ekranZida)) { _context.Add(ekranZida); var uredaj = _context.Uredaj.Where(u => u.Id == ekranZida.IdUredaja).FirstOrDefault(); uredaj.IdStatusa = _context.StatusUredaja.Where(s => s.Naziv.Equals("aktivan")).FirstOrDefault().Id; _context.Update(uredaj); await _context.SaveChangesAsync(); TempData["Success"] = $"Ekran {_context.Uredaj.Where(u => u.Id == ekranZida.IdUredaja).FirstOrDefault().Naziv} pripada videozidu {_context.Videozid.Where(v => v.Id == ekranZida.IdZida).FirstOrDefault().Naziv}."; return(RedirectToAction("Details", new { id = ekranZida.Id })); } ViewData["IdUredaja"] = new SelectList(_context.Uredaj, "Id", "Naziv", ekranZida.IdUredaja); ViewData["IdZida"] = new SelectList(_context.Videozid, "Id", "Naziv", ekranZida.IdZida); return(View(ekranZida)); }
/// <summary> /// Pomoæna metoda za provjeru ispravnosti stvorenog ekrana videozida. /// </summary> /// <param name="ekranZida">objekt tipa EkranZida</param> /// <returns>true ako je ekran zida za zadani videozida ispravno definiran, false inaèe</returns> private bool EkranZidaValid(EkranZida ekranZida) { Videozid zid = _context.Videozid.Where(z => z.Id == ekranZida.IdZida).FirstOrDefault(); if (ekranZida.XKoord < zid.Sirina && ekranZida.YKoord < zid.Visina) { if (_context.EkranZida.Where(e => e.IdZida == ekranZida.IdZida && e.XKoord == ekranZida.XKoord && e.YKoord == ekranZida.YKoord).Count() == 0 && _context.EkranZida.Where(e => e.IdUredaja == ekranZida.Id).Count() == 0) { return(true); } else { TempData["Error"] = $"Unesena pozicija u zidu je zauzeta!"; return(false); } } else { TempData["Error"] = $"Unesena pozicija u zidu ne postoji! Dimenzije zida iznose: Sirina - {zid.Sirina} Visina - {zid.Visina}"; return(false); } }
public async Task <IActionResult> EkranCreate([FromBody] EkranZida ekran) { if (ekran.XKoord < 0 || ekran.YKoord < 0) { _logger.LogWarning("Neispravne koordinate!"); return(BadRequest("Neispravne koordinate!")); } else if (await _context.Uredaj.FindAsync(ekran.IdUredaja) == null) { _logger.LogWarning("Uređaj s navedenim ID-em (" + ekran.IdUredaja + ") ne postoji."); return(NotFound("Uređaj s navedenim ID-em (" + ekran.IdUredaja + ") ne postoji.")); } else if (await _context.Videozid.FindAsync(ekran.IdZida) == null) { _logger.LogWarning("Videozid s navedenim ID-em (" + ekran.IdZida + ") ne postoji."); return(NotFound("Videozid s navedenim ID-em (" + ekran.IdZida + ") ne postoji.")); } else if (await _context.EkranZida.Where(ek => ek.IdUredaja == ekran.IdUredaja && ek.IdZida == ekran.IdZida).FirstOrDefaultAsync() != null) { _logger.LogWarning("Videozid već sadrži navedeni ekran!"); return(BadRequest("Videozid već sadrži navedeni ekran!")); } else if (await _context.EkranZida.Where(ek => ek.IdUredaja == ekran.IdUredaja && ek.IdZida == ekran.IdZida).FirstOrDefaultAsync() != null) { _logger.LogWarning("Neki videozid već sadrži navedeni ekran!"); return(BadRequest("Neki videozid već sadrži navedeni ekran!")); } else if (await _context.EkranZida.Where(ek => ek.XKoord == ekran.XKoord && ek.YKoord == ekran.YKoord && ek.IdZida == ekran.IdZida).FirstOrDefaultAsync() != null) { _logger.LogWarning("Videozid već sadrži ekran na navedenim koordinatama!"); return(BadRequest("Videozid već sadrži ekran na navedenim koordinatama!")); } else { var zid = await _context.Videozid.FindAsync(ekran.IdZida); if (ekran.XKoord >= zid.Sirina || ekran.YKoord >= zid.Visina) { _logger.LogWarning("Neispravne koordinate!"); return(BadRequest("Neispravne koordinate!")); } _context.Add(ekran); await _context.SaveChangesAsync(); var ek = _context.EkranZida.Where(e => e.IdUredaja == ekran.IdUredaja && e.IdZida == ekran.IdZida).Include(e => e.IdUredajaNavigation).First(); _logger.LogInformation("Stvoren ekran zida ID = " + ek.Id); return(new ObjectResult(new { IdVeze = ek.Id, Id = ek.IdUredaja, Name = ek.IdUredajaNavigation.Naziv + "(" + ek.XKoord + "," + ek.YKoord + ")", })); } }