public MessageCoreVm Index()
        {
            // objet config
            var config = new JObject() as dynamic;

            // baseUrl : stocke le path absolu
            config.baseUrl = Url.Content("~/");

            // 3 - Nombre de résultats maximal
            config.nbMaxRow = ConfigurationManager.AppSettings.Get("sql.maxcount");

            return(MessageCoreVm.SendSucces <JObject>(config));
        }
        public MessageCoreVm Filter(AnnuaireFilterVm msgVm)
        {
            // Lorsque un utilisateur clique sur l'onglet mes activité ou lorsqu'il accède à cette page via l'url la view est vide

            List <Practicien> listPracticien = new List <Practicien>();

            PracticienBll practicienBll = new PracticienBll();

            // Lecture des critères de filtre depuis la vm
            Dictionary <Practicien.Criteria, object> dicoFilter = msgVm.GetDicoFilter(AnnuaireFilterVm.MapCriteriaVm);

            // Chargement des activités
            listPracticien = practicienBll.Filter(dicoFilter);

            // Transformation en Vm
            List <ListPracticiensVillesVm> listVm = listPracticien.Select((a) => ListPracticiensVillesVm.Load(a)).ToList();

            // Message json
            return(MessageCoreVm.SendSucces <List <ListPracticiensVillesVm> >(listVm));
        }
        /// <summary>
        /// Si une exception est lancée depuis un controller
        /// </summary>
        /// <param name="filterContext">Contexte du filtre</param>
        public override void OnException(HttpActionExecutedContext filterContext)
        {
            if (filterContext == null)
            {
                throw new ArgumentNullException("filterContext est null");
            }

            // création du message
            ErrorVm errorVm = ErrorVm.LoadException(filterContext.Exception);

            // init du message succes=false
            MessageCoreVm msg = new MessageCoreVm()
            {
                ErrorObject = errorVm,
                Success     = false
            };

            // création de la réponse
            filterContext.Response = filterContext.Request.CreateResponse(HttpStatusCode.OK, msg);
        }