Esempio n. 1
0
        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 }));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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();
 }