Beispiel #1
0
        public IActionResult Dodaj(Sistem_Takmicenja st)
        {
            if (User.Identity.Name != "*****@*****.**" && User.Identity.Name != "*****@*****.**")
            {
                return(VratiNijeAutorizovan());
            }

            if (DaLiPostoji(st.Opis))
            {
                return(View("Greska"));
            }

            if (ModelState.IsValid)
            {
                db.SistemiTakmicenja.Add(st);
                db.SaveChanges();
                return(Redirect("/SistemTakmicenja"));
            }
            return(View());
        }
Beispiel #2
0
        public IActionResult PrikazProfila(int id)
        {
            Igrac objIgrac = db.Igraci.Include(d => d.Grad).SingleOrDefault(x => x.ID == id);

            if (objIgrac == null)
            {
                return(View("Greska"));
            }
            IgracVM igrac = new IgracVM(objIgrac);

            igrac.statistika     = db.Statistike.Where(s => s.IgracID == id && s.AkademskaGodina == DateTime.Now.Year).SingleOrDefault();
            igrac.BrojPostovanja = db.Postovanja.Count(p => p.PostovaniID == id);
            igrac.listaPrijava   = (from pi in db.PrijaveIgraci
                                    join pr in db.Prijave on pi.PrijavaID equals pr.ID
                                    where pi.IgracID == id
                                    select new Prijava
            {
                ID = pr.ID,
                Naziv = pr.Naziv,
                Takmicenje = pr.Takmicenje
            }).ToList();
            ViewBag.userId = db.Users.Where(d => d.Email == User.Identity.Name).FirstOrDefault().Id;
            var userId = db.Users.Where(d => d.Email == User.Identity.Name).FirstOrDefault().Id;

            if (userId != id)
            {
                Igrac i = db.Igraci.Find(id);
                i.BrojPosjetaNaProfil++;
                db.Update(i);
                db.SaveChanges();
            }

            return(View(igrac));
        }
Beispiel #3
0
        public async Task <ActionResult> UkljuciAutentifikaciju(AutentifikacijaVM model)
        {
            if (User.Identity.Name != null)
            {
                var korisnik = await UserM.FindByEmailAsync(User.Identity.Name);

                TwoFactorAuthenticator tfa = new TwoFactorAuthenticator();
                string userUniqueKey       = GetUserUniqueKey(korisnik);

                if (LockoutCheck(korisnik))
                {
                    TimeSpan t = (korisnik.LockoutEnd - DateTime.Now) ?? default(TimeSpan);
                    ModelState.AddModelError("Lockout", "Vaš profil je zaključan još " + t.Minutes + " minuta i " + t.Seconds + " sekundi.");
                    return(View());
                }
                else
                {
                    if (tfa.ValidateTwoFactorPIN(userUniqueKey, model.Code))
                    {
                        Igrac i = db.Igraci.Find(korisnik.Id);
                        i.TwoFactorEnabled = true;
                        db.Update(i);
                        db.SaveChanges();
                        return(Redirect("/Igrac/PrikazProfila/" + i.ID));
                    }
                    else
                    {
                        ModelState.AddModelError("Code", "Neispravan kod");
                        return(View());
                    }
                }
            }
            else
            {
                return(RedirectToAction("Login"));
            }
        }
Beispiel #4
0
        public IActionResult Dodaj(ObjavaUnosVM obj)
        {
            if (ModelState.IsValid)
            {
                Feed FidObjekat = db.Feeds.Find(obj.FeedID);//mora pripadati objava nekom fidu inace nista
                if (FidObjekat != null)
                {
                    try
                    {
                        Objava nova = new Objava
                        {
                            Naziv          = obj.Naziv,
                            Content        = obj.Content,
                            DatumKreiranja = DateTime.Now,
                            DatumIzmjene   = DateTime.Now
                        };
                        db.Objave.Add(nova);
                        db.SaveChanges();
                        FeedObjava novaFidObjava = new FeedObjava
                        {
                            FeedID   = FidObjekat.ID,
                            ObjavaID = nova.ID
                        };
                        db.FeedsObjave.Add(novaFidObjava);
                        db.SaveChanges();
                        return(Redirect("/Feed/Prikaz/" + FidObjekat.ID));
                    }
                    catch (DbUpdateException)
                    {
                        ModelState.AddModelError("", "Problem u kreiranju");
                    }
                }
            }

            return(PartialView(obj));
        }
