public KlantViewModel(IDuraFactViewModel parent, ISession session)
        {
            Parent = parent;
            _session = session;
            _facade = new DuraFactFacade(_session);
            _zoekKlant = new Klant(string.Empty, string.Empty, string.Empty, new Adres());

            Zoek();
        }
 public KlantDetailViewModel(IDuraFactViewModel parent, ISession session, Klant klant)
 {
     Parent = parent;
     _session = session;
     Klant = klant;
     _facade = new DuraFactFacade(_session);
     if (string.IsNullOrEmpty(klant.Naam)) _nieuweKlant = true;
     FacturenVanKlant = new ObservableCollection<SelectedEntityModel<Factuur>>(_facade.GetFacturenVanKlant(klant).Select(f => new SelectedEntityModel<Factuur>(f)));
     OffertesVanKlant = new ObservableCollection<SelectedEntityModel<Offerte>>(_facade.ZoekOffertesVanKlant(klant).Select(f => new SelectedEntityModel<Offerte>(f)));
 }
 public IList<Klant> ZoekKlant(Klant klant)
 {
     var klantmodel = KlantModel.Current(_session).ToList();
     if (!string.IsNullOrEmpty(klant.Naam))
         klantmodel = klantmodel.Where(k => k.Naam.ToLower().Contains(klant.Naam.ToLower())).ToList();
     if (!string.IsNullOrEmpty(klant.Voornaam))
         klantmodel = klantmodel.Where(k => k.Voornaam.ToLower().Contains(klant.Voornaam.ToLower())).ToList();
     if (!string.IsNullOrEmpty(klant.BTWNummer))
         klantmodel = klantmodel.Where(k => string.Compare(k.BTWNummer, klant.BTWNummer, true) == 0).ToList();
     if (klant.Adres != null && !string.IsNullOrEmpty(klant.Adres.Straat))
         klantmodel = klantmodel.Where(k => string.Compare(k.Adres.Straat, klant.Adres.Straat, true) == 0).ToList();
     if (klant.Adres != null && !string.IsNullOrEmpty(klant.Adres.Huisnummer))
         klantmodel = klantmodel.Where(k => string.Compare(k.Adres.Huisnummer, klant.Adres.Huisnummer, true) == 0).ToList();
     if (klant.Adres != null && !string.IsNullOrEmpty(klant.Adres.Postcode))
         klantmodel = klantmodel.Where(k => string.Compare(k.Adres.Postcode, klant.Adres.Postcode, true) == 0).ToList();
     if (klant.Adres != null && !string.IsNullOrEmpty(klant.Adres.Gemeente))
         klantmodel = klantmodel.Where(k => string.Compare(k.Adres.Gemeente, klant.Adres.Gemeente, true) == 0).ToList();
     return klantmodel;
 }
        public IList<Offerte> ZoekOffertesVanKlant(Klant klant)
        {
            if (string.IsNullOrEmpty(klant.Naam))
                return new List<Offerte>();

            var offerteLocatie = ConfigurationManager.AppSettings["Offertes"];
            var dir = new DirectoryInfo(offerteLocatie);

            var offertesVanKlant = new List<Offerte>();

            foreach (var offertes in from yearDir in dir.GetDirectories()
                                     let firstLetter = klant.Naam.Substring(0, 1)
                                     select yearDir.GetDirectories(firstLetter + "*")
                                         into letterDir
                                         where letterDir.Count() != 0
                                         let searchPattern =
                                            string.Format("{0}_{1}_*", klant.Naam.ToUpper(), klant.Voornaam.ToUpper())
                                         select letterDir[0].GetFiles(searchPattern))
                offertes.Select(file => new Offerte(file)).ToList().ForEach(offertesVanKlant.Add);
            return offertesVanKlant;
        }
 public IList<Factuur> GetFacturenVanKlant(Klant klant)
 {
     var found = FactuurModel.Current(_session);
     return found.Where(factuur => factuur.Klant.Equals(klant)).ToList();
 }
 private void Reset()
 {
     ZoekKlant = new Klant(string.Empty, string.Empty, string.Empty, new Adres());
 }
 public void NieuweKlant()
 {
     var klant = new Klant(string.Empty, string.Empty, string.Empty, new Adres());
     Parent.ChangeViewModel(DuraFactPage.KlantDetail, klant);
 }