예제 #1
0
        public object GETIDOBJET([FromUri] int IDTYPEOBJET, [FromUri] string NOMOBJET)
        {
            using (A_MAP_OFEntities context = new A_MAP_OFEntities())
            {
                IEnumerable <int> SelectQuery;

                SelectQuery = (from r in context.OBJET      // Les objets ...
                               where r.NOM == NOMOBJET && // ...dont le nom contient les termes saisis par l'utilisateur,
                               r.IDTYPEOBJET == IDTYPEOBJET // ...et pour le type donné
                               select r.IDOBJET);

                var resultat = Generic.Call_Read_FirstOrDefault <int>(SelectQuery);

                // Si l'objet n'existe pas

                if ((int)resultat == 0)
                {
                    // Création

                    OBJET mObjet = new OBJET();
                    mObjet.IDTYPEOBJET = IDTYPEOBJET;
                    mObjet.NOM         = NOMOBJET;

                    context.OBJET.Add(mObjet);

                    // Enregistrement effectif

                    try
                    {
                        Generic.SaveChanges(context);
                    }
                    catch (HttpResponseException ex)
                    {
                        string LibelleErreur = ex.Response.ReasonPhrase.Replace(System.Environment.NewLine, "");
                        var    resp          = new HttpResponseMessage(HttpStatusCode.ExpectationFailed)
                        {
                            ReasonPhrase = LibelleErreur
                        };
                        throw new HttpResponseException(resp);
                    };

                    resultat = mObjet.IDOBJET;
                }

                return(new { resultat });
            }
        }
예제 #2
0
        public object Post([FromBody] Objet_POST[] obj_from_javascript)
        {
            List <int> IDOBJETs = new List <int>();

            // Suppression des éventuelles doublons

            var obj_from_javascriptSD = obj_from_javascript
                                        .GroupBy(i => new { i.IDTYPEOBJETVUE, i.NOM })
                                        .Select(g => g.First());

            // Création des objets

            using (A_MAP_OFEntities context = new A_MAP_OFEntities())
            {
                // Pour chacun des objets uniques à créer

                foreach (Objet_POST mObjet_POST in obj_from_javascriptSD)
                {
                    // Recherche si l'objet est éventuellement déjà existant en base

                    IEnumerable <int> SelectQuery;

                    SelectQuery = (from r in context.OBJET
                                   where r.NOM == mObjet_POST.NOM &&
                                   r.IDTYPEOBJET == mObjet_POST.IDTYPEOBJETVUE
                                   select r.IDOBJET);

                    var resultat = Generic.Call_Read_FirstOrDefault <int>(SelectQuery);

                    // Si non

                    if ((int)resultat == 0)
                    {
                        // Création

                        OBJET mObjet = new OBJET();
                        mObjet.IDTYPEOBJET = mObjet_POST.IDTYPEOBJETVUE;
                        mObjet.NOM         = mObjet_POST.NOM;

                        context.OBJET.Add(mObjet);

                        // Enregistrement effectif

                        try
                        {
                            Generic.SaveChanges(context);
                        }
                        catch (HttpResponseException ex)
                        {
                            string LibelleErreur = ex.Response.ReasonPhrase.Replace(System.Environment.NewLine, "");
                            var    resp          = new HttpResponseMessage(HttpStatusCode.ExpectationFailed)
                            {
                                ReasonPhrase = LibelleErreur
                            };
                            throw new HttpResponseException(resp);
                        };

                        // Récupération de l'id

                        IDOBJETs.Add(mObjet.IDOBJET);
                    }    // Fin de test de préexistence de l'objet
                    else // si l'objet existe déjà, son id actuel est stocké
                    {
                        IDOBJETs.Add((int)resultat);
                    }
                } // Fin de boucle sur les objets
            }     // Fin using

            return(new { IDOBJETS = IDOBJETs });
        } // Fin de méthode