コード例 #1
0
        public async Task <UserReport> CreateUserReport(CreateUserReportRequest request)
        {
            var baseReport = await CreateBaseReport(request.Subject, request.Content, request.IsPrivate,
                                                    request.EventDate, ReportCategoryType.User);

            if (await database.UserRepository.FindById(request.UserToReportId) == null)
            {
                throw new EntityNotFoundException("User to report not found");
            }

            var userReport = UserReport.Create(baseReport.Id, request.UserToReportId, request.WitnessId);

            userReport.SetReport(baseReport);

            using (var transaction = database.BeginTransaction().Transaction)
            {
                if (!await database.ReportRepository.Insert(baseReport, false))
                {
                    throw new DatabaseException();
                }

                if (!await database.UserReportRepository.Insert(userReport, false))
                {
                    throw new DatabaseException();
                }

                transaction.Complete();
            }

            await reportImageService.UploadReportImages(httpContextReader.CurrentUserId,
                                                        baseReport,
                                                        request.Images);

            return(userReport);
        }
コード例 #2
0
        public void SetUp()
        {
            createOtherReportRequest = new CreateOtherReportRequest();
            createUserReportRequest  = new CreateUserReportRequest
            {
                UserToReportId = 1
            };
            createPenaltyReportRequest = new CreatePenaltyReportRequest();
            createBugReportRequest     = new CreateBugReportRequest();

            creator = new User();

            database           = new Mock <IDatabase>();
            reportImageService = new Mock <IReportImageService>();
            httpContextReader  = new Mock <IHttpContextReader>();

            database.Setup(d => d.UserRepository.FindById(It.IsAny <int>())).ReturnsAsync(creator);
            database.Setup(d => d.ReportRepository.Insert(It.IsAny <Report>(), false))
            .ReturnsAsync(true);
            database.Setup(d => d.BugReportRepository.Insert(It.IsAny <BugReport>(), false))
            .ReturnsAsync(true);
            database.Setup(d => d.PenaltyReportRepository.Insert(It.IsAny <PenaltyReport>(), false))
            .ReturnsAsync(true);
            database.Setup(d => d.UserReportRepository.Insert(It.IsAny <UserReport>(), false))
            .ReturnsAsync(true);
            database.Setup(d => d.BeginTransaction()).Returns(new DatabaseTransaction());

            reportService = new ReportService(database.Object, reportImageService.Object, httpContextReader.Object);
        }
コード例 #3
0
        public async Task <IActionResult> CreateUserReport([FromForm] CreateUserReportRequest request)
        {
            var response = await mediator.Send(request);

            Log.Information($"User #{HttpContext.GetCurrentUserId()} created user report");

            return(this.CreateResponse(response));
        }
コード例 #4
0
        public void SetUp()
        {
            report  = new UserReport();
            request = new CreateUserReportRequest();

            var mapper = new Mock <IMapper>();

            reportService = new Mock <IReportService>();
            reportManager = new Mock <IReportManager>();

            reportService.Setup(rs => rs.CreateUserReport(It.IsAny <CreateUserReportRequest>()))
            .ReturnsAsync(report);
            mapper.Setup(m => m.Map <UserReportDto>(It.IsAny <UserReport>())).Returns(new UserReportDto());

            createUserReportCommnad =
                new CreateUserReportCommnad(reportService.Object, reportManager.Object, mapper.Object);
        }