Beispiel #1
0
 public Task <ContractExecutionResult> RemoveDataEdit([FromBody] TRexEditData request)
 {
     Log.LogInformation($"{nameof(RemoveDataEdit)}: {JsonConvert.SerializeObject(request)}");
     request.Validate();
     return(WithServiceExceptionTryExecuteAsync(() => RequestExecutorContainer
                                                .Build <RemoveEditDataExecutor>(ConfigStore, LoggerFactory, ServiceExceptionHandler)
                                                .ProcessAsync(request)));
 }
Beispiel #2
0
 private void CheckValidDataEdit(TRexEditData actual, Guid assetUid, DateTime startDate, DateTime endDate, string designName, int?liftNumber)
 {
     Assert.Equal(assetUid, actual.AssetUid);
     Assert.Equal(startDate, actual.StartUtc);
     Assert.Equal(endDate, actual.EndUtc);
     Assert.Equal(designName, actual.MachineDesignName);
     Assert.Equal(liftNumber, actual.LiftNumber);
 }
Beispiel #3
0
        protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item)
        {
            try
            {
                var request = CastRequestObjectTo <EditDataRequest>(item);
                //Note: request.dataEdit should only be null for a global undo. This is checked in request model validation
                //so the following should never happen. But just in case...
                if (request.dataEdit == null && !request.undo)
                {
                    return(new ContractExecutionResult(ContractExecutionStatesEnum.InternalProcessingError, "No data edit to perform"));
                }

#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.dataEdit.assetId);

                var trexRequest = new TRexEditData(assetUid ?? Guid.Empty, request.dataEdit.startUTC, request.dataEdit.endUTC, request.dataEdit.onMachineDesignName, request.dataEdit.liftNumber);
                var trexResult  = await trexCompactionDataProxy.SendDataDeleteRequest <ContractExecutionResult, TRexEditData>(trexRequest, "/productiondataedit", customHeaders, true);

                if (trexResult.Code != ContractExecutionStatesEnum.ExecutedSuccessfully)
                {
                    throw new ServiceException(HttpStatusCode.BadRequest, trexResult);
                }

                return(trexResult);

#if RAPTOR
            }

            return(ProcessWithRaptor(request));
#endif
            }
            finally
            {
                ContractExecutionStates.ClearDynamic();
            }
        }