Beispiel #1
0
        public async Task <IActionResult> AddTransactionToReport([FromBody] RubReportForCreationDto reportDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Идемпотентность
            // Транзакция существует?
            var reportFromRepo = _rep.GetReportTransaction(reportDto.ServiceUpgId,
                                                           reportDto.QpayTransactionId,
                                                           reportDto.ServiceProviderTransactionId);

            if (reportFromRepo != null)
            {
                // Обновить данные транзакции
                reportFromRepo.QpayPayedAt = reportDto.QpayPayedAt;
                reportFromRepo.Status      = reportDto.Status;

                if (!_rep.Save())
                {
                    return(StatusCode(500, "A problem happened with handling your request."));
                }

                var reportToReturn = Mapper.Map <RubReportDto>(reportFromRepo);
                return(CreatedAtRoute("GetRubReport",
                                      new { id = reportToReturn.Id },
                                      reportToReturn));
            }
            else
            {
                // Если нет, то создаем новую
                var reportEntity = Mapper.Map <RubReport>(reportDto);

                reportEntity.Id = Guid.NewGuid();
                _rep.AddTransactionToReport(reportEntity);

                if (!_rep.Save())
                {
                    return(StatusCode(500, "A problem happened with handling your request."));
                }

                var reportToReturn = Mapper.Map <RubReportDto>(reportEntity);
                return(CreatedAtRoute("GetRubReport",
                                      new { id = reportToReturn.Id },
                                      reportToReturn));
            }
        }
Beispiel #2
0
        public IActionResult CreateTypeForDocument([FromBody] CurrencyForCreationDto currency)
        {
            if (currency == null)
            {
                return(BadRequest());
            }

            var currencyEntity = Mapper.Map <Currency>(currency);

            _rep.AddCurrency(currencyEntity);
            if (!_rep.Save())
            {
                return(StatusCode(500, "A problem happened with handling your request."));
            }

            var currencyToReturn = Mapper.Map <CurrencyDto>(currencyEntity);

            return(CreatedAtRoute("GetCurrency",
                                  new { id = currencyToReturn.Id },
                                  currencyToReturn));
        }
Beispiel #3
0
        public async Task <IActionResult> AddRate([FromBody] RateForCreationDto rateDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Если нет, то создаем новую
            var rateEntity = Mapper.Map <CurrencyRate>(rateDto);

            rateEntity.Id = Guid.NewGuid();
            _rep.AddRateForCurrency(rateEntity);

            if (!_rep.Save())
            {
                return(StatusCode(500, "A problem happened with handling your request."));
            }

            var dataToReturn = Mapper.Map <RateDto>(rateEntity);

            return(CreatedAtRoute("GetRate",
                                  new { id = dataToReturn.Id },
                                  dataToReturn));
        }