Ejemplo n.º 1
0
        public void ValidateClientVersion()
        {
            // FIXME - add proxys support

            var hch = new HttpClientHandler();

            using (var client = new HttpClient(hch))
            {
                SetBaseAddress(client, _url);
                Authorize(client);

                var data = new ValidateClientVersionData
                {
                    ClientVersion = ApiVersion.Current.Version,
                    MinServerVersionSupportingClient = ApiVersion.Current.MinServerVersionSupportingClient,
                };

                var result = client.PostAsync(_url + ApiControllerUrl + nameof(ModelsBuilderApiController.ValidateClientVersion),
                                              data, _formatter).Result;

                // this is not providing enough details in case of an error - do our own reporting
                //result.EnsureSuccessStatusCode();
                EnsureSuccess(result);
            }
        }
        [ApiBasicAuthFilter("developer")] // have to use our own, non-cookie-based, auth
        public HttpResponseMessage ValidateClientVersion(ValidateClientVersionData data)
        {
            if (!UmbracoConfig.For.ModelsBuilder().ApiServer)
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden, "API server does not want to talk to you."));
            }

            if (!ModelState.IsValid || data == null || !data.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid data."));
            }

            var checkResult = CheckVersion(data.ClientVersion, data.MinServerVersionSupportingClient);

            return(checkResult.Success
                ? Request.CreateResponse(HttpStatusCode.OK, "OK", Configuration.Formatters.JsonFormatter)
                : checkResult.Result);
        }