public async Task GetAllAgencyAnnouncements_Returns_Data() { var _allAgencyAnnouncementSearchCriteriaModel = new AllAgencyAnnouncementSearchCriteriaModel() { }; var _commercialRegisterNo = "142154293000206"; _claims = new Claim[1] { new Claim(IdentityConfigs.Claims.SelectedCR, _commercialRegisterNo) }; _announcementController = _announcementController.WithIdentity(_claims); var result = await _announcementController.GetAllAgencyAnnouncements(_allAgencyAnnouncementSearchCriteriaModel); Assert.NotNull(result); Assert.IsType <QueryResult <AllAnouuncementsForAgencyModel> >(result); Assert.NotEmpty(result.Items); Assert.True(result.PageNumber > 0); Assert.True(result.PageSize > 0); }
public async Task <QueryResult <AllAnouuncementsForAgencyModel> > FindAllAgencyAnnouncements(AllAgencyAnnouncementSearchCriteriaModel criteria) { var result = await _context.Announcements .Where(a => a.IsActive == true) .WhereIf(criteria.Type == "Current", x => x.StatusId == (int)Enums.AnnouncementStatus.Approved && x.PublishedDate.Value.AddDays(x.AnnouncementPeriod) > DateTime.Now) .WhereIf(criteria.Type == "Finished", a => a.PublishedDate.Value.AddDays(a.AnnouncementPeriod) < DateTime.Now) .WhereIf(!string.IsNullOrEmpty(criteria.CurrentAgencyCode) && !new List <string> { RoleNames.MonafasatAccountManager, RoleNames.CustomerService }.Contains(criteria.CurrentRoleName), a => a.AgencyCode == criteria.CurrentAgencyCode) .WhereIf(!string.IsNullOrEmpty(criteria.AgencyCode), a => a.AgencyCode == criteria.AgencyCode) .WhereIf(criteria.BranchId.HasValue, a => a.BranchId == criteria.BranchId) .WhereIf(criteria.CurrentBranchId.HasValue && criteria.CurrentBranchId.Value != 0, a => a.BranchId == criteria.CurrentBranchId) .WhereIf(!string.IsNullOrEmpty(criteria.AnnouncementName), a => a.AnnouncementName.Contains(criteria.AnnouncementName)) .WhereIf(!string.IsNullOrEmpty(criteria.ReferenceNumber), a => a.ReferenceNumber == criteria.ReferenceNumber) .WhereIf(criteria.FromPublishDate.HasValue, a => a.PublishedDate.Value.Date >= criteria.FromPublishDate.Value) .WhereIf(criteria.ToPublishDate.HasValue, a => a.PublishedDate.Value.Date <= criteria.ToPublishDate.Value) .WhereIf(criteria.AnnouncementStatusId.HasValue && (criteria.AnnouncementStatusId != (int)Enums.AnnouncementStatus.Ended && criteria.AnnouncementStatusId != (int)Enums.AnnouncementStatus.Approved), a => a.StatusId == criteria.AnnouncementStatusId) .WhereIf(criteria.AnnouncementStatusId.HasValue && criteria.AnnouncementStatusId == (int)Enums.AnnouncementStatus.Ended, a => a.PublishedDate.Value.AddDays(a.AnnouncementPeriod) < DateTime.Now) .WhereIf(criteria.AnnouncementStatusId.HasValue && criteria.AnnouncementStatusId == (int)Enums.AnnouncementStatus.Approved, a => (a.PublishedDate.Value.AddDays(a.AnnouncementPeriod) >= DateTime.Now)) .WhereIf(!string.IsNullOrEmpty(criteria.CreatedBy), a => a.CreatedBy.Contains(criteria.CreatedBy)) .WhereIf(!string.IsNullOrEmpty(criteria.ApprovedBy), a => a.ApprovedBy.Contains(criteria.ApprovedBy)) .WhereIf(criteria.TenderTypeId.HasValue, a => a.TenderTypeId == criteria.TenderTypeId) .OrderByDescending(a => a.PublishedDate).ThenByDescending(a => a.CreatedAt) .Select(announcement => new AllAnouuncementsForAgencyModel { AnnouncementIdString = Util.Encrypt(announcement.AnnouncementId), AnnouncementName = announcement.AnnouncementName, ReferenceNumber = announcement.ReferenceNumber, AgencyName = announcement.Agency.NameArabic, AgencyCode = announcement.AgencyCode, BranchName = announcement.Branch.BranchName, TenderTypeString = announcement.TenderType.NameAr, AnnouncementPeriod = announcement.AnnouncementPeriod, PublishedDate = announcement.PublishedDate, StatusId = announcement.StatusId, AnnouncementStatusString = announcement.AnnouncementStatusId == (int)Enums.AnnouncementStatus.Ended ? "منتهي" : announcement.AnnouncementStatus.Name } ).ToQueryResult(criteria.PageNumber, criteria.PageSize); return(result); }
public async Task <QueryResult <AllAnouuncementsForAgencyModel> > GetAllAgencyAnnouncements(AllAgencyAnnouncementSearchCriteriaModel criteria) { return(await _announcementQueries.FindAllAgencyAnnouncements(criteria)); }
public async Task <QueryResult <AllAnouuncementsForAgencyModel> > GetAllAgencyAnnouncements(AllAgencyAnnouncementSearchCriteriaModel criteria) { criteria.CurrentAgencyCode = User.UserAgency(); criteria.CurrentBranchId = User.UserBranch(); criteria.CurrentRoleName = User.UserRole(); var result = await _announcementAppService.GetAllAgencyAnnouncements(criteria); return(result); }