/// <summary>
        /// - Post a user
        /// - Enable a free trial
        /// - returns its available features
        /// </summary>
        public static List<FeatureV2> PostTrial(string keyOffer, string keyUser, string nameUser, int? lcid = null, bool forced = false)
        {
            List<FeatureV2> result = null;

            // build the url
            var url = LtbUrl.Build(LtbResource.Trial, keyUser);
            if(forced)
                url += "?forced=true";

            // build the deal to send
            var dealToSend = new DealV2
            {
                KeyOffer = keyOffer,
                KeyUser = keyUser,
                NameUser = nameUser,
                LcidUser = (lcid ?? LtbConstants.LcidDefault)
            };

            // create the request and send it
            var response = RequestFluent.Create(url)
                .Method(HttpVerbs.Post)
                .SendJson(dealToSend);

            // if succeeded
            if(response.HasBody)
                // return that content
                result = response.GetBodyAsJson<List<FeatureV2>>();

            // manage failures
            ManageFailures(response);

            return result;
        }
        /// <summary>
        /// - Post a user
        /// - Enable a free trial
        /// - returns its available features
        /// </summary>
        public ResponseEx TryPostTrial(string keyOffer, string keyUser, string nameUser, int? lcid, out List<FeatureV2> features)
        {
            ResponseEx result = null;
            features = null;

            // build the url
            string messageError;
            var url = LtbUrl.TryBuild(out messageError, LtbResource.Trial, keyUser);

            // if succeeded
            if(string.IsNullOrEmpty(messageError))
            {
                // build the deal to send
                var dealToSend = new DealV2
                                     {
                                         KeyOffer = keyOffer,
                                         KeyUser = keyUser,
                                         NameUser = nameUser,
                                         LcidUser = (lcid ?? LtbConstants.LcidDefault)
                                     };

                // create the request and send it
                result = RequestFluent.Create(url)
                    .ContentType(LtbConstants.Json)
                    .BasicAuthentication(LtbConstants.KeyBusiness, LtbConstants.KeyApi)
                    .Method(HttpVerbs.Post)
                    .SendJson(dealToSend);

                // if we have a response
                if((result != null)
                    // with a body
                    && (result.HasBody))
                {
                    // get the content from the response body
                    features = result.GetBodyAsJson<List<FeatureV2>>();
                }
            }
            // if url building failed
            else
                result = ResponseEx.Failure(url, messageError);

            return result;
        }