public TemeView() { var zajednickiElementi = new ZajednickiElementiAplikacije(); BindingContext = new TemeViewModel(); Title = "Grane fizike"; var temaKinematikaButton = zajednickiElementi.PrimarniNavigacijskiButton(kinematika); temaKinematikaButton.SetBinding(Button.CommandProperty, nameof(TemeViewModel.OdabirGraneFizikeCommand)); var temaDinamikaButton = zajednickiElementi.PrimarniNavigacijskiButton(dinamika); temaDinamikaButton.SetBinding(Button.CommandProperty, nameof(TemeViewModel.OdabirGraneFizikeCommand)); Content = new StackLayout { Children = { temaKinematikaButton, temaDinamikaButton }, Margin = new Thickness(0, 10, 0, 0) }; }
public async Task <IActionResult> Tema(TemeViewModel model) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); if (model.Nova.Naslov.Trim().Equals("")) { ModelState.AddModelError("Naslov", "Naslov je obavezan"); } if (model.Tekst.Trim().Equals("")) { ModelState.AddModelError("Tekst", "Zapis je obavezan"); } if (ModelState.IsValid) { model.Nova.Id = Guid.NewGuid(); Zapis zap = new Zapis { Id = Guid.NewGuid(), IdKorisnik = user.Id, DatumIvrijeme = DateTime.Now, IdTema = model.Nova.Id, Tekst = model.Tekst }; model.Nova.DatumPocetka = zap.DatumIvrijeme; model.Nova.ZadnjiZapis = zap.DatumIvrijeme; model.Nova.Zapis.Add(zap); model.Nova.IdKorisnik = user.Id; model.Nova.IdForum = model.IdForum; _ctx.Tema.Add(model.Nova); _ctx.SaveChanges(); return(RedirectToAction("Tema", new { id = model.IdForum })); } //model.KategorijaForuma = _ctx.KategorijaForuma.Include(k => k.Forum).ThenInclude(f => f.Tema).OrderBy(k => k.Redoslijed).ToList(); return(View(model)); }
public async Task <IActionResult> Tema(Guid id, [FromQuery] int page = 1) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); bool mod = isMod(user.Id); int pagesize = appData.PageSize; var forum = _ctx.Forum.Find(id); if (forum == null) { return(RedirectToAction("Nema", "Greska")); } var teme = _ctx.Tema.Where(t => t.IdForum == id); var pagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = pagesize, TotalItems = teme.Count() }; if (page > pagingInfo.TotalPages && pagingInfo.TotalItems != 0) { return(RedirectToAction(nameof(Index), new { page = pagingInfo.TotalPages })); } System.Linq.Expressions.Expression <Func <Tema, object> > orderSelector = t => t.ZadnjiZapis; if (orderSelector != null) { teme = _ctx.Tema.Where(t => t.IdForum == id).Include(t => t.IdKorisnikNavigation).Include(t => t.IdForumNavigation).Include(t => t.Zapis).ThenInclude(z => z.IdKorisnikNavigation).OrderByDescending(orderSelector); } var trazeneTeme = teme .Skip((page - 1) * pagesize) .Take(pagesize) .ToList(); var model = new TemeViewModel() { Teme = trazeneTeme, PagingInfo = pagingInfo, IdForum = id, Mod = mod, IdKorisnik = user.Id, Naslov = forum.Naziv }; return(View(model)); }
public async Task <IActionResult> ObrisiTema(TemeViewModel model, int page = 1) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); var zapis = _ctx.Tema.Find(model.IdBrisanje); if (zapis == null) { return(RedirectToAction("Nema", "Greska")); } if (!isMod(user.Id) && zapis.IdKorisnik != user.Id) { return(RedirectToAction("Prava", "Zbor")); } _ctx.Tema.Remove(zapis); _ctx.SaveChanges(); return(RedirectToAction("Tema", new { id = zapis.IdForum, page = page })); }
public TemePage(Guid id) { model = new TemeViewModel(id); BindingContext = model; InitializeComponent(); }