コード例 #1
0
        public async Task <bool> AssignAwaitingReports(ReportCategoryType reportCategoryType, bool isPrivate)
        {
            var allowedAssignees = (await GetReportsAllowedAssignees(reportCategoryType, isPrivate))
                                   .Where(u => u.AssignedReports.Count < Constants.MaximumAssignedReportsCount);

            var awaitingReports = await database.ReportRepository.GetWhere(new SqlBuilder()
                                                                           .Append("status").Equals.Append((int)ReportStatusType.Awaiting)
                                                                           .And.Append("categoryType").Equals.Append((int)reportCategoryType)
                                                                           .And.Append("isPrivate").Equals.Append(isPrivate ? 1 : 0)
                                                                           .Build().Query);

            foreach (var awaitingReport in awaitingReports)
            {
                awaitingReport.AssigneTo(allowedAssignees
                                         .Aggregate(
                                             (currentMin, u) =>
                                             (currentMin == null || u.AssignedReports.Count < currentMin.AssignedReports.Count
                                ? u
                                : currentMin))
                                         .Id);

                awaitingReport.ChangeStatus(ReportStatusType.Assigned);
            }

            return(await database.ReportRepository.UpdateRange(awaitingReports));
        }
コード例 #2
0
        public async Task Handle_WhenCalled_ReturnFetchAllReportsPaginationResponse(ReportCategoryType type)
        {
            var request = new FetchAllReportsRequest
            {
                CategoryType = type
            };

            var result = await fetchAllReportsQuery.Handle(request, It.IsAny <CancellationToken>());

            Assert.That(result, Is.TypeOf <FetchAllReportsResponse>());
            Assert.That(result.Reports, Is.EqualTo(reportsDto));
            Assert.That(result, Is.Not.Null);
        }
コード例 #3
0
 private async Task <Report> CreateBaseReport(string subject, string content, bool isPrivate, DateTime?eventDate,
                                              ReportCategoryType categoryType)
 => await database.UserRepository.FindById(httpContextReader.CurrentUserId) != null
コード例 #4
0
ファイル: Report.cs プロジェクト: filippyziak/_MTA-Panel
 public void SetCategoryType(ReportCategoryType categoryType) => CategoryType = (int)categoryType;
コード例 #5
0
 public async Task <IEnumerable <User> > GetReportsAllowedAssignees(ReportCategoryType reportCategoryType,
                                                                    bool isPrivate = false)
 => await database.UserRepository.GetUsersWithAssignedReports(reportCategoryType, isPrivate);