public void zemiNasokaZaEdit()
        {
            try
            {
                INasokaEditView _viewNasoka = (INasokaEditView)_view;

                Oblast oblastObj = new Oblast();
                Nasoka nasokaObj = new Nasoka();

                RezultatKomanda rezultat = nasokaDB.getNasoka(_viewNasoka.ID_Nasoka_Edit_Selected, ref nasokaObj);
                if (rezultat.Rezultat == RezultatKomandaEnum.Uspeh)
                {
                    _viewNasoka.nacrtajFormaZaEditNasoka(nasokaObj);

                    //_viewNasoka.InfoPoraka = "Pregled na nasoka";
                }
                else if (rezultat.Rezultat == RezultatKomandaEnum.Neuspeh)
                {
                    _viewNasoka.ErrorPoraka = rezultat.Pricina;
                }
                else if (rezultat.Rezultat == RezultatKomandaEnum.Greska)
                {
                    _viewNasoka.ErrorPoraka = "Greska pri edit nasoka";
                }
            }
            catch (Exception ex)
            {
                //Greska vo pregled nasoki
                throw ex;
            }
        }
        public MaterijaliGrupirani(Nasoka nasoka, Predmet predmet,bool poDelovi)
        {
            this._materijali = new LinkedList<Materijal>();
            this._deloviMaterijali = new LinkedList<DelMaterijali>();

            this.Nasoka = nasoka;
            this.Predmet = predmet;
            this.PoDelovi = poDelovi;
        }
        public MaterijaliGrupirani(int NasokaID, String NasokaIme, int PredmetID, String PredmetIme,bool poDelovi)
        {
            this._materijali = new LinkedList<Materijal>();
            this._deloviMaterijali = new LinkedList<DelMaterijali>();

            this._nasoka = new Nasoka();
            this._nasoka.NasokaID = NasokaID;
            this._nasoka.Ime = NasokaIme;

            this._predmet = new Predmet();
            this._predmet.PredmetID = PredmetID;
            this._predmet.Ime = PredmetIme;

            this.PoDelovi = poDelovi;
        }
        public RezultatKomanda getMaterijali(int NasokaID, int PredmetID, int? DeloviID, ref MaterijaliGrupirani grupiranMaterijali)
        {
            RezultatKomanda rezultat = new RezultatKomanda(false);
            try
            {
                parametriKomanda = new LinkedList<SqlParameter>();

                parametriKomanda.Clear();


                //Parametar za @Nasoka_ID  = NasokaID
                //Input Parametar
                SqlParam = new SqlParameter("@Nasoka_ID", SqlDbType.Int);
                SqlParam.Value = NasokaID;
                parametriKomanda.AddLast(SqlParam);

                //Parametar za @Predmet_ID  = PredmetID
                //Input Parametar
                SqlParam = new SqlParameter("@Predmet_ID", SqlDbType.Int);
                SqlParam.Value = PredmetID;
                parametriKomanda.AddLast(SqlParam);

                if (DeloviID != null)
                {
                    //Parametar za @Delovi_ID  = DeloviID
                    //Input Parametar
                    SqlParam = new SqlParameter("@Delovi_ID", SqlDbType.Int);
                    SqlParam.Value = DeloviID;
                    parametriKomanda.AddLast(SqlParam);

                }
                dsKomanda = BazaDB.GetDataSet(parametriKomanda.ToArray(), "sp_PodigniMaterijaliPoDelovi", sqlCn: null);


                if (dsKomanda.Tables.Count > 0 && dsKomanda.Tables[0].Rows.Count > 0)
                {
                    Nasoka tekNasoka = new Nasoka();
                    tekNasoka.NasokaID = BazaDB.DataRowVoInt(dsKomanda.Tables[0].Rows[0], "NA_NasokaID");
                    tekNasoka.Ime = BazaDB.DataRowVoString(dsKomanda.Tables[0].Rows[0], "NA_NasokaIme");
                    
                    Del tekovenDel;
                    Materijal materijalObj;
                    if (DeloviID != null)
                    {
                        grupiranMaterijali = new MaterijaliGrupirani(tekNasoka, new Predmet(PredmetID), true);
                       
                    }
                    else
                    {
                        grupiranMaterijali = new MaterijaliGrupirani(tekNasoka, new Predmet(PredmetID), false);
                    }

           
                    foreach (DataRow red in dsKomanda.Tables[0].Rows)
                    {
                        materijalObj = new Materijal();
                        
                        materijalObj.MaterijalID = BazaDB.DataRowVoInt(red, "M_MaterijalID");
                        materijalObj.Naslov = BazaDB.DataRowVoString(red, "M_Naslov");
                        materijalObj.DodadenOd = BazaDB.DataRowVoString(red, "M_DodadenOD");
                        materijalObj.DodadenNa = BazaDB.DataRowVoDateTime(red, "M_DodadenNa");
                        materijalObj.Opis = BazaDB.DataRowVoString(red, "M_Opis");
                        materijalObj.Pateka = BazaDB.DataRowVoString(red, "M_Pateka");
                        materijalObj.Slika = BazaDB.DataRowVoString(red, "M_Slika");
                        materijalObj.Aktiven = BazaDB.DataRowVoChar(red, "M_Aktiven");
                        materijalObj.Type = BazaDB.DataRowVoString(red, "M_Type");
                        materijalObj.Prevzemen = BazaDB.DataRowVoInt(red, "Prevzemen");
                        materijalObj.DobarRejting = BazaDB.DataRowVoInt(red, "DobarRejting");
                        materijalObj.LosRejting = BazaDB.DataRowVoInt(red, "LosRejting");

                        if (DeloviID != null)
                        {
                            tekovenDel = new Del(BazaDB.DataRowVoInt(red, "DEL_ID"), BazaDB.DataRowVoString(red, "DEL_Ime"), ' ');
                            tekovenDel.Vid_Izgled = BazaDB.DataRowVoInt(red, "DEL_Vid_Izgled");
                            grupiranMaterijali.DodadiMaterijalPoDel(tekovenDel, materijalObj);
                        }
                        else
                        {
                            grupiranMaterijali.DodadiSamoMaterijal(materijalObj);
                        }
                    }

                    rezultat.Rezultat = RezultatKomandaEnum.Uspeh;
                }
                else
                {
                    //Nema nitu eden materijal
                    rezultat.Rezultat = RezultatKomandaEnum.Neuspeh;
                    rezultat.Pricina = "Nema materijali";
                }
                return rezultat;
            }
            catch (Exception ex)
            {    
                rezultat.Rezultat = RezultatKomandaEnum.Neuspeh;
                rezultat.Pricina = ex.Message;
                return rezultat;
            }
        }
 public void nacrtajPregled1Nasoka(Nasoka nasokaObj)
 {
     this.lblNasokaIme.Text = nasokaObj.Ime;
     this.txtBoxNasokaOpis_Pregled.Text = nasokaObj.Opis;
 }
        public RezultatKomanda getNasokiPoOblast(int Oblast_ID, ref List<Nasoka> nasokiLista)
        {
            RezultatKomanda rezultat = new RezultatKomanda(false);
            try
            {
                parametriKomanda = new LinkedList<SqlParameter>();

                parametriKomanda.Clear();

                //Parametar za @Oblast_ID = Oblast_ID
                //Input Parametar
                SqlParam = new SqlParameter("@Oblast_ID", SqlDbType.Int);
                SqlParam.Value = Oblast_ID;
                parametriKomanda.AddLast(SqlParam);

                dsKomanda = BazaDB.GetDataSet(parametriKomanda.ToArray(), "sp_PodigniNasoki8", sqlCn: null);

                if (dsKomanda.Tables.Count > 0 && dsKomanda.Tables[0].Rows.Count > 0)
                {
                    nasokiLista = new List<Nasoka>();
                    foreach (DataRow red in dsKomanda.Tables[0].Rows)
                    {

                        Nasoka nasokaObj = new Nasoka();
                        nasokaObj.NasokaID = BazaDB.DataRowVoInt(red, "ID");
                        nasokaObj.Oblast_ID = BazaDB.DataRowVoInt(red, "Oblast_ID");
                        nasokaObj.Ime = BazaDB.DataRowVoString(red, "Ime");
                        nasokaObj.Opis = BazaDB.DataRowVoString(red, "Opis");


                        nasokiLista.Add(nasokaObj);
                    }

                    rezultat.Rezultat = RezultatKomandaEnum.Uspeh;
                }
                else
                {
                    //Nema nitu edna nasoka
                    rezultat.Rezultat = RezultatKomandaEnum.Neuspeh;
                    rezultat.Pricina = "Nema Nasoki";
                }
                return rezultat;
            }
            catch (Exception ex)
            {
                rezultat.Rezultat = RezultatKomandaEnum.Neuspeh;
                rezultat.Pricina = ex.Message;
                return rezultat;
            }
        }
        /// <summary>
        /// Prebaruvanje na nasoka spored ID
        /// </summary>
        /// <param name="ID">ID na nasoka koja se prebaruva.</param>
        /// <param name="nasokaObj">NasokaObj objekt koj se menuva po referenca.</param>
        /// <returns></returns>
        public RezultatKomanda getNasoka(int ID, ref Nasoka nasokaObj)
        {
            RezultatKomanda rezultat = new RezultatKomanda(false);
            dsKomanda = null;
            try
            {
                parametriKomanda = new LinkedList<SqlParameter>();

                parametriKomanda.Clear();

                //Parametar za @ID  = ID
                //Input Parametar
                SqlParam = new SqlParameter("@ID", SqlDbType.Int);
                SqlParam.Value = ID;
                parametriKomanda.AddLast(SqlParam);

                dsKomanda = BazaDB.GetDataSet(parametriKomanda.ToArray(), "sp_PodigniNasoka1", sqlCn: null);
                if (dsKomanda.Tables.Count > 0 && dsKomanda.Tables[0].Rows.Count > 0)
                {
                    DataRow red = dsKomanda.Tables[0].Rows[0];

                    nasokaObj = new Nasoka();
                    nasokaObj.NasokaID = BazaDB.DataRowVoInt(red, "ID");
                    nasokaObj.Oblast_ID = BazaDB.DataRowVoInt(red, "Oblast_ID");
                    nasokaObj.Ime = BazaDB.DataRowVoString(red, "Ime");
                    nasokaObj.Opis = BazaDB.DataRowVoString(red, "Opis");
                    rezultat.Rezultat = RezultatKomandaEnum.Uspeh;
                }
                else
                {
                    rezultat.Pricina = "Ne postoi takva nasoka - ID";
                    rezultat.Rezultat = RezultatKomandaEnum.Neuspeh;
                }
                return rezultat;
            }
            catch (Exception ex)
            {
                rezultat.Pricina = ex.Message;
                rezultat.Rezultat = RezultatKomandaEnum.Neuspeh;
                return rezultat;
            }

        }
  /// <summary>
  /// Brisenje na nasoka od baza.
  /// </summary>
  /// <param name="nasokaObj">Nasoka koja treba da bide izbrisana.</param>
  /// <returns>Ishod od brisenje na nasoka.</returns>
  public RezultatKomanda deleteNasoka(Nasoka nasokaObj)
  {
      RezultatKomanda rezultat = new RezultatKomanda(false);
 
      try
      {
          if (nasokaObj != null)
          {
              rezultat = deleteNasoka(nasokaObj.NasokaID);
          }
          return rezultat;
      }
      catch (Exception ex)
      {
          rezultat.Rezultat = RezultatKomandaEnum.Neuspeh;
          rezultat.Pricina = ex.Message;
          return rezultat;
      }
  }
 /// <summary>
 /// Ureduvanje na nasoka
 /// </summary>
 /// <param name="nasokaObj">Objekt koj kje bide ureden.</param>
 /// <returns>Ishod od ureduvanjeto na nasoka.</returns>
 public RezultatKomanda updateNasoka(Nasoka nasokaObj)
 {
     RezultatKomanda rezultat = new RezultatKomanda(false);
     dsKomanda = null;
     try
     {
         if (nasokaObj != null)
         {
             rezultat = updateNasoka(nasokaObj.NasokaID, nasokaObj.Oblast_ID, nasokaObj.Ime, nasokaObj.Opis);
         }
         return rezultat;
     }
     catch (Exception ex)
     {
         rezultat.Rezultat = RezultatKomandaEnum.Neuspeh;
         rezultat.Pricina = ex.Message;
         return rezultat;
     }
 }
        public void nacrtajFormaZaEditNasoka(Nasoka nasokaObj)
        {
            this.textBoxID_Nasoka_Edit.Text = nasokaObj.NasokaID.ToString();
            this.textBoxID_Nasoka_Edit.Enabled = false;
            this.textBoxIme_Nasoka_Edit.Text = nasokaObj.Ime;
            this.textBoxOpis_Nasoka_Edit.Text = nasokaObj.Opis;
            foreach (object cbObj in cBoxNasokiIzborEdit.Items)
            {

                if (cbObj is Oblast)
                {
                    if (((Oblast)cbObj).OblastID== nasokaObj.Oblast_ID)
                    {
                        this.cBoxNasokiIzborEdit.SelectedItem = cbObj;
                        break;
                    }
                }
            }

        }
        public void pregled1Nasoka()
        {
            try
            {
                INasokaPregled1View _viewNasoka = (INasokaPregled1View)_view;
               Nasoka nasokaObj = new Nasoka();

               RezultatKomanda rezultat = nasokaDB.getNasoka(_viewNasoka.ID_Nasoka_Pregled1_Selected,ref nasokaObj);
                if (rezultat.Rezultat == RezultatKomandaEnum.Uspeh)
                {
                    _viewNasoka.nacrtajPregled1Nasoka(nasokaObj);

                    _viewNasoka.InfoPoraka = "Pregled na nasoka";
                }
                else if (rezultat.Rezultat == RezultatKomandaEnum.Neuspeh)
                {
                    _viewNasoka.ErrorPoraka = rezultat.Pricina;
                }
                else if (rezultat.Rezultat == RezultatKomandaEnum.Greska)
                {
                    _viewNasoka.ErrorPoraka = "Greska pri pregled nasoka";
                }
            }
            catch (Exception ex)
            {
                //Greska vo pregled nasoki
                throw ex;
            }
        }
 public DeloviPredmetNasoka()
 {
     _delObj = new Del();
     _predmetObj = new Predmet();
     _nasokaObj = new Nasoka();
 }
        LiteralControl nacrtajNasoka(Nasoka nasokaObj)
        {

            StringBuilder sb = new StringBuilder();
            string klasa = "";
            if (this.ID_Nasoka_NasokaFilter_Selected == nasokaObj.NasokaID)
            {
                klasa = "Selected";
            }
            sb.Append("<div id=\"NasokaIzbor\" class=\"" + klasa + "\">");             
            sb.Append("<span id=\"NasokaIme\">");
            sb.Append(nasokaObj.Ime);
            sb.Append("</span><br />");
            sb.Append("<span id=\"NasokaOpis\">");
            sb.Append(nasokaObj.Opis);
            sb.Append("</span>");
            sb.Append("</div>");
            return new LiteralControl("<a href=\"PredmetiStudent.aspx?InstID=" + this.ID_Institucija_Izbor_Selected + "&UstID=" + this.ID_Ustanova_UstanovaFilter_Selected + "&OblID=" + this.ID_Oblast_OblastFilter_Selected + "&NasID="+ nasokaObj.NasokaID +"\">" + sb.ToString() + "</a>");
        }