public async Task Search_Call()
        {
            //--------------    Arrange     -------------

            //CommonArrangements();
            var searchRequest = new AmigoTenantTEventLogSearchRequest();

            //--------------    Act     -------------
            var resp = await amigoTenantTEventLogApplicationService.SearchAsync(searchRequest);


            //--------------    Assert     -------------
            A.CallTo(() => logSearchDataAccess.ListPagedAsync(null, 0, 0, null, null)).WithAnyArguments().MustHaveHappened();
        }
        public async Task <ResponseDTO <PagedList <AmigoTenantTEventLogSearchResultDTO> > > SearchAsync(AmigoTenantTEventLogSearchRequest search)
        {
            var queryFilter = GetQueryFilter(search);

            var eventLogs = await _logSearchDataAccess.ListPagedAsync(queryFilter, search.Page, search.PageSize);

            var pagedResult = new PagedList <AmigoTenantTEventLogSearchResultDTO>()
            {
                Items    = eventLogs.Items,
                PageSize = eventLogs.PageSize,
                Page     = eventLogs.Page,
                Total    = eventLogs.Total
            };

            return(ResponseBuilder.Correct(pagedResult));
        }
        private Expression <Func <AmigoTenantTEventLogSearchResultDTO, bool> > GetQueryFilter(AmigoTenantTEventLogSearchRequest search)
        {
            Expression <Func <AmigoTenantTEventLogSearchResultDTO, bool> > queryFilter = p => true;


            if (!string.IsNullOrEmpty(search.ActivityTypeCode))
            {
                queryFilter = queryFilter.And(p => p.ActivityTypeCode.Contains(search.ActivityTypeCode));
            }

            if (!string.IsNullOrEmpty(search.Username))
            {
                queryFilter = queryFilter.And(p => p.Username.Contains(search.Username));
            }

            if (search.ReportedActivityDateFrom != null)
            {
                queryFilter = queryFilter.And(p => p.ReportedActivityDate >= search.ReportedActivityDateFrom);
            }

            if (search.ReportedActivityDateTo != null)
            {
                queryFilter = queryFilter.And(p => p.ReportedActivityDate <= search.ReportedActivityDateTo);
            }

            if (!string.IsNullOrEmpty(search.ReportedActivityTimeZone))
            {
                queryFilter = queryFilter.And(p => p.ReportedActivityTimeZone.Contains(search.ReportedActivityTimeZone));
            }

            if (!string.IsNullOrEmpty(search.LogType))
            {
                queryFilter = queryFilter.And(p => p.LogType.Contains(search.LogType));
            }

            if (!string.IsNullOrEmpty(search.Parameters))
            {
                queryFilter = queryFilter.And(p => p.Parameters.Contains(search.Parameters));
            }


            if (!string.IsNullOrEmpty(search.AmigoTenantMoveNumber))
            {
                queryFilter = queryFilter.And(p => p.AmigoTenantMoveNumber == search.AmigoTenantMoveNumber);
            }

            if (search.AmigoTenantMoveId != null)
            {
                queryFilter = queryFilter.And(p => p.AmigoTenantMoveId == search.AmigoTenantMoveId);
            }

            if (!string.IsNullOrEmpty(search.ShipmentID) && !string.IsNullOrEmpty(search.CostCenterCode))
            {
                queryFilter = queryFilter.And(p => p.ChargeNo == search.ShipmentID || p.ChargeNo == search.CostCenterCode);
            }
            else
            {
                if (!string.IsNullOrEmpty(search.ShipmentID))
                {
                    queryFilter = queryFilter.And(p => p.ChargeNo == search.ShipmentID);
                }

                if (!string.IsNullOrEmpty(search.CostCenterCode))
                {
                    queryFilter = queryFilter.And(p => p.ChargeNo == search.CostCenterCode);
                }
            }

            //if (search.CostCenterId != null)
            //{
            //    queryFilter = queryFilter.And(p => p.CostCenterId == search.CostCenterId);
            //}

            if (!string.IsNullOrEmpty(search.EquipmentNumber))
            {
                queryFilter = queryFilter.And(p => p.EquipmentNumber == search.EquipmentNumber);
            }

            if (search.EquipmentId != null)
            {
                queryFilter = queryFilter.And(p => p.EquipmentId == search.EquipmentId);
            }

            if (search.IsAutoDateTime != null)
            {
                queryFilter = queryFilter.And(p => p.IsAutoDateTime == search.IsAutoDateTime);
            }

            if (search.IsSpoofingGPS != null)
            {
                queryFilter = queryFilter.And(p => p.IsSpoofingGPS == search.IsSpoofingGPS);
            }

            if (search.IsRootedJailbreaked != null)
            {
                queryFilter = queryFilter.And(p => p.IsRootedJailbreaked == search.IsRootedJailbreaked);
            }

            if (!string.IsNullOrEmpty(search.Platform))
            {
                queryFilter = queryFilter.And(p => p.Platform == search.Platform);
            }

            if (!string.IsNullOrEmpty(search.OSVersion))
            {
                queryFilter = queryFilter.And(p => p.OSVersion == search.OSVersion);
            }

            if (!string.IsNullOrEmpty(search.AppVersion))
            {
                queryFilter = queryFilter.And(p => p.AppVersion == search.AppVersion);
            }

            if (!string.IsNullOrEmpty(search.LocationProvider))
            {
                queryFilter = queryFilter.And(p => p.LocationProvider == search.LocationProvider);
            }


            return(queryFilter);
        }
Esempio n. 4
0
        public async Task <ResponseDTO <PagedList <AmigoTenantTEventLogSearchResultDTO> > > Search([FromUri] AmigoTenantTEventLogSearchRequest search)
        {
            var resp = await _logApplicationService.SearchAsync(search);

            return(resp);
        }