public Prijave Prijava(int id, [FromBody] PrijavaInsert obj) { var userId = usersService.GetRequestUserID(HttpContext.Request); takmicenjeAutorizator.AuthorizePrijava(userId, obj); return(prijaveService.Add(id, obj)); }
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)); }
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; } }
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)); } }
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(); }
//***************************************************** // 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; } } }