コード例 #1
0
        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"));
        }
コード例 #2
0
ファイル: RequestController.cs プロジェクト: Chators/Digger
        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"));
        }