public static void Insert(PitanjaKategorije p)
 {
     using (dataContext dt = new dataContext())
     {
         dt.PitanjaKategorije.Add(p);
         dt.SaveChanges();
     }
 }
        protected void Spasi_btn_Click(object sender, EventArgs e)
        {
            if (GrupaPitanjaId > 0)
            {
                if (string.IsNullOrEmpty(Pitanje_txt.Text) || string.IsNullOrEmpty(Odgovor1_txt.Text) || string.IsNullOrEmpty(Odgovor2_txt.Text))
                {
                    divdanger.InnerHtml = "<b>Upozorenje!</b> Pitanje, bar jedan tačan i jedan netačan odgovor su obavezna polja!";
                    divdanger.Attributes["class"] = "alert alert-danger alert-dismissible noMarginLeft";
                    Danger_div.Visible = true;
                    Success_div.Visible = false;
                }
                else
                {
                    List<int> kategorijeValidation = new List<int>();
                    foreach (RepeaterItem dataItem in Repeater1.Items)
                    {
                        kategorijeValidation.Add(Convert.ToInt32(((DropDownList)dataItem.FindControl("kategorijeList")).SelectedValue));
                    }

                    if (kategorijeValidation.Count != kategorijeValidation.Distinct().Count())
                    {
                        divdanger.InnerHtml = "<b>Upozorenje!</b> Pitanje ne može pripadati više puta u istu kategoriju!";
                        divdanger.Attributes["class"] = "alert alert-danger alert-dismissible noMarginLeft";
                        Danger_div.Visible = true;
                        Success_div.Visible = false;
                    }
                    else
                    {
                    if ((string.IsNullOrEmpty(Odgovor1_txt.Text) == false && Odgovor1_checkbox.Checked) || (string.IsNullOrEmpty(Odgovor2_txt.Text) == false && Odgovor2_checkbox.Checked)
                        || (string.IsNullOrEmpty(Odgovor3_txt.Text) == false && Odgovor3_checkbox.Checked) || (string.IsNullOrEmpty(Odgovor4_txt.Text) == false && Odgovor4_checkbox.Checked))
                    {

                        try
                        {
                            novoPitanje = new Pitanja();
                            novoPitanje.Pitanje = Pitanje_txt.Text;
                            novoPitanje.GrupaPitanjaId = GrupaPitanjaId;
                            novoPitanje.DatumDodavanja = DateTime.Now;
                            novoPitanje.Status = 1;

                            int brojacMultichoice = 0;

                            if (Odgovor1_checkbox.Checked)
                                brojacMultichoice++;
                            if (Odgovor2_checkbox.Checked)
                                brojacMultichoice++;
                            if (Odgovor3_checkbox.Checked)
                                brojacMultichoice++;
                            if (Odgovor4_checkbox.Checked)
                                brojacMultichoice++;
                            if (Odgovor5_checkbox.Checked)
                                brojacMultichoice++;

                            if (brojacMultichoice > 1)
                                novoPitanje.Multichoice = 1;
                            else
                                novoPitanje.Multichoice = 0;

                            //dodavanje slike
                            if (Slike.HasFiles)
                                DodajSlike();

                            //dodavanje pitanja
                            int idPitanja = DAPitanja.Insert(novoPitanje);

                            //odgovori na pitanje
                            Odgovori noviOdgovor1 = new Odgovori();
                            Odgovori noviOdgovor2 = new Odgovori();
                            Odgovori noviOdgovor3;
                            Odgovori noviOdgovor4;
                            Odgovori noviOdgovor5;

                            noviOdgovor1.Odgovor = Odgovor1_txt.Text;
                            noviOdgovor1.PitanjeId = idPitanja;
                            if (Odgovor1_checkbox.Checked)
                                noviOdgovor1.Tacan = 1;
                            else
                                noviOdgovor1.Tacan = 0;
                            DAOdgovori.Insert(noviOdgovor1);

                            noviOdgovor2.Odgovor = Odgovor2_txt.Text;
                            noviOdgovor2.PitanjeId = idPitanja;
                            if (Odgovor2_checkbox.Checked)
                                noviOdgovor2.Tacan = 1;
                            else
                                noviOdgovor2.Tacan = 0;
                            DAOdgovori.Insert(noviOdgovor2);

                            if (Odgovor3_txt.Text.Count() > 1)
                            {
                                noviOdgovor3 = new Odgovori();
                                noviOdgovor3.Odgovor = Odgovor3_txt.Text;
                                noviOdgovor3.PitanjeId = idPitanja;
                                if (Odgovor3_checkbox.Checked)
                                    noviOdgovor3.Tacan = 1;
                                else
                                    noviOdgovor3.Tacan = 0;
                                DAOdgovori.Insert(noviOdgovor3);
                            }

                            if (Odgovor4_txt.Text.Count() > 1)
                            {
                                noviOdgovor4 = new Odgovori();
                                noviOdgovor4.Odgovor = Odgovor4_txt.Text;
                                noviOdgovor4.PitanjeId = idPitanja;
                                if (Odgovor4_checkbox.Checked)
                                    noviOdgovor4.Tacan = 1;
                                else
                                    noviOdgovor4.Tacan = 0;
                                DAOdgovori.Insert(noviOdgovor4);
                            }

                            if (Odgovor5_txt.Text.Count() > 1)
                            {
                                noviOdgovor5 = new Odgovori();
                                noviOdgovor5.Odgovor = Odgovor5_txt.Text;
                                noviOdgovor5.PitanjeId = idPitanja;
                                if (Odgovor5_checkbox.Checked)
                                    noviOdgovor5.Tacan = 1;
                                else
                                    noviOdgovor5.Tacan = 0;
                                DAOdgovori.Insert(noviOdgovor5);
                            }

                            foreach (RepeaterItem dataItem in Repeater1.Items)
                            {
                                PitanjaKategorije pk = new PitanjaKategorije();
                                pk.KategorijaId = Convert.ToInt32(((DropDownList)dataItem.FindControl("kategorijeList")).SelectedValue);
                                pk.PitanjeId = idPitanja;
                                DAPitanjaKategorije.Insert(pk);
                            }

                            Danger_div.Visible = false;
                            Success_div.Visible = true;
                        }
                        catch (Exception)
                        {
                            divdanger.InnerHtml = "<b>Upozorenje!</b> Pitanje, bar jedan tačan i jedan netačan odgovor su obavezna polja!";
                            divdanger.Attributes["class"] = "alert alert-danger alert-dismissible noMarginLeft";
                            Success_div.Visible = false;
                            Danger_div.Visible = true;
                        }

                    }
                    else
                    {
                        Danger_div.Visible = true;
                        Success_div.Visible = false;

                    }
                  }
                }
            }
            else
            {

            }
        }
        protected void Spasi_btn_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(Pitanje_txt.Text) || string.IsNullOrEmpty(Odgovor1_txt.Text) || string.IsNullOrEmpty(Odgovor2_txt.Text))
            {
                dangerdiv.InnerHtml = "<b>Upozorenje!</b> Pitanje, bar jedan tačan i jedan netačan odgovor su obavezna polja!";
                dangerdiv.Attributes["class"] = "alert alert-danger";
                Danger_div.Visible = true;
                Success_div.Visible = false;
            }
            else
            {
                List<int> kategorijeValidation = new List<int>();
                foreach (RepeaterItem dataItem in Repeater2.Items)
                {
                    kategorijeValidation.Add(Convert.ToInt32(((DropDownList)dataItem.FindControl("kategorijeList")).SelectedValue));
                }

                if (kategorijeValidation.Count != kategorijeValidation.Distinct().Count())
                {
                    dangerdiv.InnerHtml = "<b>Upozorenje!</b> Pitanje ne može pripadati više puta u istu kategoriju!";
                    dangerdiv.Attributes["class"] = "alert alert-danger";
                    Danger_div.Visible = true;
                    Success_div.Visible = false;
                }
                else
                {
                    if ((string.IsNullOrEmpty(Odgovor1_txt.Text) == false && Odgovor1_checkbox.Checked) || (string.IsNullOrEmpty(Odgovor2_txt.Text) == false && Odgovor2_checkbox.Checked)
                        || (string.IsNullOrEmpty(Odgovor3_txt.Text) == false && Odgovor3_checkbox.Checked) || (string.IsNullOrEmpty(Odgovor4_txt.Text) == false && Odgovor4_checkbox.Checked) || (string.IsNullOrEmpty(Odgovor5_txt.Text) == false && Odgovor5_checkbox.Checked))
                    {

                        try
                        {
                            int brojac = 0;

                            novoPitanje.Pitanje = Pitanje_txt.Text;

                            if (novoPitanje.Multichoice == 0)
                            {
                                if (string.IsNullOrEmpty(Odgovor3_txt.Text) == false || string.IsNullOrEmpty(Odgovor4_txt.Text) == false || string.IsNullOrEmpty(Odgovor5_txt.Text) == false)
                                novoPitanje.Multichoice = 1;
                            }

                            //dodavanje slike
                            if (Slike.HasFiles)
                                DodajSlike();

                            //update pitanja
                            DAPitanja.Update(novoPitanje);

                            //odgovori na pitanje
                            Odgovori noviOdgovor3;
                            Odgovori noviOdgovor4;
                            Odgovori noviOdgovor5;

                            listaOdgovora[0].Odgovor = Odgovor1_txt.Text;
                            if (Odgovor1_checkbox.Checked)
                                listaOdgovora[0].Tacan = 1;
                            else
                                listaOdgovora[0].Tacan = 0;
                            DAOdgovori.Update(listaOdgovora[0]);

                            listaOdgovora[1].Odgovor = Odgovor2_txt.Text;
                            if (Odgovor2_checkbox.Checked)
                                listaOdgovora[1].Tacan = 1;
                            else
                                listaOdgovora[1].Tacan = 0;
                            DAOdgovori.Update(listaOdgovora[1]);

                            if (Odgovor3_txt.Text.Count() > 1)
                            {
                                if(listaOdgovora.Count() >= 3)
                                {
                                    listaOdgovora[2].Odgovor = Odgovor3_txt.Text;
                                    if (Odgovor3_checkbox.Checked)
                                        listaOdgovora[2].Tacan = 1;
                                    else
                                        listaOdgovora[2].Tacan = 0;
                                    DAOdgovori.Update(listaOdgovora[2]);
                                }
                                else
                                {
                                    noviOdgovor3 = new Odgovori();
                                    noviOdgovor3.Odgovor = Odgovor3_txt.Text;
                                    noviOdgovor3.PitanjeId = novoPitanje.PitanjeId;
                                    if (Odgovor3_checkbox.Checked)
                                        noviOdgovor3.Tacan = 1;
                                    else
                                        noviOdgovor3.Tacan = 0;
                                    DAOdgovori.Insert(noviOdgovor3);
                                }
                            }
                            else
                            {
                                if (listaOdgovora.Count() >= 3)
                                {
                                    Odgovor3_txt.Text = listaOdgovora[2].Odgovor;
                                    if (listaOdgovora[2].Tacan == 1)
                                        Odgovor3_checkbox.Checked = true;
                                    else
                                        Odgovor3_checkbox.Checked = false;

                                    dangerdiv.InnerHtml = "<b>Upozorenje!</b> Nije moguće brisati već postojeće odgovore na pitanje!";
                                    dangerdiv.Attributes["class"] = "alert alert-danger";
                                    Success_div.Visible = false;
                                    Danger_div.Visible = true;
                                    brojac++;
                                }
                            }

                            if (Odgovor4_txt.Text.Count() > 1)
                            {
                                if (listaOdgovora.Count() >= 4)
                                {
                                    listaOdgovora[3].Odgovor = Odgovor4_txt.Text;
                                    if (Odgovor4_checkbox.Checked)
                                        listaOdgovora[3].Tacan = 1;
                                    else
                                        listaOdgovora[3].Tacan = 0;
                                    DAOdgovori.Update(listaOdgovora[3]);
                                }
                                else
                                {
                                    noviOdgovor4 = new Odgovori();
                                    noviOdgovor4.Odgovor = Odgovor4_txt.Text;
                                    noviOdgovor4.PitanjeId = novoPitanje.PitanjeId;
                                    if (Odgovor4_checkbox.Checked)
                                        noviOdgovor4.Tacan = 1;
                                    else
                                        noviOdgovor4.Tacan = 0;
                                    DAOdgovori.Insert(noviOdgovor4);
                                }
                            }
                            else
                            {
                                if (listaOdgovora.Count() >= 4)
                                {
                                    Odgovor4_txt.Text = listaOdgovora[3].Odgovor;
                                    if (listaOdgovora[3].Tacan == 1)
                                        Odgovor4_checkbox.Checked = true;
                                    else
                                        Odgovor4_checkbox.Checked = false;

                                    dangerdiv.InnerHtml = "<b>Upozorenje!</b> Nije moguće brisati već postojeće odgovore na pitanje!";
                                    dangerdiv.Attributes["class"] = "alert alert-danger";
                                    Success_div.Visible = false;
                                    Danger_div.Visible = true;
                                    brojac++;
                                }
                            }

                            if (Odgovor5_txt.Text.Count() > 1)
                            {
                                if (listaOdgovora.Count() >= 5)
                                {
                                    listaOdgovora[4].Odgovor = Odgovor5_txt.Text;
                                    if (Odgovor5_checkbox.Checked)
                                        listaOdgovora[4].Tacan = 1;
                                    else
                                        listaOdgovora[4].Tacan = 0;
                                    DAOdgovori.Update(listaOdgovora[4]);
                                }
                                else
                                {
                                    noviOdgovor5 = new Odgovori();
                                    noviOdgovor5.Odgovor = Odgovor5_txt.Text;
                                    noviOdgovor5.PitanjeId = novoPitanje.PitanjeId;
                                    if (Odgovor5_checkbox.Checked)
                                        noviOdgovor5.Tacan = 1;
                                    else
                                        noviOdgovor5.Tacan = 0;
                                    DAOdgovori.Insert(noviOdgovor5);
                                }
                            }
                            else
                            {
                                if (listaOdgovora.Count() >= 5)
                                {
                                    Odgovor5_txt.Text = listaOdgovora[4].Odgovor;
                                    if (listaOdgovora[4].Tacan == 1)
                                        Odgovor5_checkbox.Checked = true;
                                    else
                                        Odgovor5_checkbox.Checked = false;

                                    dangerdiv.InnerHtml = "<b>Upozorenje!</b> Nije moguće brisati već postojeće odgovore na pitanje!";
                                    dangerdiv.Attributes["class"] = "alert alert-danger";
                                    Success_div.Visible = false;
                                    Danger_div.Visible = true;
                                    brojac++;
                                }

                            }

                            //brisanje kategorija

                            foreach (int pitkat in listaPitanjaKategorijeRemove)
                            {
                                DAPitanjaKategorije.Delete(pitkat);
                            }

                            listaPitanjaKategorijeRemove.Clear();

                            //kategorije
                            foreach (RepeaterItem dataItem in Repeater2.Items)
                            {
                                bool pronadjeno = false;

                                foreach (PitanjaKategorije p in novoPitanje.PitanjaKategorije)
                                {
                                    if(p.KategorijaId == Convert.ToInt32(((DropDownList)dataItem.FindControl("kategorijeList")).SelectedValue))
                                        pronadjeno = true;
                                }

                                if(pronadjeno == false)
                                {
                                    PitanjaKategorije pk = new PitanjaKategorije();
                                    pk.KategorijaId = Convert.ToInt32(((DropDownList)dataItem.FindControl("kategorijeList")).SelectedValue);
                                    pk.PitanjeId = novoPitanje.PitanjeId;
                                    DAPitanjaKategorije.Insert(pk);
                                    novoPitanje.PitanjaKategorije.Add(pk);
                                }
                            }

                            if(brojac == 0)
                            {
                                Danger_div.Visible = false;
                                Success_div.Visible = true;
                            }
                        }
                        catch (Exception)
                        {
                            dangerdiv.InnerHtml = "<b>Upozorenje!</b> Desila se greška!";
                            dangerdiv.Attributes["class"] = "alert alert-danger";
                            Success_div.Visible = false;
                            Danger_div.Visible = true;
                        }

                    }
                    else
                    {
                        dangerdiv.InnerHtml = "<b>Upozorenje!</b> Pitanje, minimalno jedna kategorija, minimalno jedan tačan i jedan netačan odgovor su obavezna polja!";
                        dangerdiv.Attributes["class"] = "alert alert-danger";
                        Danger_div.Visible = true;
                        Success_div.Visible = false;
                    }
                }
            }
        }
        protected void removeKat_Click(object sender, EventArgs e)
        {
            string id = ((Button)sender).CommandArgument;

            if (kategorijeBroj > 1)
            {
                if (id.Count() > 0)
                {
                    PitanjaKategorije removeItem = new PitanjaKategorije();

                    foreach (PitanjaKategorije p in novoPitanje.PitanjaKategorije)
                    {
                        if (id == p.PitanjaKategorijaId.ToString())
                        {
                            removeItem = p;
                        }
                    }

                    novoPitanje.PitanjaKategorije.Remove(removeItem);
                    listaPitanjaKategorijeRemove.Add(removeItem.PitanjaKategorijaId);
                    kategorijeBroj--;
                }
                else
                    kategorijeBroj--;

                BindDdlKategorije();
            }
            else if (kategorijeBroj == 1)
            {
                if (id.Count() > 0)
                {
                    PitanjaKategorije removeItem = new PitanjaKategorije();

                    foreach (PitanjaKategorije p in novoPitanje.PitanjaKategorije)
                    {
                        if (id == p.PitanjaKategorijaId.ToString())
                        {
                            removeItem = p;
                        }
                    }

                    novoPitanje.PitanjaKategorije.Remove(removeItem);
                    listaPitanjaKategorijeRemove.Add(removeItem.PitanjaKategorijaId);

                    BindDdlKategorije();
                }
            }
        }