Ejemplo n.º 1
0
        public Prijave Prijava(int id, [FromBody] PrijavaInsert obj)
        {
            var userId = usersService.GetRequestUserID(HttpContext.Request);

            takmicenjeAutorizator.AuthorizePrijava(userId, obj);
            return(prijaveService.Add(id, obj));
        }
Ejemplo n.º 2
0
        public Prijave Add(int TakmicenjeID, PrijavaInsert obj)
        {
            ValidirajDodavanje(TakmicenjeID, obj);

            var prijava = new Database.DTOs.Prijava
            {
                DatumPrijave = DateTime.Now,
                TakmicenjeID = TakmicenjeID,
                isTim        = obj.isTim,
                Naziv        = obj.Naziv
            };

            prijava.StanjePrijave = new Database.DTOs.Stanje_Prijave(prijava.ID);
            if (!obj.isTim)
            {
                prijava.Naziv = db.Igraci.Find(obj.Igrac1ID).PrikaznoIme;
            }

            db.Add(prijava);
            db.SaveChanges();

            KreirajPrijavuIgrac(obj, prijava.ID);

            return(mapper.Map <SharedModels.Prijave>(prijava));
        }
Ejemplo n.º 3
0
        public void AuthorizePrijava(int UserId, PrijavaInsert obj)
        {
            if (UserId != obj.Igrac1ID && UserId != obj.Igrac2ID)
            {
                throw new AuthorizeException("Niste autorizovani za takvu radnju.");
            }
            var suspenzija = suspenzijaService.ImaVazecuSuspenziju(UserId, "Prijava na takmičenja");

            if (suspenzija != null)
            {
                UserException ex = new UserException();
                ex.AddError("Suspenzija", $"Suspendovani ste sa prijavom na takmičenja do:  {suspenzija.DatumZavrsetka.ToString()}");
                throw ex;
            }
        }
Ejemplo n.º 4
0
        public async Task <Prijave> Prijava(int id, PrijavaInsert obj)
        {
            var url = $"{APIUrl}/{Resurs}/{id}/prijava";

            try
            {
                var rezult = await url.WithBasicAuth(Username, Password).PostJsonAsync(obj).ReceiveJson <Prijave>();

                return(rezult);
            }
            catch (FlurlHttpException ex)
            {
                var errori = GetErrore(ex).Result;
                await Application.Current.MainPage.DisplayAlert("Greška", errori, "OK");

                return(default(Prijave));
            }
        }
Ejemplo n.º 5
0
        private void KreirajPrijavuIgrac(PrijavaInsert prijava, int id)
        {
            var prijava_Igrac1 = new Database.DTOs.Prijava_igrac
            {
                IgracID   = prijava.Igrac1ID ?? default(int),
                PrijavaID = id
            };

            db.Add(prijava_Igrac1);

            if (prijava.isTim)
            {
                var prijava_Igrac2 = new Database.DTOs.Prijava_igrac
                {
                    IgracID   = prijava.Igrac2ID ?? default(int),
                    PrijavaID = id
                };
                db.Add(prijava_Igrac2);
            }
            db.SaveChanges();
        }
Ejemplo n.º 6
0
        //*****************************************************
        //              POMOCNE FUNKCIJE
        //*****************************************************
        private void ValidirajDodavanje(int takmicenjeId, PrijavaInsert obj)
        {
            var exception = new UserException();

            var takmicenje = db.Takmicenja.Where(x => x.ID == takmicenjeId).Include(x => x.Vrsta).SingleOrDefault();

            if (takmicenje == null)
            {
                exception.AddError("", "Takmicenje ne postoji u bazi.");
            }

            var igrac1 = db.Igraci.Find(obj.Igrac1ID);
            var igrac2 = db.Igraci.Find(obj.Igrac2ID);

            if (igrac1 == null || (takmicenje != null && takmicenje.Vrsta.Naziv == "Double" && igrac2 == null))
            {
                exception.AddError("", "Igrac ne postoji u bazi.");
            }


            if (takmicenje.RokZavrsetkaPrijave >= DateTime.Now)
            {
                var pi = db.PrijaveIgraci.Where(p => p.Prijava.TakmicenjeID == takmicenjeId && p.IgracID == obj.Igrac1ID).SingleOrDefault();

                if (pi != null)
                {
                    exception.AddError("", "Igrač je već prijavljen na takmičenje.");
                }

                if (obj.Igrac1ID == null)
                {
                    exception.AddError("", "Polje igrač1 je obavezno.");
                }

                if (obj.isTim)
                {
                    var pi2 = db.PrijaveIgraci.Where(p => p.Prijava.TakmicenjeID == takmicenjeId && p.IgracID == obj.Igrac2ID).SingleOrDefault();

                    if (pi2 != null)
                    {
                        exception.AddError("", "Igrač je već prijavljen na takmičenje.");
                    }

                    if (obj.Igrac2ID == null)
                    {
                        exception.AddError("", "Polje igrač2 je obavezno.");
                    }

                    if (obj.Naziv == null)
                    {
                        exception.AddError("", "Polje naziv je obavezno.");
                    }

                    var blokListaIgrac2 = db.BlokListe.Where(x => x.IgracID == obj.Igrac2ID && x.TakmicenjeID == takmicenjeId).SingleOrDefault();
                    if (blokListaIgrac2 != null)
                    {
                        exception.AddError("", "Ovaj igrač je blokiran na ovom takmičenju.");
                    }
                }

                if (obj.Igrac1ID == obj.Igrac2ID && obj.Igrac2ID != null)
                {
                    exception.AddError("", "Ne možete dodati istog igrača kao saigrača.");
                }

                var blokListaIgrac1 = db.BlokListe.Where(x => x.IgracID == obj.Igrac1ID && x.TakmicenjeID == takmicenjeId).SingleOrDefault();

                if (blokListaIgrac1 != null)
                {
                    exception.AddError("", "Blokirani ste na ovom takmičenju.");
                }

                var naziv = obj.isTim ? obj.Naziv : igrac1.PrikaznoIme;

                if (db.Prijave.Where(x => x.TakmicenjeID == takmicenjeId && x.Naziv == naziv).SingleOrDefault() != null)
                {
                    exception.AddError("", "Ime je zauzeto.");
                }

                if (exception.Errori.Count > 0)
                {
                    throw exception;
                }
            }
        }