public async Task <IActionResult> DeleteZbor(RepozitorijZborViewModel model) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); var dat = _ctx.RepozitorijZbor.Find(model.IdTrazeni); if (dat == null) { return(RedirectToAction("Nema", "Greska")); } if (!IsAdmin(dat.IdZbor, user.Id) && dat.IdKorisnik != user.Id) { return(RedirectToAction("Prava", "Zbor")); } try { System.IO.File.Delete(LOCATION + "/" + dat.Url); _ctx.Remove(dat); _ctx.SaveChanges(); } catch (Exception) { return(RedirectToAction("Error", "Zbor")); }; return(RedirectToAction("Zbor", new { id = dat.IdZbor })); }
public async Task <IActionResult> Zbor(Guid id) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); var korisnik = _ctx.Korisnik.Where(k => k.Id == user.Id).SingleOrDefault(); var datoteke = _ctx.RepozitorijZbor.Where(r => r.IdZbor == id).Include(k => k.IdKorisnikNavigation).OrderByDescending(r => r.DatumPostavljanja).ToList(); if (!_ctx.ClanZbora.Where(c => c.IdZbor == id).Select(c => c.IdKorisnik).Contains(user.Id)) { datoteke = datoteke.Where(d => d.Privatno == false).ToList(); } var zbor = _ctx.Zbor.Where(z => z.Id == id).Include(z => z.Voditelj).Include(z => z.ModeratorZbora).SingleOrDefault(); var admin = zbor.Voditelj.OrderByDescending(z => z.DatumPostanka).First(); var mod = zbor.ModeratorZbora.Where(m => m.IdKorisnik == user.Id).SingleOrDefault(); bool flagAdmin = admin.IdKorisnik == user.Id || mod != null ? true : false; var clan = _ctx.ClanZbora.Where(c => c.IdKorisnik == user.Id && c.IdZbor == id).SingleOrDefault(); bool flagClan = clan == null ? false : true; RepozitorijZborViewModel model = new RepozitorijZborViewModel { Datoteke = datoteke, IdKorisnik = user.Id, IdTrazeni = id, IdZbor = id, Promjena = flagAdmin, Clan = flagClan }; ViewData["zborId"] = id; ViewData["zborIme"] = zbor.Naziv; ViewData["idSlika"] = zbor.IdSlika; return(View(model)); }
public async Task <IActionResult> UploadZbor(RepozitorijZborViewModel model) { ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User); var files = model.FormFiles; long size = files.Sum(f => f.Length); foreach (var formFile in files) { if (formFile.Length > 0) { DirectoryInfo di = Directory.CreateDirectory(LOCATION_CHOIR + model.IdZbor); var filePath = "Zbor/" + model.IdZbor + "/" + formFile.FileName; RepozitorijZbor dat = new RepozitorijZbor { Id = Guid.NewGuid(), DatumPostavljanja = DateTime.Now, IdKorisnik = user.Id, IdZbor = model.IdZbor, Url = filePath, Privatno = true, Naziv = formFile.FileName }; var fullPath = LOCATION + filePath; using (var stream = System.IO.File.Create(fullPath)) { await formFile.CopyToAsync(stream); } _ctx.Add(dat); } var pretplatnici = _ctx.PretplataNaZbor.Where(p => p.IdZbor == model.IdZbor).Select(p => p.IdKorisnik).ToHashSet(); foreach (var pret in pretplatnici) { OsobneObavijesti ob = new OsobneObavijesti { Id = Guid.NewGuid(), IdKorisnik = pret, Tekst = String.Format("Nove datoteke u zboru <b>{0}</b>.", _ctx.Zbor.Find(model.IdZbor).Naziv), Procitano = false, Poveznica = "/Repozitorij/Zbor/" + model.IdZbor }; _ctx.Add(ob); await _hubContext.Clients.User(pret.ToString()).SendAsync("NovaObavijest", new { id = ob.Id, poveznica = ob.Poveznica, procitano = ob.Procitano, datum = ob.Datum, tekst = ob.Tekst }); } _ctx.SaveChanges(); } return(RedirectToAction("Zbor", new { id = model.IdZbor })); }
public RepozitorijZborPage() { model = new RepozitorijZborViewModel(App.Zbor.Id); BindingContext = model; InitializeComponent(); }
public RepozitorijZborPage(Guid id) { model = new RepozitorijZborViewModel(id); BindingContext = model; InitializeComponent(); }