Example #1
0
        public async Task <IActionResult> Zapis(Guid id, [FromQuery] int page = 1)
        {
            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            bool mod      = isMod(user.Id);
            int  pagesize = appData.PageSize;
            var  tema     = _ctx.Tema.Find(id);

            if (tema == null)
            {
                return(RedirectToAction("Nema", "Greska"));
            }
            var teme       = _ctx.Zapis.Where(t => t.IdTema == id);
            var pagingInfo = new PagingInfo
            {
                CurrentPage  = page,
                ItemsPerPage = pagesize,
                TotalItems   = teme.Count()
            };

            if (page == 0)
            {
                return(RedirectToAction(nameof(Zapis), new { id = id, page = pagingInfo.TotalPages }));
            }
            if (page > pagingInfo.TotalPages && pagingInfo.TotalItems != 0)
            {
                return(RedirectToAction(nameof(Index), new { page = pagingInfo.TotalPages }));
            }

            System.Linq.Expressions.Expression <Func <Zapis, object> > orderSelector = t => t.DatumIvrijeme;

            if (orderSelector != null)
            {
                teme =


                    _ctx.Zapis.Where(t => t.IdTema == id).Include(t => t.IdTemaNavigation).Include(t => t.IdKorisnikNavigation).OrderBy(orderSelector);
            }
            var trazeniZapis = teme
                               .Skip((page - 1) * pagesize)
                               .Take(pagesize)
                               .ToList();
            var model = new ZapisVIewModel()
            {
                Zapisi     = trazeniZapis,
                PagingInfo = pagingInfo,
                IdTema     = id,
                IdKorisnik = user.Id,
                Mod        = mod,
                Naslov     = tema.Naslov
            };

            return(View(model));
        }
Example #2
0
        public async Task <IActionResult> ObrisiZapis(ZapisVIewModel model, int page = 1)
        {
            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            var zapis = _ctx.Zapis.Find(model.IdBrisanje);

            if (zapis == null)
            {
                return(RedirectToAction("Nema", "Greska"));
            }
            if (!isMod(user.Id) && zapis.IdKorisnik != user.Id)
            {
                return(RedirectToAction("Prava", "Zbor"));
            }
            _ctx.Zapis.Remove(zapis);
            _ctx.SaveChanges();
            return(RedirectToAction("Zapis", new { id = zapis.IdTema, page = page }));
        }
Example #3
0
        public async Task <IActionResult> Zapis(ZapisVIewModel model)
        {
            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            if (model.Novi.Tekst.Trim().Equals(""))
            {
                ModelState.AddModelError("Tekst", "Zapis je obavezan");
            }
            if (ModelState.IsValid)
            {
                model.Novi.Id            = Guid.NewGuid();
                model.Novi.IdKorisnik    = user.Id;
                model.Novi.DatumIvrijeme = DateTime.Now;
                model.Novi.Tekst         = model.Novi.Tekst.Replace("src=\"\\\\", "src=\"https:\\\\");
                var tema = _ctx.Tema.Find(model.Novi.IdTema);
                tema.ZadnjiZapis = model.Novi.DatumIvrijeme;
                _ctx.Zapis.Add(model.Novi);
                _ctx.SaveChanges();
                return(RedirectToAction("Zapis", new { id = model.Novi.IdTema }));
            }
            //model.KategorijaForuma = _ctx.KategorijaForuma.Include(k => k.Forum).ThenInclude(f => f.Tema).OrderBy(k => k.Redoslijed).ToList();
            return(View(model));
        }