public IActionResult Details(int id, double rating) { var posilek = _context.posilki .FirstOrDefault(m => m.id_posilku == id); var userId = int.Parse(this.User.Identity.GetUserId()); if (_context.ocenyPosilkow.Any(e => e.id_uzytkownika == userId && e.id_posilku == posilek.id_posilku)) { OcenaPosilku ocena = new OcenaPosilku(); ocena.id_uzytkownika = userId; ocena.id_posilku = posilek.id_posilku; ocena.ocena = rating; ocena.oceniajacy = _context.uzytkownicy.First(e => e.Id == userId); ocena.posilek = posilek; _context.Update(ocena); } else { OcenaPosilku ocena = new OcenaPosilku(); ocena.id_uzytkownika = userId; ocena.id_posilku = posilek.id_posilku; ocena.ocena = rating; ocena.oceniajacy = _context.uzytkownicy.First(e => e.Id == userId); ocena.posilek = posilek; _context.Add(ocena); } _context.SaveChanges(); return(RedirectToAction(nameof(Details))); }
// GET: Posilek/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } ViewBag.id = id; var posilek = await _context.posilki .Include(p => p.uzytkownik) .Include(p => p.obrazy) .FirstOrDefaultAsync(m => m.id_posilku == id); if (posilek == null) { return(NotFound()); } int userId = int.Parse(this.User.Identity.GetUserId()); Rola usersRole = _context.role.Include(k => k.uzytkownicy) .FirstOrDefault(m => m.nazwa == "dietetyk"); List <int> dieticiansIds = new List <int>(); if (usersRole != null) { foreach (var user in usersRole.uzytkownicy) { dieticiansIds.Add(user.id_uzytkownika); } } if (userId != posilek.id_uzytkownika && !dieticiansIds.Contains(posilek.id_uzytkownika)) { return(NotFound()); } ViewBag.userId = userId; try { ViewBag.ocena = _context.ocenyPosilkow.Single(e => e.id_uzytkownika == userId && e.id_posilku == posilek.id_posilku); } catch { var rate = new OcenaPosilku(); rate.ocena = 0; ViewBag.ocena = rate; } ViewBag.srednia = avgRating(posilek.id_posilku); ViewBag.mealsDetails = _context.posilekSzczegoly.Where(k => k.id_posilku == id) .Include(k => k.skladnik) .ToList(); ViewBag.posilekOwner = posilek.id_uzytkownika; if (posilek == null) { return(NotFound()); } if (posilek.obrazy.Count <= 0) { ViewBag.image = null; } else { ViewBag.image = posilek.obrazy .Last() .GetImageDataUrl(); } this.isDietician(); return(View(posilek)); }