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); } } }
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")); }