public async Task <IActionResult> PostNewNameSearch([FromBody] NewNameSearchRequestDto details) { User user; using (var client = new HttpClient()) { var accessToken = await HttpContext.GetTokenAsync("access_token"); client.SetBearerToken(accessToken); var response = await client.GetAsync("https://localhost:5001/connect/userinfo"); if (response.IsSuccessStatusCode) { var userDetailsFromAuth = await response.Content.ReadAsStringAsync(); user = JsonConvert.DeserializeObject <User>(userDetailsFromAuth); } else { return(Unauthorized()); } } return(Created("", await _nameSearchService.CreateNewNameSearchAsync(user.Sub, details))); }
public async Task <SubmittedNameSearchResponseDto> NewNameSearchAsync( NewNameSearchRequestDto newNameSearchRequestDto) { var response = await _client.PostAsJsonAsync("name/submit", newNameSearchRequestDto); if (response.IsSuccessStatusCode) { return(await response.Content.ReadAsAsync <SubmittedNameSearchResponseDto>()); } return(null); }
public async Task <SubmittedNameSearchResponseDto> CreateNewNameSearchAsync(Guid user, NewNameSearchRequestDto dto) { var application = new Application(user, EService.NameSearch, EApplicationStatus.Submitted, dto.SortingOffice); var nameSearch = _mapper.Map <NewNameSearchRequestDto, Fridge.Models.Main.NameSearch>(dto); application.NameSearch = nameSearch; var transaction = await _context.Database.BeginTransactionAsync(); try { await _context.AddAsync(application); await _context.SaveChangesAsync(); application.NameSearch.Reference = $"NS/{nameSearch.NameSearchId}"; Guid payment; try { payment = await _paymentsService.BillAsync(EService.NameSearch, user, nameSearch.Reference); } catch (Exception e) { Console.WriteLine(e); throw; } application.Payment = payment; await _context.SaveChangesAsync(); await transaction.CommitAsync(); } catch (Exception e) { await transaction.RollbackAsync(); throw; } // TODO: verify if SaveChangesSuccessful return(new SubmittedNameSearchResponseDto { Id = application.ApplicationId, NameSearch = nameSearch.NameSearchId, Reference = nameSearch.Reference }); }