예제 #1
0
        public void GivenISubmitDataEditWithEditIdToProjectExpectingHttpResponseCode(int editId, long pId, int httpCode)
        {
            dynamic doEditRequest = new JObject();

            doEditRequest.ProjectId = pId;
            doEditRequest.Undo      = false;
            doEditRequest.DataEdit  = JToken.FromObject(dataEditContext.DataEdits[editId]);

            editDataRequester.CurrentRequest = doEditRequest;
            editDataResult = editDataRequester.DoRequest(null, expectedHttpCode: (int)HttpStatusCode.BadRequest);
        }
예제 #2
0
        public void GivenISubmitTheFollowingDataEditsToProject(long pId, Gherkin.Ast.DataTable dataTable)
        {
            foreach (var row in dataTable.Rows.Skip(1))
            {
                _ = int.Parse(row.Cells.ElementAt(0).Value);

                dynamic doEditRequest = new JObject();
                doEditRequest.ProjectId = pId;
                doEditRequest.Undo      = false;
                doEditRequest.DataEdit  = JToken.FromObject(dataEditContext.DataEdits[int.Parse(row.Cells.ElementAt(0).Value)]);

                editDataResult = editDataRequester.DoValidRequest(doEditRequest);
            }
        }
예제 #3
0
        protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item)
        {
            try
            {
                var request = CastRequestObjectTo <GetEditDataRequest>(item);
#if RAPTOR
                if (UseTRexGateway("ENABLE_TREX_GATEWAY_EDIT_DATA"))
                {
#endif
                var projectIds = new ProjectIDs(request.ProjectId.Value, request.ProjectUid.Value);
                projectIds.Validate();
                var assetUid = await GetAssetUid(projectIds, request.assetId);

                var parameters = new Dictionary <string, string>
                {
                    { "projectUid", request.ProjectUid.Value.ToString() }
                }
                ;
                if (assetUid.HasValue)
                {
                    parameters.Add("assetUid", assetUid.ToString());
                }
                var queryParams = $"?{new System.Net.Http.FormUrlEncodedContent(parameters).ReadAsStringAsync().Result}";
                var results     = await trexCompactionDataProxy.SendDataGetRequest <TRexEditDataResult>(request.ProjectUid.Value.ToString(), $"/productiondataedit{queryParams}", customHeaders);

                var assetMatches = await GetAssetIds(projectIds, results.DataEdits.Select(d => d.AssetUid).ToList());

                var convertedResults = from d in results.DataEdits select ProductionDataEdit.CreateProductionDataEdit(assetMatches[d.AssetUid], d.StartUtc, d.EndUtc, d.MachineDesignName, d.LiftNumber);

                return(EditDataResult.CreateEditDataResult(convertedResults.ToList()));

#if RAPTOR
            }

            return(ProcessWithRaptor(request));
#endif
            }
            finally
            {
                ContractExecutionStates.ClearDynamic();
            }
        }
예제 #4
0
        private ContractExecutionResult ProcessWithRaptor(GetEditDataRequest request)
        {
            TDesignName[]  designNames;
            TDesignLayer[] layers;

            if (request.assetId == null)
            {
                designNames = raptorClient.GetOverriddenDesigns(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, -1);
                layers      = raptorClient.GetOverriddenLayers(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, -1);
            }
            else
            {
                designNames = raptorClient.GetOverriddenDesigns(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID,
                                                                request.assetId <= 0 ? -1 : (long)request.assetId);
                layers = raptorClient.GetOverriddenLayers(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID,
                                                          request.assetId <= 0 ? -1 : (long)request.assetId);
            }

            return(EditDataResult.CreateEditDataResult(ConvertDataEdits(designNames, layers)));
        }