/// <inheritdoc />
        public async Task <int> ExecuteAsync(
            GetOrAddIdentifiedSerializerRepresentationOp operation)
        {
            var syncResult = this.Execute(operation);

            return(await Task.FromResult(syncResult));
        }
示例#2
0
        static GetOrAddIdentifiedSerializerRepresentationOpTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <GetOrAddIdentifiedSerializerRepresentationOp>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'serializationFormat' is SerializationFormat.Invalid scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <GetOrAddIdentifiedSerializerRepresentationOp>();

                    var result = new GetOrAddIdentifiedSerializerRepresentationOp(
                        referenceObject.SpecifiedResourceLocator,
                        referenceObject.SerializerRepresentation,
                        SerializationFormat.Invalid);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "serializationFormat", "Invalid" },
            });
        }
        public int Execute(
            GetOrAddIdentifiedSerializerRepresentationOp operation)
        {
            var sqlLocator = this.TryGetLocator(operation);

            var configType = this.GetIdsAddIfNecessaryType(
                sqlLocator,
                operation.SerializerRepresentation.SerializationConfigType.ToWithAndWithoutVersion());

            var storedProcOp = StreamSchema.Sprocs.GetIdAddIfNecessarySerializerRepresentation.BuildExecuteStoredProcedureOp(
                this.Name,
                configType,
                operation.SerializerRepresentation.SerializationKind,
                operation.SerializationFormat,
                operation.SerializerRepresentation.CompressionKind,
                UnregisteredTypeEncounteredStrategy.Attempt);

            var sqlProtocol = this.BuildSqlOperationsProtocol(sqlLocator);
            var sprocResult = sqlProtocol.Execute(storedProcOp);
            var result      = sprocResult.OutputParameters[nameof(StreamSchema.Sprocs.GetIdAddIfNecessarySerializerRepresentation.OutputParamName.Id)]
                              .GetValueOfType <int>();

            return(result);
        }