public async Task<bool> getSessionCookieAsync()
        {
            Debug.WriteLine("I'm here");
            HttpClient request = null;
            HttpResponseMessage response = null;
            HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post,
                                         ApplicationModel.Current.Domain + "/claroline/auth/login.php");

            Debug.WriteLine("Message : " + message.ToString());
            CallbackArgs args = new CallbackArgs() { login = ApplicationModel.Current.Login, password = ApplicationModel.Current.Password, operation = AllowedOperations.authenticate };
            StringContent content = new StringContent(args.ToString());
            content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/x-www-form-urlencoded");
            message.Content = content;

            request = getClient();
            response = await request.SendAsync(message);

            Debug.WriteLine("getSessionCookie : " + response.StatusCode);

            bool empty = String.IsNullOrEmpty(await response.Content.ReadAsStringAsync());
            if (empty)
            {
                CookieCreation = DateTime.Now;
            }
            Debug.WriteLine("empty : " + empty.ToString());
            return empty;
        }
        public async Task<string> makeOperationAsync(AllowedOperations op, Cours reqCours = null, int resID = -1)
        {
            if (ApplicationModel.Current.IsConnected)
            {
                if (!isExpired || (await getSessionCookieAsync()))
                {
                    CallbackArgs args = null;
                    switch (op)
                    {
                        case AllowedOperations.getSingleAnnounce:
                            if (reqCours == null && resID < 0)
                            {
                                return "";
                            }
                            args = new CallbackArgs() { cidReq = reqCours, resId = resID, operation = op };
                            break;
                        case AllowedOperations.getCourseToolList:
                        case AllowedOperations.getDocList:
                        case AllowedOperations.getAnnounceList:
                            if (reqCours == null)
                            {
                                return "";
                            }
                            args = new CallbackArgs() { cidReq = reqCours, operation = op };
                            break;
                        case AllowedOperations.getUserData:
                        case AllowedOperations.getCourseList:
                        case AllowedOperations.getUpdates:
                            args = new CallbackArgs() { operation = op };
                            break;
                    }

                    HttpResponseMessage response = null;
                    HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post,
                                                 ApplicationModel.Current.Domain + ApplicationModel.Current.WebServicePath);
                    
                    StringContent content = new StringContent(args.ToString());
                    content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/x-www-form-urlencoded");
                    message.Content = content;
                    HttpClient request = getClient();
                    response = await request.SendAsync(message);
                    String result = await response.Content.ReadAsStringAsync();

                    Debug.WriteLine("Fin de la méthode " + op.ToString() + " : " + result);
                    return result;
                }
            }
                //TODO tell the user the network is unavailable
                return "";

        }