Exemplo n.º 1
0
        private async void BtnSnimi_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                List <Sjedalo> lista = await _apiService.Get <List <Sjedalo> >(new SjedalaSearchRequest()
                {
                    Oznaka = txtOznaka.Text, SektorID = int.Parse(cbSektori.SelectedValue.ToString())
                });

                if (lista.Count == 0 || (lista.Count == 1 && lista[0].SjedaloID == _id))
                {
                    var req = new SjedalaInsertRequest()
                    {
                        Oznaka   = txtOznaka.Text,
                        SektorID = int.Parse(cbSektori.SelectedValue.ToString()),
                        Status   = cbxStatus.Checked
                    };

                    if (_id.HasValue)
                    {
                        try
                        {
                            int i = (int)_id;
                            await _apiService.Update <dynamic>(i, req);

                            MessageBox.Show("Operacija uspjesna!");
                            this.Close();
                        }
                        catch (Exception)
                        {
                        }
                    }
                    else
                    {
                        try
                        {
                            await _apiService.Insert <dynamic>(req);

                            MessageBox.Show("Operacija uspjesna!");
                            this.Close();
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Uneseno sjedalo već postoji za isti sektor!");
                }
            }
            else
            {
                MessageBox.Show("Operacija nije uspjela");
                this.Close();
            }
        }
        private async void BtnSacuvaj_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                int prosloSjedalo  = -1;
                int proslaUtakmica = -1;
                int prosliKorisnik = -1;
                if (_id.HasValue)
                {
                    Ulaznica u = await _apiService.GetById <Ulaznica>(_id);

                    prosloSjedalo  = u.SjedaloID;
                    proslaUtakmica = u.UtakmicaID;
                    prosliKorisnik = u.KorisnikID;
                }
                Korisnik k = await _apiServiceKorisnici.GetById <Korisnik>(int.Parse(cbKorisnik.SelectedValue.ToString()));

                var req = new UlazniceInsertRequest()
                {
                    DatumKupnje   = dtpDatum.Value.Date + dtpVrijeme.Value.TimeOfDay,
                    VrijemeKupnje = dtpDatum.Value.Date + dtpVrijeme.Value.TimeOfDay,
                    KorisnikID    = int.Parse(cbKorisnik.SelectedValue.ToString()),
                    SjedaloID     = int.Parse(cbSjedala.SelectedValue.ToString()),
                    UtakmicaID    = int.Parse(cbUtakmica.SelectedValue.ToString())
                };
                Sjedalo s1 = await _apiServiceSjedala.GetById <Sjedalo>(req.SjedaloID);

                s1.Status = true;
                SjedalaInsertRequest r1 = new SjedalaInsertRequest()
                {
                    Oznaka   = s1.Oznaka,
                    SektorID = s1.SektorID,
                    Status   = s1.Status
                };
                Sjedalo s2 = null;
                SjedalaInsertRequest r2 = null;
                if (prosloSjedalo != -1)
                {
                    s2 = await _apiServiceSjedala.GetById <Sjedalo>(prosloSjedalo);

                    s2.Status   = false;
                    r2          = new SjedalaInsertRequest();
                    r2.Oznaka   = s2.Oznaka;
                    r2.SektorID = s2.SektorID;
                    r2.Status   = s2.Status;
                }



                if (_id.HasValue)
                {
                    int i = (int)_id;
                    await _apiService.Update <dynamic>(i, req);

                    await _apiServiceSjedala.Update <dynamic>(s1.SjedaloID, r1);

                    if (prosloSjedalo != -1)
                    {
                        await _apiServiceSjedala.Update <dynamic>(s2.SjedaloID, r2);
                    }
                }
                else
                {
                    await _apiService.Insert <dynamic>(req);

                    await _apiServiceSjedala.Update <dynamic>(s1.SjedaloID, r1);
                }



                //spremanje u preporuke

                //update
                if (proslaUtakmica != -1 || prosliKorisnik != -1)
                {
                    Utakmica proslaU = await _apiServiceUtakmica.GetById <Utakmica>(proslaUtakmica);

                    List <Preporuka> preporuke = await _apiServicePreporuke.Get <List <Preporuka> >(new PreporukaSearchRequest()
                    {
                        KorisnikID = prosliKorisnik,
                        PrviTimID  = proslaU.DomaciTimID,
                        DrugiTimID = proslaU.GostujuciTimID
                    });

                    foreach (var p in preporuke)
                    {
                        p.BrojKupljenihUlaznica--;
                        await _apiServicePreporuke.Update <Preporuka>(p.PreporukaID, new PreporukaInsertRequest()
                        {
                            BrojKupljenihUlaznica = p.BrojKupljenihUlaznica,
                            KorisnikID            = p.KorisnikID,
                            TimID = p.TimID
                        });
                    }
                }

                //insert
                Utakmica utakmica = await _apiServiceUtakmica.GetById <Utakmica>(req.UtakmicaID);

                var prviTim  = utakmica.DomaciTimID;
                var drugiTim = utakmica.GostujuciTimID;
                List <Preporuka> rezultat = await _apiServicePreporuke.Get <List <Preporuka> >(new PreporukaSearchRequest()
                {
                    KorisnikID = k.KorisnikID, PrviTimID = prviTim, DrugiTimID = drugiTim
                });

                if (rezultat.Count == 1)
                {
                    rezultat[0].BrojKupljenihUlaznica++;
                    PreporukaInsertRequest reqP = null;
                    if (rezultat[0].TimID == prviTim)
                    {
                        reqP = new PreporukaInsertRequest
                        {
                            TimID = drugiTim,
                            BrojKupljenihUlaznica = 1,
                            KorisnikID            = k.KorisnikID
                        };
                    }
                    else
                    {
                        reqP = new PreporukaInsertRequest
                        {
                            TimID = prviTim,
                            BrojKupljenihUlaznica = 1,
                            KorisnikID            = k.KorisnikID
                        };
                    }


                    PreporukaInsertRequest reqPU = new PreporukaInsertRequest
                    {
                        TimID                 = rezultat[0].TimID,
                        KorisnikID            = rezultat[0].KorisnikID,
                        BrojKupljenihUlaznica = rezultat[0].BrojKupljenihUlaznica
                    };
                    await _apiServicePreporuke.Insert <Preporuka>(reqP);

                    await _apiServicePreporuke.Update <Preporuka>(rezultat[0].PreporukaID, reqPU);
                }
                else if (rezultat.Count == 2)
                {
                    PreporukaInsertRequest req1 = new PreporukaInsertRequest
                    {
                        TimID = rezultat[0].TimID,
                        BrojKupljenihUlaznica = ++rezultat[0].BrojKupljenihUlaznica,
                        KorisnikID            = rezultat[0].KorisnikID
                    };
                    PreporukaInsertRequest req2 = new PreporukaInsertRequest
                    {
                        TimID = rezultat[1].TimID,
                        BrojKupljenihUlaznica = ++rezultat[1].BrojKupljenihUlaznica,
                        KorisnikID            = rezultat[1].KorisnikID
                    };

                    await _apiServicePreporuke.Update <Preporuka>(rezultat[0].PreporukaID, req1);

                    await _apiServicePreporuke.Update <Preporuka>(rezultat[1].PreporukaID, req2);
                }
                else//ako je 0
                {
                    PreporukaInsertRequest req1 = new PreporukaInsertRequest
                    {
                        TimID = prviTim,
                        BrojKupljenihUlaznica = 1,
                        KorisnikID            = k.KorisnikID
                    };
                    PreporukaInsertRequest req2 = new PreporukaInsertRequest
                    {
                        TimID = drugiTim,
                        BrojKupljenihUlaznica = 1,
                        KorisnikID            = k.KorisnikID
                    };

                    await _apiServicePreporuke.Insert <Preporuka>(req1);

                    await _apiServicePreporuke.Insert <Preporuka>(req2);
                }



                MessageBox.Show("Operacija uspjela");
                this.Close();
            }
            else
            {
                MessageBox.Show("Operacija nije uspjela!");
                this.Close();
            }
        }
        public async Task Init()
        {
            IsBusy = true;
            List <Sjedalo> list = await _apiServiceSjedala.Get <List <Sjedalo> >(new SjedalaSearchRequest()
            {
                Oznaka = Oznaka, SektorID = Sektor.SektorID
            });

            Sjedalo = list[0];
            Korisnik k = await _apiServiceKorisnici.GetById <Korisnik>(Korisnik.KorisnikID);

            UlazniceInsertRequest req = new UlazniceInsertRequest()
            {
                DatumKupnje   = DatumKupnje,
                VrijemeKupnje = VrijemeKupnje,
                KorisnikID    = Korisnik.KorisnikID,
                SjedaloID     = Sjedalo.SjedaloID,
                UtakmicaID    = Utakmica.UtakmicaID,
                cijena        = Iznos
            };
            Sjedalo s1 = await _apiServiceSjedala.GetById <Sjedalo>(req.SjedaloID);

            s1.Status = true;
            SjedalaInsertRequest req2 = new SjedalaInsertRequest()
            {
                Oznaka   = s1.Oznaka,
                SektorID = s1.SektorID,
                Status   = s1.Status
            };

            Ulaznica u;

            try
            {
                u = await _apiServiceUlaznice.Insert <Ulaznica>(req);

                await _apiServiceSjedala.Update <dynamic>(req.SjedaloID, req2);

                Barcode = u.barcodeimg;
            }
            catch (Exception)
            {
                throw;
            }
            //SPREMANJE UPLATA

            UplateInsertRequest requestUplate = new UplateInsertRequest()
            {
                Iznos      = Iznos,
                UlaznicaID = u.UlaznicaID
            };

            try
            {
                await _apiServiceUplate.Insert <Uplata>(requestUplate);
            }
            catch (Exception)
            {
                throw;
            }

            //SPREMANJE PREPORUKA
            Utakmica utakmica = await _apiServiceUtakmica.GetById <Utakmica>(req.UtakmicaID);

            var prviTim  = utakmica.DomaciTimID;
            var drugiTim = utakmica.GostujuciTimID;
            List <Preporuka> rezultat = await _apiServicePreporuke.Get <List <Preporuka> >(new PreporukaSearchRequest()
            {
                KorisnikID = k.KorisnikID, PrviTimID = prviTim, DrugiTimID = drugiTim
            });

            if (rezultat.Count == 1)
            {
                rezultat[0].BrojKupljenihUlaznica++;
                PreporukaInsertRequest reqP;
                if (rezultat[0].TimID == prviTim)
                {
                    reqP = new PreporukaInsertRequest
                    {
                        TimID = drugiTim,
                        BrojKupljenihUlaznica = 1,
                        KorisnikID            = k.KorisnikID
                    };
                }
                else
                {
                    reqP = new PreporukaInsertRequest
                    {
                        TimID = prviTim,
                        BrojKupljenihUlaznica = 1,
                        KorisnikID            = k.KorisnikID
                    };
                }


                PreporukaInsertRequest reqPU = new PreporukaInsertRequest
                {
                    TimID                 = rezultat[0].TimID,
                    KorisnikID            = rezultat[0].KorisnikID,
                    BrojKupljenihUlaznica = rezultat[0].BrojKupljenihUlaznica
                };
                await _apiServicePreporuke.Insert <Preporuka>(reqP);

                await _apiServicePreporuke.Update <Preporuka>(rezultat[0].PreporukaID, reqPU);
            }
            else if (rezultat.Count == 2)
            {
                PreporukaInsertRequest req1 = new PreporukaInsertRequest
                {
                    TimID = rezultat[0].TimID,
                    BrojKupljenihUlaznica = ++rezultat[0].BrojKupljenihUlaznica,
                    KorisnikID            = rezultat[0].KorisnikID
                };
                PreporukaInsertRequest req3 = new PreporukaInsertRequest
                {
                    TimID = rezultat[1].TimID,
                    BrojKupljenihUlaznica = ++rezultat[1].BrojKupljenihUlaznica,
                    KorisnikID            = rezultat[1].KorisnikID
                };

                await _apiServicePreporuke.Update <Preporuka>(rezultat[0].PreporukaID, req1);

                await _apiServicePreporuke.Update <Preporuka>(rezultat[1].PreporukaID, req3);
            }
            else//ako je 0
            {
                PreporukaInsertRequest req1 = new PreporukaInsertRequest
                {
                    TimID = prviTim,
                    BrojKupljenihUlaznica = 1,
                    KorisnikID            = k.KorisnikID
                };
                PreporukaInsertRequest req3 = new PreporukaInsertRequest
                {
                    TimID = drugiTim,
                    BrojKupljenihUlaznica = 1,
                    KorisnikID            = k.KorisnikID
                };

                await _apiServicePreporuke.Insert <Preporuka>(req1);

                await _apiServicePreporuke.Insert <Preporuka>(req3);
            }
        }