/// <summary> /// Constructeur /// </summary> /// <param name="nav"></param> /// <param name="ch"></param> public ViewModelChantierPage(INavigation nav, Chantier ch) { Navigation = nav; /* if (ch.Produits == null) * { * Produits = new ObservableCollection<Produit>(); * Produit p1 = new Produit(); * p1.Nom = "Produit 1"; * Produits.Add(p1); * Produit p2 = new Produit(); * p2.Nom = "Produit 2"; * Produits.Add(p2); * Produit p3 = new Produit(); * p3.Nom = "Produit 3"; * Produits.Add(p3); * } * else * { * this.Produits = ch.Produits; * }*/ Chantier = ch; DBChantierProduit db = new DBChantierProduit(); DBProduit dbp = new DBProduit(); List <ChantierProduit> cp = db.GetByChantier(ch.ID); IEnumerable <ChantierProduit> test = db.GetAll(); ch.Produits = new ObservableCollection <Produit>(); foreach (ChantierProduit item in cp) { Produit p = dbp.Get(item.IDProduit); if (p != null) { ch.Produits.Add(p); } } Produits = ch.Produits; }
/// <summary> /// WS chantier callback /// </summary> /// <param name="obj"></param> private void ChantierCallback(IRestResponse obj) { if (obj.StatusCode == System.Net.HttpStatusCode.OK) { WSChantier ws = new WSChantier(); List <Chantier> chantiers = ws.JSONToChantier(obj.Content); DBChantier dbc = new DBChantier(); DBProduit dbp = new DBProduit(); DBChantierProduit dbcp = new DBChantierProduit(); foreach (Chantier c in chantiers) { Chantier chantierFound = dbc.GetByIdServeur(c.IDServeur); if (chantierFound != null) { dbc.UpdateByIdServeur(c); } else { dbc.Add(c); } chantierFound = dbc.GetByIdServeur(c.IDServeur); foreach (Produit produit in c.Produits) { Produit p = dbp.GetByIdServeur(produit.IDServeur); if (p != null) { ChantierProduit chantierproduitFound = dbcp.Get(chantierFound.ID, p.ID); if (chantierproduitFound != null) { chantierproduitFound.IDChantier = chantierFound.ID; chantierproduitFound.IDProduit = p.ID; dbcp.UpdateByIdChantierProduit(chantierproduitFound); } else { dbcp.Add(new ChantierProduit(chantierFound.ID, p.ID)); } } } } IEnumerable <Chantier> allChantiers = dbc.GetAll(); foreach (Chantier item in allChantiers) { bool canDelete = true; foreach (Chantier item2 in chantiers) { if (item.IDServeur == item2.IDServeur) { canDelete = false; break; } } if (canDelete == true) { List <ChantierProduit> cp = dbcp.GetByChantier(item.ID); foreach (ChantierProduit item3 in cp) { dbcp.DeleteByIdChantier(item3.IDChantier); } dbc.Delete(item.ID); } } } }