Beispiel #5
0
        public IActionResult Dodaj(CreateTakmicenjeVM objekat)
        {
            if (ModelState.IsValid)
            {
                TakmicenjaInsert objekatValidator             = mapko.Map <TakmicenjaInsert>(objekat);
                List <(string key, string error)> listaerrora = validator
                                                                .VratiListuErroraAkcijaDodaj(objekatValidator);

                if (listaerrora.Count() == 0)
                {
                    using (var transakcija = db.Database.BeginTransaction())//sigurnost u opasnim situacijama
                    {
                        try
                        {
                            //ovaj posao ce odraditi IMapper
                            Takmicenje novo = new Takmicenje();
                            mapko.Map(objekat, novo);
                            var idUser = db.Users.Where(x => x.UserName == HttpContext.User.Identity.Name).FirstOrDefault();
                            novo.KreatorID = idUser.Id;
                            Feed TakmicenjeFeed = new Feed
                            {
                                Naziv             = novo.Naziv + " feed",
                                DatumModifikacije = DateTime.Now
                            };
                            db.Feeds.Add(TakmicenjeFeed);
                            db.SaveChanges();
                            novo.FeedID = TakmicenjeFeed.ID;

                            db.Add(novo);
                            db.SaveChanges();

                            //dobaviti igrace iz regexa
                            if (objekat.RucniOdabir)
                            {
                                validator._listaIgraca = db.Igraci.ToList();
                                List <Igrac> svi = validator.GetListaRucnihIgraca(objekat.RucnoOdabraniIgraci);
                                foreach (Igrac i in svi)
                                {
                                    Prijava novaPrijava = new Prijava
                                    {
                                        DatumPrijave = DateTime.Now,
                                        isTim        = false,
                                        Naziv        = i.PrikaznoIme,
                                        TakmicenjeID = novo.ID
                                    };

                                    novaPrijava.StanjePrijave = new Stanje_Prijave(novaPrijava.ID);
                                    db.Prijave.Add(novaPrijava);
                                    db.SaveChanges();

                                    Prijava_igrac PrijavaIgracPodatak = new Prijava_igrac
                                    {
                                        IgracID   = i.ID,
                                        PrijavaID = novaPrijava.ID
                                    };
                                    db.PrijaveIgraci.Add(PrijavaIgracPodatak);
                                    db.SaveChanges();
                                }
                            }
                            transakcija.Commit();
                            return(Redirect("/Takmicenje/Prikaz/" + novo.ID));
                        }
                        catch (DbUpdateException)
                        {
                            transakcija.Rollback();
                            ModelState.AddModelError("", "Doslo je do greške prilikom spašavanja u bazu");
                        }
                    }
                }
                else
                {
                    //ako je validator vratio errore ovdje cemo ih pametno stavit u modelstate kako bi se prikazali na viewu
                    foreach ((string key, string err)i in listaerrora)
                    {
                        ModelState.AddModelError(i.key, i.err);
                    }
                }
            }
            LoadViewBag();
            return(View(objekat));
        }
        public IActionResult Dodaj(CreateReportVM ReportObj)
        {
            if (ModelState.IsValid)
            {
                if (!SamoSlike(ReportObj.Prilozi))
                {
                    ModelState.AddModelError(nameof(ReportObj.Prilozi), "Mozete samo slike upload");
                }
                else
                {
#pragma warning disable IDE0063 // Use simple 'using' statement
                    using (var transakcija = db.Database.BeginTransaction())
#pragma warning restore IDE0063 // Use simple 'using' statement
                    {
                        List <string> zluNetrebalo = new List <string>();
                        try
                        {
                            //otkriti nacin slanja mejla administratoru ako uspjesno prodje report
                            Report noviReport = new Report
                            {
                                Naslov         = ReportObj.Naslov,
                                Email          = ReportObj.Email,
                                Sadrzaj        = ReportObj.Sadrzaj,
                                DatumKreiranja = DateTime.Now,
                                Prilozi        = new List <Attachment>()
                            };
                            db.Reports.Add(noviReport);
                            db.SaveChanges();
                            if (ReportObj.Prilozi != null)
                            {
                                foreach (IFormFile x in ReportObj.Prilozi)
                                {
                                    Directory.CreateDirectory(Path.Combine(_host.WebRootPath, "reports").ToString());
                                    string ImeFajla      = Guid.NewGuid().ToString() + "_" + x.FileName;
                                    string PathSpremanja = Path.Combine(_host.WebRootPath, "reports", ImeFajla);
                                    using (var strim = new FileStream(PathSpremanja, FileMode.Create))
                                        x.CopyTo(strim);
                                    zluNetrebalo.Add(PathSpremanja);
                                    Attachment Attachmentnovi = new Attachment
                                    {
                                        DatumUnosa = DateTime.Now,
                                        Path       = "~/reports/" + ImeFajla
                                    };
                                    db.Attachments.Add(Attachmentnovi);
                                    db.SaveChanges();
                                    noviReport.Prilozi.Add(Attachmentnovi);
                                    db.SaveChanges();
                                }
                            }
                            transakcija.Commit();
                            try
                            {
                                EmailServis.PosaljiMejlReport(noviReport);
                            }
                            catch (Exception)
                            {
                            }
                            return(Redirect("/Home/Index"));
                        }
                        catch (DbUpdateException)
                        {
                            transakcija.Rollback();
                            foreach (string x in zluNetrebalo)
                            {
                                if (System.IO.File.Exists(x))
                                {
                                    System.IO.File.Delete(x);
                                }
                            }
                            ModelState.AddModelError("", "Nesto je krenulo po zlu prilikom spasavanja u bazu,ponovite unos");
                        }
                    }
                }
            }
            return(View(ReportObj));
        }