public async Task <IActionResult> Create([FromBody] CreateContactInfoRequest contactInfoRequest) { var contactInfo = new ContactInfo { ContactId = contactInfoRequest.ContactId, Content = contactInfoRequest.Content, Type = contactInfoRequest.Type, }; await _contactInfoService.CreateAsync(contactInfo); var baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}"; var getLocation = $"{baseUrl}/{APIRoutes.ContactInfoControllerRoutes.Get.Replace("{contactInfoId}", contactInfo.Id.ToString())}"; var contactInfoResponse = new ContactInfoResponse { Id = contactInfo.Id, ContactId = contactInfo.ContactId, Content = contactInfo.Content, Type = contactInfo.Type, }; await _redisCacheService .DeleteCachedResponseAsync( new string[] { HttpContext.Request.Path, APIRoutes.ContactInfoControllerRoutes.GetAll }); return(Created(getLocation, contactInfoResponse)); }
public async Task <IActionResult> Post([FromBody] CreateContactInfoRequest contactInfo) { (bool success, ContactInfoViewModel? vm, RequestError? error) = await new CreateContactInfo(_context).Do(contactInfo); if (!success && error != null) { return(StatusCode((int)error.StatusCode, error.Errors)); } return(Ok(vm)); }
public async Task Create_ShouldReturnCreatedRecord() { // Arrange await AuthenticationAsync(); var createdTestContact = await CreateContactAsync( new CreateContactRequest { FirstName = "Integration", LastName = "Test", CompanyName = "IntegrationTest" }); var createdTestContactInfo1 = new CreateContactInfoRequest { ContactId = createdTestContact.Id, Type = ContactInfoType.Phone, Content = "05350811936" }; // Act var createdTestContactInfoResponse = await httpClient .PostAsJsonAsync( APIRoutes.ContactInfoControllerRoutes.Create, createdTestContactInfo1 ); // Assert createdTestContactInfoResponse.StatusCode.Should().Be(HttpStatusCode.Created); var returnedTestContactInfo = await createdTestContactInfoResponse.Content.ReadAsAsync <ContactInfoResponse>(); returnedTestContactInfo.ContactId.Should().Be(createdTestContactInfo1.ContactId); returnedTestContactInfo.Content.Should().Be(createdTestContactInfo1.Content); returnedTestContactInfo.Type.Should().Be(createdTestContactInfo1.Type); }
protected async Task <ContactInfoResponse> CreateContactInfoAsync(CreateContactInfoRequest request) { var response = await httpClient.PostAsJsonAsync(APIRoutes.ContactInfoControllerRoutes.Create, request); return(await response.Content.ReadAsAsync <ContactInfoResponse>()); }
public async Task <(bool success, ContactInfoViewModel?viewModel, RequestError?error)> Do(CreateContactInfoRequest request) { (bool isValid, List <string> errors) = request.CheckValidity(); if (!isValid) { return(false, null, new RequestError(HttpStatusCode.BadRequest, errors)); } ContactInfo contactInfo = new ContactInfo { FirstName = request.FirstName !, LastName = request.LastName !, Email = request.Email !, Phone = request.Phone, Address = new Address { State = request.Address?.State, ZipCode = request.Address !.ZipCode !, City = request.Address?.City, Street = request.Address?.Street, HouseNumber = request.Address?.HouseNumber, }, }; _context.Add(contactInfo); try { await _context.SaveChangesAsync(); } catch (Exception ex) { await new ErrorLogging(_context).LogError(ErrorMessages.CreateContactInfo, ex, request); return(false, null, new RequestError(HttpStatusCode.InternalServerError, ErrorMessages.DatabaseOperationFailed)); } return(true, new ContactInfoViewModel(contactInfo), null); }
public VoidResponse CreateContactInfo(CreateContactInfoRequest request) { return(Execute <CreateContactInfoRequest, VoidResponse>( request, response => SchoolFacade.CreateContactInfo(request.ContactInfo))); }