예제 #1
0
        public async Task <bool> PostGlobalValue(string name, string type, string description, object value, string username = null, string password = null)
        {
            if (!InputDataTypes.IsValidDataType(type))
            {
                throw new Exception("Global Value " + name + " has invalid type " + type);
            }

            using (HttpClient client = new HttpClient(clientHandler))
            {
                client.BaseAddress = new Uri(_url);

                AuthorizeClientWithUser(client, username, password);

                var response = await client.PostAsync("/api/global-values", new StringContent(JsonConvert.SerializeObject(new
                {
                    name = name,
                    type = type,
                    description = description,
                    value = value
                }), Encoding.UTF8, "application/json"));

                var contents = await response.Content.ReadAsStringAsync();

                if (response.IsSuccessStatusCode)
                {
                    return(true);
                }
                else
                {
                    throw new Exception("Error sending Global Value template request, returned with error " + response.StatusCode);
                }
            }
        }
예제 #2
0
        public async Task <CommandResult <GlobalValue> > Handle(CreateGlobalValueCommand request, CancellationToken cancellationToken)
        {
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            if (!InputDataTypes.IsValidDataType(request.Type))
            {
                throw new InvalidInputTypeException("Input " + request.Type + " is not valid.");
            }

            if (await _entitiesRepository.GetFirstOrDefaultAsync <GlobalValue>(
                    gv => gv.Name == request.Name) != null)
            {
                throw new InvalidGlobalValuesException("The global value name " + request.Name + " is already in-use.");
            }

            var createdGV = new GlobalValue(
                request.Name,
                request.Type,
                request.Description,
                request.Type == InputDataTypes.Secret ? SecurityUtility.SymmetricallyEncrypt((string)request.Value, ClusterStateService.GetEncryptionKey()) : request.Value,
                GlobalValueStatuses.Enabled,
                Guid.NewGuid(),
                request.CreatedBy,
                DateTime.UtcNow
                );

            var result = _node.Handle(new AddShardWriteOperation()
            {
                Operation        = ConsensusCore.Domain.Enums.ShardOperationOptions.Create,
                WaitForSafeWrite = true,
                Data             = createdGV
            });

            stopwatch.Stop();

            return(new CommandResult <GlobalValue>()
            {
                ObjectRefId = createdGV.Id.ToString(),
                ElapsedMs = stopwatch.ElapsedMilliseconds,
                Type = CommandResultTypes.Create,
                Result = createdGV
            });
        }
        public unsafe override void SetInputData(InputDataTypes inputType, InputSmoothingSettings smoothingSettings,
                                                 Pair <float, float>[] steerVsForwardSpeedTable, float accel, float brake, float steer, float handbrake)
        {
            if (steerVsForwardSpeedTable.Length > 8)
            {
                Log.Fatal("PhysXPhysicsVehicle: SetInputData: The amount of steer vs forward speed table item can't be more than 8.");
            }

            if (nativeVehicle != IntPtr.Zero)
            {
                float[] smoothingSettings2 = new float[]
                {
                    smoothingSettings.RiseRateAccel,
                    smoothingSettings.RiseRateBrake,
                    smoothingSettings.RiseRateSteer,
                    smoothingSettings.RiseRateHandbrake,
                    smoothingSettings.FallRateAccel,
                    smoothingSettings.FallRateBrake,
                    smoothingSettings.FallRateSteer,
                    smoothingSettings.FallRateHandbrake
                };

                float[] steerVsForwardSpeedTable2 = new float[steerVsForwardSpeedTable.Length * 2];
                for (int n = 0; n < steerVsForwardSpeedTable.Length; n++)
                {
                    steerVsForwardSpeedTable2[n * 2 + 0] = steerVsForwardSpeedTable[n].First;
                    steerVsForwardSpeedTable2[n * 2 + 1] = steerVsForwardSpeedTable[n].Second;
                }

                fixed(float *pSmoothingSettings = smoothingSettings2, pSteerVsForwardSpeedTable = steerVsForwardSpeedTable2)
                {
                    PhysXNativeVehicle.SetInputData(nativeVehicle, inputType == InputDataTypes.Digital, pSmoothingSettings,
                                                    steerVsForwardSpeedTable.Length, pSteerVsForwardSpeedTable, accel, brake, steer, handbrake);
                }
            }
        }
예제 #4
0
        public unsafe override void SetInputData( InputDataTypes inputType, InputSmoothingSettings smoothingSettings,
			Pair<float, float>[] steerVsForwardSpeedTable, float accel, float brake, float steer, float handbrake )
        {
            if( steerVsForwardSpeedTable.Length > 8 )
                Log.Fatal( "PhysXPhysicsVehicle: SetInputData: The amount of steer vs forward speed table item can't be more than 8." );

            if( nativeVehicle != IntPtr.Zero )
            {
                float[] smoothingSettings2 = new float[]
                {
                    smoothingSettings.RiseRateAccel,
                    smoothingSettings.RiseRateBrake,
                    smoothingSettings.RiseRateSteer,
                    smoothingSettings.RiseRateHandbrake,
                    smoothingSettings.FallRateAccel,
                    smoothingSettings.FallRateBrake,
                    smoothingSettings.FallRateSteer,
                    smoothingSettings.FallRateHandbrake
                };

                float[] steerVsForwardSpeedTable2 = new float[ steerVsForwardSpeedTable.Length * 2 ];
                for( int n = 0; n < steerVsForwardSpeedTable.Length; n++ )
                {
                    steerVsForwardSpeedTable2[ n * 2 + 0 ] = steerVsForwardSpeedTable[ n ].First;
                    steerVsForwardSpeedTable2[ n * 2 + 1 ] = steerVsForwardSpeedTable[ n ].Second;
                }

                fixed( float* pSmoothingSettings = smoothingSettings2, pSteerVsForwardSpeedTable = steerVsForwardSpeedTable2 )
                {
                    PhysXNativeVehicle.SetInputData( nativeVehicle, inputType == InputDataTypes.Digital, pSmoothingSettings,
                        steerVsForwardSpeedTable.Length, pSteerVsForwardSpeedTable, accel, brake, steer, handbrake );
                }
            }
        }