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)); } }
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)); }
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)); }