Пример #1
0
        public async Task <IActionResult> ValidateAsync(CheckCashoutValidityModel model)
        {
            var cashoutModel = model != null ? new CashoutModel
            {
                AssetId            = model.AssetId,
                DestinationAddress = model.DestinationAddress,
                Volume             = model.Amount,
                ClientId           = model.ClientId
            } : null;

            var validationErrors = await _validationService.ValidateAsync(cashoutModel);

            var response = new CashoutValidityResult
            {
                IsAllowed        = (validationErrors?.Count ?? 0) == 0,
                ValidationErrors = validationErrors?.Select(x => ValidationErrorResponse.Create((ValidationErrorType)x.Type, x.Value)),
            };

            return(Ok(response));
        }
        /// <summary>
        /// Checks whether or not cashout to the destination address is allowed
        /// </summary>
        /// <param name="validateCashoutModel"></param>
        /// <returns></returns>
        /// <exception cref="Exception">Is thrown on wrong usage of service.</exception>
        public async Task <(bool isAllowed, IEnumerable <ValidationErrorResponse>)> ValidateCashoutAsync(CheckCashoutValidityModel validateCashoutModel)
        {
            var isAllowed = false;
            IEnumerable <ValidationErrorResponse> validationErrors;

            try
            {
                var response = await _service.CashoutCheckAsync(validateCashoutModel);

                isAllowed        = response.IsAllowed;
                validationErrors = response.ValidationErrors;
            }
            catch (ApiException e)
            {
                var error = GetErrorResponse(e);
                validationErrors = new[] { ValidationErrorResponse.Create(ValidationErrorType.None, error.Message), };
            }

            return(isAllowed, validationErrors);
        }