예제 #1
0
        /// <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;
        }
예제 #2
0
        /// <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);
                    }
                }
            }
        }