Exemplo n.º 1
0
        public IActionResult PostujIgraca(int postovaniID)
        {
            Igrac      igrac2       = db.Igraci.Include(d => d.User).Where(d => d.User.Email == User.Identity.Name).SingleOrDefault();
            Igrac      igrac1       = db.Igraci.Find(postovaniID);
            int        postivalacID = igrac2.ID;
            Postovanje postovanje   = db.Postovanja.Where(d => d.PostivalacID == postivalacID && d.PostovaniID == postovaniID).SingleOrDefault();

            if (igrac1 == null || igrac2 == null)
            {
                return(View("Greska"));
            }
            else if (postovanje != null)
            {
                db.Remove(postovanje);
            }
            else
            {
                Postovanje novo = new Postovanje(postivalacID, postovaniID);
                db.Add(novo);
            }
            db.SaveChanges();
            return(Redirect("/Igrac/PrikazProfila/" + postovaniID));
        }
Exemplo n.º 2
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));
        }