Example #1
0
        public async Task <HttpResponseMessage> RunSoftware(StartRequestViewModel model, int requestId)
        {
            string url       = _options.Value.Url + "Software/Search";
            string jsonModel = Json.Serialize <StartRequestViewModel>(model);

            using (HttpClient client = new HttpClient())
                using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, new Uri(url)))
                {
                    request.Content = new StringContent(jsonModel, Encoding.UTF8, "application/json");
                    request.Headers.Add("Authorization", string.Format("Bearer {0}", _tokenService.GenerateToken()));

                    using (HttpResponseMessage response = await client.SendAsync(request))
                    {
                        return(response);
                    }
                }
        }
Example #2
0
        public async Task <IActionResult> StartRequest(int projectId, [FromBody] StartRequestViewModel model)
        {
            if (model.Softwares.Count <= 0)
            {
                return(BadRequest("Software needed"));
            }

            if (!HttpContext.User.IsInRole("admin"))
            {
                EnumProjectAccessRight projectAccessRight = await _getAccessUser.GetUserAccessRightProject(Convert.ToInt32(HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)), projectId);

                if (projectAccessRight != EnumProjectAccessRight.Worker || projectAccessRight != EnumProjectAccessRight.Admin)
                {
                    return(StatusCode(403, "Access Denied !"));
                }
            }

            Result <int> createRequest = await _requestGateway.CreateRequest(1, projectId, model.DataEntity, model.UidNode, HttpContext.User.Identity.Name);

            if (createRequest.ErrorMessage == "Already research with this date exists")
            {
                return(BadRequest(createRequest.ErrorMessage));
            }

            model.RequestId = createRequest.Content;
            HttpResponseMessage response = await _diggosService.RunSoftware(model, createRequest.Content);

            if (!response.IsSuccessStatusCode)
            {
                await _requestGateway.ChangeStatusRequest(createRequest.Content, 5);

                return(StatusCode(502, "Error on diggos"));
            }

            Result <bool> statusRequestSuccess = await _requestGateway.ChangeStatusRequest(createRequest.Content, 2);

            return(Ok("Request started"));
        }