Beispiel #1
0
        public IActionResult EvidencijaMeca(EvidencijaMecaVM obj)
        {
            if (ModelState.IsValid)
            {
                Igrac podnositeljZahtjeva = evidentor.NadjiIgraca(HttpContext.User.Identity.Name);
                if (!obj.Tim1.Select(x => x.IgracID).Contains(podnositeljZahtjeva.ID) &&
                    !obj.Tim2.Select(x => x.IgracID).Contains(podnositeljZahtjeva.ID))
                {
                    return(VratiNijeAutorizovan());
                }

                EvidencijaMeca objekatZaEvidentor = mapko.Map <EvidencijaMeca>(obj);
                List <string>  errori             = evidentor.VratiListuErrora(objekatZaEvidentor);
                if (errori.Count() == 0)
                {
                    //nikad ne bi niti jedan tim trebao biti null da napomenem, to je rijeseno u evidencijimeca httpget

                    try
                    {
                        if (evidentor.EvidentirajMec(objekatZaEvidentor, obj.TakmicenjeID))
                        {
                            notifikacijeHub.Clients.All.SendAsync("startaj", GetListaUseraNotifikacije(obj.Tim1[0].UtakmicaID), obj.NazivTim1, obj.NazivTim2, obj.TakmicenjeID);
                            return(RedirectToAction("EvidencijaMeca", new { id = obj.TakmicenjeID }));
                        }
                        else
                        {
                            ModelState.AddModelError("", "Došlo je do nepredviđene greške, pokusajte opet");
                        }
                    }
                    catch (Exception)
                    {
                        //mislim da se ovaj blok nikad nece hittat obzirom da imam try catch u evidentoru ali eto
                        ModelState.AddModelError("", "Došlo je do greške");
                    }
                }
                else
                {
                    foreach (string err in errori)
                    {
                        ModelState.AddModelError("", err);
                    }
                }
            }
            //nisam siguran da li je pametnije vratiti sve ili samo jedan ali eto
            List <EvidencijaMecaVM> temp = new List <EvidencijaMecaVM>();

            temp.Add(obj);
            ViewBag.id = obj.TakmicenjeID;
            return(PartialView(temp));
        }
Beispiel #2
0
        public IActionResult EvidencijaMeca(int id)
        {
            Igrac                   igrac           = evidentor.NadjiIgraca(HttpContext.User.Identity.Name);
            List <Utakmica>         NjegoveUtakmice = evidentor.DobaviUtakmice(igrac, id);
            List <EvidencijaMecaVM> model           = new List <EvidencijaMecaVM>();

            foreach (Utakmica i in NjegoveUtakmice)
            {
                //ne bi se smjelo nikada desiti da se nadje null igracID jer je na frontendu prikazano samo ono gdje su oba igraca unesena..
                //to je rjeseno onom funkcijom JelBye unutar funkcije DobaviUtakmice u par linija koda iznad
                EvidencijaMecaVM      nova      = new EvidencijaMecaVM();
                List <Igrac_Utakmica> svaUcesca = db.IgraciUtakmice.Where(x => x.UtakmicaID == i.ID).ToList();
                List <(Prijava pr, Igrac_Utakmica ucesce)> Timovi = new List <(Prijava pr, Igrac_Utakmica ucesce)>();
                foreach (Igrac_Utakmica j in svaUcesca)
                {
                    Prijava prijavaJoinUcesce = evidentor.GetPrijavuZaUcesce(j, id);
                    Timovi.Add((prijavaJoinUcesce, j));
                }
                (List <Igrac_Utakmica> Tim1, List <Igrac_Utakmica> Tim2)TimoviFinalni = evidentor.VratiUcescaPoTimu(Timovi);
                //dovoljno je provjeriti samo za jednog igraca, a svakako radi i za varijantu kad je double jer oba igraca pripadaju istoj prijavi koja ima //isti naziv
                string NazivTim1 = Timovi.Where(x => x.ucesce == TimoviFinalni.Tim1[0]).Select(x => x.pr.Naziv).FirstOrDefault();
                string NazivTim2 = Timovi.Where(x => x.ucesce == TimoviFinalni.Tim2[0]).Select(x => x.pr.Naziv).FirstOrDefault();

                nova.Tim1 = TimoviFinalni.Tim1;
                nova.Tim2 = TimoviFinalni.Tim2;

                nova.NazivTim1 = NazivTim1;
                nova.NazivTim2 = NazivTim2;

                nova.RezultatTim1 = null;
                nova.RezultatTim1 = null;
                model.Add(nova);
            }
            ViewBag.id = id;
            return(PartialView(model));
        }