Exemple #1
0
        public async Task <IActionResult> Deploy([FromBody] BonitaInstantiationModel data)
        {
            var user     = config["bonita:user"];
            var password = config["bonita:password"];
            var proccess = config["bonita:proccess"];
            var service  = new BonitaService();
            var response = await service.Deploy(data, user, password, proccess);

            return(this.Result(response.Code, response));
        }
Exemple #2
0
        public async Task <ResponseBase <BonitaOrdenResponse> > Deploy(BonitaInstantiationModel data, string user, string password, string proccess)
        {
            var baseUrl   = "http://10.39.1.135:8080";
            var authUrl   = $"{baseUrl}/bonita/loginservice?username={user}&password={password}&redirect=false";
            var instUrl   = $"{baseUrl}/bonita/API/bpm/process/{proccess}/instantiation";
            var container = new CookieContainer();
            var handler   = new HttpClientHandler()
            {
                CookieContainer = container
            };
            var bonita        = new BonitaSession();
            var cookie        = new BonitaSession.BonitaCookie();
            var response      = new ResponseBase <BonitaOrdenResponse>();
            var authenticated = false;

            using (var client = new HttpClient(handler))
            {
                var formcontent = bonita.GetFormContentLogin(user, password);
                var uri         = new Uri(authUrl);
                var result      = client.PostAsync(authUrl, new FormUrlEncodedContent(formcontent)).Result;

                if (result.IsSuccessStatusCode)
                {
                    bonita.SetCookie(authUrl, container);
                    authenticated = true;
                }
                else
                {
                    response.Code    = (int)result.StatusCode;
                    response.Message = "Bonita Error";
                }
            }

            if (authenticated)
            {
                using (var client = new HttpClient())
                {
                    var jsonBody = JsonConvert.SerializeObject(data);
                    var content  = new StringContent(jsonBody, Encoding.UTF8, "application/json");

                    content.Headers.Add("Cookie", bonita.Cookies.Cookie);
                    content.Headers.Add("X-Bonita-API-Token", bonita.Cookies.Token);

                    var instantiation = client.PostAsync(instUrl, content).Result;
                    if (instantiation.IsSuccessStatusCode)
                    {
                        var json      = instantiation.Content.ReadAsStringAsync().Result;
                        var serialize = JsonConvert.DeserializeObject <BonitaOrdenResponse>(json);

                        response.Code = Status.Ok;
                        response.Data = serialize;
                    }
                    else
                    {
                        response.Code    = (int)instantiation.StatusCode;
                        response.Message = instantiation.Content.ToString();
                    }
                }
            }

            return(await Task.Run(() => response));
        }