private IQueryable <Data.Dao.ContactWithDetailsQueryResult> BaseQuery(Guid?contactUid = null) =>
 (
     from c in _unitOfWork.Query <Data.Dao.Contact>()
     join d in _unitOfWork.Query <Data.Dao.ContactDetail>() on c.Id equals d.ContactId into cd
         where (contactUid == null || c.Uid == contactUid)
     orderby c.Id
     select new Data.Dao.ContactWithDetailsQueryResult
 {
     Contact = c,
     Details = cd.ToList()
 }
 ).AsNoTracking();
Example #2
0
        public async Task <ManagerResponse <Contact> > Get(int pageNumber, int pageSize)
        {
            _logger.LogInformation("Get: Begin");

            var totalCount = await _unitOfWork.Query <Data.Dao.Contact>()
                             .LongCountAsync();

            var skip = (pageNumber - 1) * pageSize;
            var daos = await _unitOfWork.Query <Data.Dao.Contact>()
                       .AsNoTracking()
                       .OrderBy(o => o.Id)
                       .Skip(skip)
                       .Take(pageSize)
                       .ToListAsync();

            var models = _mapper.Map <IEnumerable <Contact> >(daos)
                         .ToList();

            var result = new ManagerResponse <Contact>
            {
                ResultStatus = Common.Enums.ManagerResponseResult.Success,
                Result       = new List <Contact>(),
                PageMeta     = new PagingMetadata
                {
                    PageNumber = pageNumber,
                    PageSize   = pageSize,
                    Total      = totalCount
                }
            };

            result.Result.AddRange(models);

            _logger.LogInformation("Get: End");

            return(result);
        }
 private IQueryable <Data.Dao.Contact> ParentQuery(Guid contactUid) =>
 _unitOfWork.Query <Data.Dao.Contact>()
 .Where(o => o.Uid == contactUid);