예제 #1
0
        public async Task <PenaltyReport> CreatePenaltyReport(CreatePenaltyReportRequest request)
        {
            var baseReport = await CreateBaseReport(request.Subject, request.Content, request.IsPrivate,
                                                    request.EventDate, ReportCategoryType.Penalty);

            var penaltyReport = PenaltyReport.Create(baseReport.Id, request.BanId, request.PenaltyId);

            penaltyReport.SetReport(baseReport);

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

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

                transaction.Complete();
            }

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

            return(penaltyReport);
        }
        public void SetUp()
        {
            report  = new PenaltyReport();
            request = new CreatePenaltyReportRequest();

            var mapper = new Mock <IMapper>();

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

            reportService.Setup(rs => rs.CreatePenaltyReport(It.IsAny <CreatePenaltyReportRequest>()))
            .ReturnsAsync(report);
            mapper.Setup(m => m.Map <PenaltyReportDto>(It.IsAny <PenaltyReport>())).Returns(new PenaltyReportDto());

            createPenaltyReportCommand = new CreatePenaltyReportCommand(reportService.Object, reportManager.Object, mapper.Object);
        }