示例#1
0
        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)));
        }
示例#2
0
        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
            });
        }