Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        // 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));
        }