public async Task <ChangeProductFrozenStatusResponse> ChangeFrozenStatusAsync(string productId, ChangeProductFrozenStatusRequest request) { var freezeInfo = _convertService.Convert <ProductFreezeInfoContract, ProductFreezeInfo>(request.FreezeInfo); var correlationId = this.TryGetCorrelationId(); if (!request.IsFrozen && request.FreezeInfo != null) { return(new ChangeProductFrozenStatusResponse() { ErrorCode = ProductsErrorCodesContract.CanOnlySetFreezeInfoForFrozenProduct, }); } var result = await _productsService.ChangeFrozenStatus(productId, request.IsFrozen, request.IsForceFreeze(), freezeInfo, request.UserName, correlationId); var response = new ChangeProductFrozenStatusResponse(); if (result.IsFailed) { response.ErrorCode = _convertService.Convert <ProductsErrorCodes, ProductsErrorCodesContract>( result.Error.GetValueOrDefault()); } else { response.Product = _convertService.Convert <Product, ProductContract>(result.Value); } return(response); }
public async Task <ChangeMultipleProductFrozenStatusResponse> ChangeFrozenStatusMultipleAsync( ChangeMultipleProductFrozenStatusRequest request) { var freezeInfo = _convertService.Convert <ProductFreezeInfoContract, ProductFreezeInfo>(request.FreezeParameters .FreezeInfo); var correlationId = this.TryGetCorrelationId(); if (!request.FreezeParameters.IsFrozen && request.FreezeParameters.FreezeInfo != null) { return(new ChangeMultipleProductFrozenStatusResponse { ErrorCode = ProductsErrorCodesContract.CanOnlySetFreezeInfoForFrozenProduct, Results = new Dictionary <string, ChangeProductFrozenStatusResponse>() }); } var response = new ChangeMultipleProductFrozenStatusResponse { Results = new Dictionary <string, ChangeProductFrozenStatusResponse>() }; foreach (var requestProductId in request.ProductIds) { var result = await _productsService.ChangeFrozenStatus(requestProductId, request.FreezeParameters.IsFrozen, request.FreezeParameters.IsForceFreeze(), freezeInfo, request.FreezeParameters.UserName, correlationId); var singleProductResponse = new ChangeProductFrozenStatusResponse(); if (result.IsFailed) { singleProductResponse.ErrorCode = _convertService.Convert <ProductsErrorCodes, ProductsErrorCodesContract>( result.Error.GetValueOrDefault()); } else { singleProductResponse.Product = _convertService.Convert <Product, ProductContract>(result.Value); } response.Results.Add(requestProductId, singleProductResponse); } return(response); }