예제 #1
0
        public async Task GetAllVisitorAnnouncements_Returns_Data()
        {
            var _allSupplierAnnouncementSearchCriteria = new AllSupplierAnnouncementSearchCriteria()
            {
            };

            var result = await _announcementController.GetAllVisitorAnnouncements(_allSupplierAnnouncementSearchCriteria);

            Assert.NotNull(result);
            Assert.IsType <QueryResult <AllAnouuncementsForSupplierVisitorModel> >(result);
            Assert.NotEmpty(result.Items);
            Assert.True(result.PageNumber > 0);
            Assert.True(result.PageSize > 0);
        }
예제 #2
0
        public async Task GetAllSupplierAnnouncements_Returns_Data()
        {
            var _allSupplierAnnouncementSearchCriteria = new AllSupplierAnnouncementSearchCriteria()
            {
            };
            var _commercialRegisterNo = "142154293000206";

            _claims = new Claim[1] {
                new Claim(IdentityConfigs.Claims.SelectedCR, _commercialRegisterNo)
            };
            _announcementController = _announcementController.WithIdentity(_claims);

            var result = await _announcementController.GetAllSupplierAnnouncements(_allSupplierAnnouncementSearchCriteria);

            Assert.NotNull(result);
            Assert.IsType <QueryResult <AllAnouuncementsForSupplierVisitorModel> >(result);
            Assert.NotEmpty(result.Items);
            Assert.True(result.PageNumber > 0);
            Assert.True(result.PageSize > 0);
        }
