public async Task <IActionResult> SaveSearchData(int requestId, [FromBody] StringViewModel resultJson) { // on change le status request on le met à 3 await _requestGateway.ChangeStatusRequest(requestId, 3); // recup le project Id RequestData request = await _requestGateway.GetRequestById(requestId); // Verifier que le noeud existe tjrs if (_dGraphGateway.NodeExists(request.ProjectId, request.UidNode)) { List <NodeSearchData> nodesSearchData = JsonConvert.DeserializeObject <List <NodeSearchData> >(resultJson.Key); List <AddNodesToNodeData> nodes = await _dGraphGateway.CreateAddNodesToNodeData(request.ProjectId, request.Author, request.UidNode, nodesSearchData); await _dGraphGateway.AddNodesToNode(request.ProjectId, request.UidNode, nodes); _requestGateway.DeleteRequest(requestId); FluentResults.Result <string> resultNodes = await _dGraphGateway.FindByProjectId(request.ProjectId); // On envoit message à tous les gens du projet string nameProject = await GetProjectName(request.ProjectId); IEnumerable <string> userInProject = await _projectGateway.GetIdUserInProject(request.ProjectId); await _graphHub.ReceiveRequestDoneGiveNewNode(userInProject.ToList(), resultNodes.Value, request.DataEntity); await _projectHub.ReceiveRequestDone(userInProject.ToList(), Convert.ToString(request.ProjectId), request.DataEntity, nameProject); } return(Ok("Request done")); }
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")); }