コード例 #1
0
    public async Task <IActionResult> UpdateAsync(int id, [FromBody] InquiryDto input)
    {
        // Map.
        var inquiry = _mapper.Map <InquiryFull>(input);

        inquiry.Id = id;

        InquiryFull inquiry_existing = await _inquiryRepository.GetByIdAsync(id);

        if (inquiry_existing.Attribution.Creator == input.Reviewer)
        {
            throw new AuthorizationException();
        }

        // Act.
        await _inquiryRepository.UpdateAsync(inquiry);

        // FUTURE: Does this make sense?
        // Only when this item was rejected can we move into
        // a pending state after update.
        if (inquiry.State.AuditStatus == AuditStatus.Rejected)
        {
            // Transition.
            inquiry.State.TransitionToPending();

            // Act.
            await _inquiryRepository.SetAuditStatusAsync(inquiry.Id, inquiry);
        }

        // Return.
        return(NoContent());
    }
コード例 #2
0
ファイル: ReportStub.cs プロジェクト: Laixer/FunderMaps
        public static async Task DeleteInquiryAsync(BackendFixtureFactory factory, InquiryDto inquiry)
        {
            // Arrange
            using var client = factory.CreateClient(OrganizationRole.Superuser);

            // Act
            var response = await client.DeleteAsync($"api/inquiry/{inquiry.Id}");

            // Assert
            Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
        }
コード例 #3
0
 public IActionResult RespondToInquiry(InquiryDto dto)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     try
     {
         _inquiryService.RespondeToInquiry(dto);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
コード例 #4
0
    public async Task <IActionResult> CreateAsync([FromBody] InquiryDto input)
    {
        // Map.
        var inquiry = _mapper.Map <InquiryFull>(input);

        if (_appContext.UserId == input.Reviewer)
        {
            throw new AuthorizationException();
        }

        // Act.
        inquiry = await _inquiryRepository.AddGetAsync(inquiry);

        // Map.
        var output = _mapper.Map <InquiryDto>(inquiry);

        // Return.
        return(Ok(output));
    }
コード例 #5
0
 public void RespondeToInquiry(InquiryDto dto)
 {
     _mailService.SendInquiryResponseEmail(dto.email, dto.name, dto.response, dto.inquiry, dto.createdOn.ToString());
     _repositoryFactory.InquiryRepository.UpdateInquiry(dto.id);
     _logger.LogInformation("Inquiry Response Sent");
 }
コード例 #6
0
ファイル: ReportStub.cs プロジェクト: Laixer/FunderMaps
        public static async Task <InquirySampleDto> CreateInquirySampleAsync(BackendFixtureFactory factory, InquiryDto inquiry)
        {
            using var client = factory.CreateClient(OrganizationRole.Writer);
            var newObject = new InquirySampleDtoFaker()
                            .RuleFor(f => f.Address, f => "gfm-351cc5645ab7457b92d3629e8c163f0b")
                            .Generate();

            // Act
            var response = await client.PostAsJsonAsync($"api/inquiry/{inquiry.Id}/sample", newObject);

            var returnObject = await response.Content.ReadFromJsonAsync <InquirySampleDto>();

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal(inquiry.Id, returnObject.Inquiry);
            Assert.Equal(newObject.Address, returnObject.Address);

            return(returnObject);
        }