예제 #3
0
        public async Task <ActionResult> AllVisitorAnnouncementsPaging(AllSupplierAnnouncementSearchCriteria announcementCriteria)
        {
            try
            {
                announcementCriteria.FromLastJoinDate = DateHelper.GetDate(announcementCriteria.FromLastJoinDateString);
                announcementCriteria.ToLastJoinDate   = DateHelper.GetDate(announcementCriteria.ToLastJoinDateString);
                var result = await _ApiClient.GetQueryResultAsync <AllAnouuncementsForSupplierVisitorModel>("Announcement/GetAllVisitorAnnouncements/", announcementCriteria.ToDictionary());

                return(Json(new PaginationModel(result.Items, result.TotalCount, announcementCriteria.PageSize, result.PageNumber, null)));
            }
            catch (AuthorizationException ex)
            {
                throw ex;
            }
            catch (BusinessRuleException ex)
            {
                return(JsonErrorMessage(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString(), ex);
                return(JsonErrorMessage(Resources.TenderResources.ErrorMessages.UnexpectedError));
            }
        }
예제 #4
0
        public async Task <QueryResult <AllAnouuncementsForSupplierVisitorModel> > FindAllSupplierAnnouncements(AllSupplierAnnouncementSearchCriteria criteria)
        {
            var result = await _context.Announcements
                         .Where(a => a.IsActive == true)
                         .Where(a => a.StatusId == (int)Enums.AnnouncementStatus.Approved || a.StatusId == (int)Enums.AnnouncementStatus.Ended)
                         .WhereIf(criteria.ActivityId.HasValue, a => a.AnnouncementActivities.Any(aa => aa.Activity.ParentID == criteria.ActivityId))
                         .WhereIf(criteria.SubActivityId.HasValue, a => a.AnnouncementActivities.Any(aa => aa.ActivityId == criteria.SubActivityId))
                         .WhereIf(!string.IsNullOrEmpty(criteria.AgencyCode), a => a.AgencyCode == criteria.AgencyCode)
                         .WhereIf(criteria.AreaId.HasValue, a => a.AnnouncementAreas.Any(aa => aa.AreaId == criteria.AreaId))
                         .WhereIf(!string.IsNullOrEmpty(criteria.AnnouncementName), a => a.AnnouncementName.Contains(criteria.AnnouncementName))
                         .WhereIf(!string.IsNullOrEmpty(criteria.ReferenceNumber), a => a.ReferenceNumber == criteria.ReferenceNumber)
                         .WhereIf(criteria.TenderTypeId.HasValue, a => a.TenderTypeId == criteria.TenderTypeId)
                         .WhereIf(criteria.FromLastJoinDate.HasValue, a => a.PublishedDate.Value.Date.AddDays(a.AnnouncementPeriod) >= criteria.FromLastJoinDate.Value)
                         .WhereIf(criteria.ToLastJoinDate.HasValue, a => a.PublishedDate.Value.Date.AddDays(a.AnnouncementPeriod) <= criteria.ToLastJoinDate.Value)
                         .WhereIf(criteria.FromPublishDate.HasValue, a => a.PublishedDate.Value >= criteria.FromPublishDate.Value)
                         .WhereIf(criteria.AnnouncementActiveStatusId.HasValue && criteria.AnnouncementActiveStatusId == (int)Enums.AnnouncementActiveStatus.Active,
                                  a => a.StatusId == (int)Enums.AnnouncementStatus.Approved && a.PublishedDate.HasValue && a.PublishedDate.Value.AddDays(a.AnnouncementPeriod) > DateTime.Now &&
                                  (!string.IsNullOrEmpty(criteria.CommericalRegisterNo) || !a.AnnouncementJoinRequests.Any(aj => aj.Cr == criteria.CommericalRegisterNo && aj.StatusId == (int)Enums.AnnouncementJoinRequestStatus.Sent)))
                         .WhereIf(criteria.AnnouncementActiveStatusId.HasValue && criteria.AnnouncementActiveStatusId == (int)Enums.AnnouncementActiveStatus.InActive,
                                  a => (a.PublishedDate.HasValue && a.PublishedDate.Value.AddDays(a.AnnouncementPeriod) < DateTime.Now) ||
                                  a.AnnouncementJoinRequests.Any(aj => aj.Cr == criteria.CommericalRegisterNo && aj.StatusId == (int)Enums.AnnouncementJoinRequestStatus.Sent))
                         .OrderByDescending(a => a.PublishedDate)
                         .Select(announcement => new AllAnouuncementsForSupplierVisitorModel
            {
                AnnouncementIdString     = Util.Encrypt(announcement.AnnouncementId),
                AnnouncementName         = announcement.AnnouncementName,
                ReferenceNumber          = announcement.ReferenceNumber,
                AnnouncementStatusId     = announcement.AnnouncementStatusId,
                AgencyName               = announcement.Agency.NameArabic,
                AgencyCode               = announcement.AgencyCode,
                hasApprovedRequest       = announcement.AnnouncementJoinRequests.Any(aj => aj.Cr == criteria.CommericalRegisterNo && aj.StatusId == (int)Enums.AnnouncementJoinRequestStatus.Sent),
                TenderTypeString         = announcement.TenderType.NameAr,
                AnnouncementPeriod       = announcement.AnnouncementPeriod,
                PublishedDate            = announcement.PublishedDate,
                AnnouncementStatusString = announcement.AnnouncementStatusId == (int)Enums.AnnouncementStatus.Ended ? "منتهي" : announcement.AnnouncementStatus.Name
            }
                                 ).ToQueryResult(criteria.PageNumber, criteria.PageSize);

            return(result);
        }
예제 #5
0
        public async Task <QueryResult <AllAnouuncementsForSupplierVisitorModel> > GetAllSupplierAnnouncements(AllSupplierAnnouncementSearchCriteria criteria)
        {
            if (criteria.AnnouncementPublishDateCriteriaId.HasValue)
            {
                switch (criteria.AnnouncementPublishDateCriteriaId.Value)
                {
                case (int)Enums.AnnouncementPublishDateCriteria.AnyTime:
                    criteria.FromPublishDate = null;
                    break;

                case (int)Enums.AnnouncementPublishDateCriteria.TwoDaysAgo:
                    criteria.FromPublishDate = DateTime.Now.AddDays(-2);
                    break;

                case (int)Enums.AnnouncementPublishDateCriteria.WeekAgo:
                    criteria.FromPublishDate = DateTime.Now.AddDays(-7);
                    break;

                case (int)Enums.AnnouncementPublishDateCriteria.MonthAgo:
                    criteria.FromPublishDate = DateTime.Now.AddMonths(-1);
                    break;
                }
            }
            return(await _announcementQueries.FindAllSupplierAnnouncements(criteria));
        }
예제 #6
0
        public async Task <QueryResult <AllAnouuncementsForSupplierVisitorModel> > GetAllSupplierAnnouncements(AllSupplierAnnouncementSearchCriteria criteria)
        {
            criteria.CommericalRegisterNo = User.SupplierNumber();
            var result = await _announcementAppService.GetAllSupplierAnnouncements(criteria);

            return(result);
        }
예제 #7
0
        public async Task <QueryResult <AllAnouuncementsForSupplierVisitorModel> > GetAllVisitorAnnouncements(AllSupplierAnnouncementSearchCriteria criteria)
        {
            var suppliers = await _announcementAppService.GetAllSupplierAnnouncements(criteria);

            return(suppliers);
        }