public ComplexCalculationResult CalculateMutiple(ComplexCalculationContext context)
        {
            var results = new List <CalculationResult>();

            results.AddRange(context.Calculations.Select(c => new CalculationResult {
                Result = c.A + c.B + 1
            }));
            return(new ComplexCalculationResult
            {
                Results = results.ToArray()
            });
        }
        public async Task <ComplexCalculationResult> CalculateMutipleAsync(ComplexCalculationContext context)
        {
            var results = new List <CalculationResult>();

            results.AddRange(context.Calculations.Select(c => new CalculationResult {
                Result = c.A + c.B + 1
            }));

            await Task.Delay(2500);

            return(new ComplexCalculationResult
            {
                Results = results.ToArray()
            });
        }
        public Task <CalculationResponseModel> CalculateMultiple(CalculationRequestMultiModel requestModel)
        {
            // Ever more complex objects are serialized correctly
            var calculationContext = new ComplexCalculationContext
            {
                Calculations = requestModel.Calculations.Select(c => new CalculationContext {
                    A = c.A, B = c.B
                }).ToArray()
            };

            return(Task.FromResult(new CalculationResponseModel
            {
                Result = _plugin.CalculateMutiple(calculationContext).Results.Sum(r => r.Result)
            }));
        }
        protected async Task <CalculationResponseModel> CalculateMultipleAsync(CalculationRequestMultiModel requestModel)
        {
            // Ever more complex objects are serialized correctly
            var calculationContext = new ComplexCalculationContext
            {
                Calculations = requestModel.Calculations.Select(c => new CalculationContext {
                    A = c.A, B = c.B
                }).ToArray()
            };

            return(new CalculationResponseModel
            {
                Result = (await _plugin.CalculateMutipleAsync(calculationContext)).Results.Sum(r => r.Result)
            });
        }
        public async Task <CalculationResponseModel> CalculateMultiple(CalculationRequestMultiModel requestModel)
        {
            var plugin = await _loader.Load();

            // Ever more complex objects are serialized correctly
            var calculationContext = new ComplexCalculationContext
            {
                Calculations = requestModel.Calculations.Select(c => new CalculationContext {
                    A = c.A, B = c.B
                }).ToArray()
            };

            return(new CalculationResponseModel
            {
                Result = plugin.CalculateMutiple(calculationContext).Results.Sum(r => r.Result)
            });
        }