public ObservableCollection<Artikal> NadjiArtikal(string brojZaPretragu, bool slicnoTrazenje, bool samoSaCenom, bool biloKojiBroj, bool brojProizvodjaca, bool oeBroj, bool korisceniBroj, bool uporedniBroj, bool eanBroj) { List<int> _vrstaBrojaZaPretragu = new List<int>(); #region vrstaBrojaZaPretragu if (!biloKojiBroj) { if (brojProizvodjaca) { _vrstaBrojaZaPretragu.Add(1); } if (oeBroj) { _vrstaBrojaZaPretragu.Add(3); } if (korisceniBroj) { _vrstaBrojaZaPretragu.Add(2); } if (uporedniBroj) { _vrstaBrojaZaPretragu.Add(4); } if (eanBroj) { _vrstaBrojaZaPretragu.Add(5); } } #endregion try { LavDataClassesDataContext _baza = new LavDataClassesDataContext(konekcioniString); ////Da bi izbegao load podataka za tabelu NajpovoljnijiDobavljac koja ne postoji u Bazi ////prvo gasim dlo za sve tabele //_baza.DeferredLoadingEnabled = false; ////a onda dodajem dlo za one koje mi trebaju //DataLoadOptions _dlo = new DataLoadOptions(); //_dlo.LoadWith<Artikal>(p => p.Proizvodjac); //_dlo.LoadWith<Artikal>(p => p.OpisTabela); //_dlo.LoadWith<Artikal>(p => p.VezaArtikalBrojZaPretragus); //_dlo.LoadWith<Artikal>(p => p.VezaArtikalDobavljacs); //_dlo.LoadWith<VezaArtikalDobavljac>(p => p.PoslovniPartner); //_dlo.LoadWith<VezaArtikalDobavljac>(p => p.KorisnikPrograma); //_baza.LoadOptions = _dlo; if (_baza.DatabaseExists()) { ObservableCollection<Artikal> _lista = new ObservableCollection<Artikal>(_baza.uspNadjiArtikal(brojZaPretragu, slicnoTrazenje, samoSaCenom, biloKojiBroj, brojProizvodjaca, oeBroj, korisceniBroj, uporedniBroj, eanBroj).ToList()); //IQueryable<Artikal> _upit = (from a in _baza.Artikals // select a).OrderBy(w => w.Artikal_ID); //if (samoSaCenom) //{ // _upit = (from u in _upit // join c in _baza.VezaArtikalDobavljacs // on u.Artikal_ID equals c.ArtikalID // select u); //} //if (slicnoTrazenje) //{ // if (_vrstaBrojaZaPretragu.Count().Equals(0)) // { // _upit = (from u in _upit // join v in _baza.VezaArtikalBrojZaPretragus // on u.Artikal_ID equals v.Artikal_ID // where v.BrojZaPretragu.Contains(brojZaPretragu) // select u); // } // else if (_vrstaBrojaZaPretragu.Count().Equals(1)) // { // _upit = (from u in _upit // join v in _baza.VezaArtikalBrojZaPretragus // on u.Artikal_ID equals v.Artikal_ID // where v.BrojZaPretragu.Contains(brojZaPretragu) & _vrstaBrojaZaPretragu[0].Equals(v.VrstaBrojaZaPretragu_ID) // select u); // } // else // { // _upit = (from u in _upit // join v in _baza.VezaArtikalBrojZaPretragus // on u.Artikal_ID equals v.Artikal_ID // where v.BrojZaPretragu.Contains(brojZaPretragu) & _vrstaBrojaZaPretragu.Contains(v.VrstaBrojaZaPretragu_ID) // select u); // } //} //else //{ // if (_vrstaBrojaZaPretragu.Count().Equals(0)) // { // _upit = (from u in _upit // join v in _baza.VezaArtikalBrojZaPretragus // on u.Artikal_ID equals v.Artikal_ID // where v.BrojZaPretragu.Equals(brojZaPretragu) // select u); // } // else if (_vrstaBrojaZaPretragu.Count().Equals(1)) // { // _upit = (from u in _upit // join v in _baza.VezaArtikalBrojZaPretragus // on u.Artikal_ID equals v.Artikal_ID // where v.BrojZaPretragu.Equals(brojZaPretragu) & _vrstaBrojaZaPretragu[0].Equals(v.VrstaBrojaZaPretragu_ID) // select u); // } // else // { // _upit = (from u in _upit // join v in _baza.VezaArtikalBrojZaPretragus // on u.Artikal_ID equals v.Artikal_ID // where v.BrojZaPretragu.Equals(brojZaPretragu) & _vrstaBrojaZaPretragu.Contains(v.VrstaBrojaZaPretragu_ID) // select u); // } //} //_upit = (from u in _upit // select u).Take(200);//.Distinct().Take(100); return _lista; } else { throw new Exception("Baza ne postoji."); } } catch (Exception ex) { throw ex; } }