public async Task <CreateCorrelationPairResponse> CreateAsync(CreateCorrelationPairRequest request)
        {
            var baseCurrency = currencyRepository.FindOneAsync(p => p.IsoCode == request.BaseCurrencyIso.ToUpper()).Result;

            if (baseCurrency == null)
            {
                return(new CreateCorrelationPairResponse()
                       .AddError <CreateCorrelationPairResponse>("Base Currency Not Exits"));
            }

            var quoteCurrency = currencyRepository.FindOneAsync(p => p.IsoCode == request.QuoteCurrencyIso.ToUpper()).Result;

            if (quoteCurrency == null)
            {
                return(new CreateCorrelationPairResponse()
                       .AddError <CreateCorrelationPairResponse>("Quote Currency Not Exits"));
            }

            var command = request.ProjectedAs <CreateCorrelationPairCommand>();

            command.BaseCurrencyId  = baseCurrency.Id;
            command.QuoteCurrencyId = quoteCurrency.Id;

            var response = await mediator.Send(command);

            if (response.IsSuccess)
            {
                unitOfWork.Commit();
            }

            return(response.ProjectedAs <CreateCorrelationPairResponse>());
        }
        public async Task <IActionResult> Create(CreateCorrelationPairRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorResponse()));
            }

            var response = await quotationAppService.CreateAsync(request);

            if (response.Success)
            {
                return(StatusCode(201));
            }
            else
            {
                return(BadRequest(response.Erros));
            }
        }