public async Task <Result <List <FeedbackDetailDTO> > > GetAllFeedbackDetailAsync(CompanyUserSearchModel searchModel) { searchModel.FixPageDefinations(); int?companyId = searchModel.CompanyId; int?placeId = searchModel.PlaceId; int?userId = searchModel.UserId; IQueryable <Feedback> source = _unitOfWork.EntityRepository <Feedback>() .GetQueryable((Feedback w) => w.IsDeleted == false && ((object)placeId == null || (object)(int?)w.PlaceId == (object)placeId) && ((object)userId == null || (object)w.UserId == (object)userId) && ((object)companyId == null || (object)(int?)w.Place.CompanyId == (object)companyId) , null); //IQueryable<Feedback> source = _unitOfWork.EntityRepository<Feedback>().GetQueryable((Feedback w) => w.IsDeleted == false, null); if (!string.IsNullOrEmpty(searchModel.SearchText)) { source = from w in source where w.Description.Contains(searchModel.SearchText) select w; } return(Result.Data(await EntityFrameworkQueryableExtensions.ToListAsync <FeedbackDetailDTO>(from s in (from o in source orderby o.Id select o).Skip(searchModel.PageSize * searchModel.PageIndex).Take(searchModel.PageSize) select new FeedbackDetailDTO { Id = s.Id, DeskCode = s.DeskCode, Description = s.Description, CreatedDate = s.CreatedDate, PlcId = s.PlaceId, Place = s.Place.Name, Info = (s.DetailId.HasValue ? new FeedbackDetailInfoDTO { EmployeeRate = s.Detail.EmployeeRate, FlavorRate = s.Detail.FlavorRate, PriceRate = s.Detail.PriceRate, CleaningRate = s.Detail.CleaningRate, AdviseRate = s.Detail.AdviseRate } : null), User = (s.UserId.HasValue ? new UserDTO { Id = s.User.Id, Name = s.User.Name, Email = s.User.Email, Phone = s.User.Phone } : null), IsUserShare = s.IsUserShare, IsAnon = (s.UserId.HasValue == false) }, default(CancellationToken)))); }
public async Task <Result <List <PromotionDTO> > > GetAllPromotionAsync(CompanyUserSearchModel searchModel) { searchModel.FixPageDefinations(); int?companyId = searchModel.CompanyId; int?placeId = searchModel.PlaceId; int?userId = searchModel.UserId; IQueryable <Promotion> source = _unitOfWork.EntityRepository <Promotion>().GetQueryable((Expression <Func <Promotion, bool> >)((Promotion w) => ((object)placeId == null || (object)(int?)w.PlaceId == (object)placeId) && ((object)userId == null || (object)(int?)w.UserId == (object)userId) && ((object)companyId == null || (object)(int?)w.Place.CompanyId == (object)companyId)), (Func <IQueryable <Promotion>, IOrderedQueryable <Promotion> >)null, Array.Empty <Expression <Func <Promotion, object> > >()); if (!string.IsNullOrEmpty(searchModel.SearchText)) { source = from w in source where w.Message.Contains(searchModel.SearchText) select w; } DateTime today = DateTime.Today; return(Result.Data <List <PromotionDTO> >(await EntityFrameworkQueryableExtensions.ToListAsync <PromotionDTO>(from s in (from o in source orderby o.Id select o).Skip(searchModel.PageSize * searchModel.PageIndex).Take(searchModel.PageSize) select new PromotionDTO { Id = s.Id, Title = s.Title, Message = s.Message, DueDate = s.DueDate, IsActive = s.IsActive, CreatedDate = s.CreatedDate, CreatedBy = s.CreatedBy, UsageCode = s.UsageCode, UserId = s.UserId, Status = ((s.DueDate < today) ? "Süresi Bitti" : (s.IsActive ? "Aktif" : "Kullanıldı")), User = new UserInfoDTO { Id = s.User.Id, Name = s.User.Name, Email = s.User.Email }, Place = new PlaceInfoDTO { Id = s.Place.Id, Name = s.Place.Name } }, default(CancellationToken)))); }
public async Task <Result <List <FeedbackDTO> > > GetAllFeedbackAsync(CompanyUserSearchModel searchModel) { searchModel.FixPageDefinations(); int?companyId = searchModel.CompanyId; int?placeId = searchModel.PlaceId; int?userId = searchModel.UserId; IQueryable <Feedback> source = _unitOfWork.EntityRepository <Feedback>().GetQueryable((Feedback w) => w.IsDeleted == false && ((object)placeId == null || (object)(int?)w.PlaceId == (object)placeId) && ((object)userId == null || (object)w.UserId == (object)userId) && ((object)companyId == null || (object)(int?)w.Place.CompanyId == (object)companyId), null); if (!string.IsNullOrEmpty(searchModel.SearchText)) { source = from w in source where w.Description.Contains(searchModel.SearchText) select w; } return(Result.Data(await EntityFrameworkQueryableExtensions.ToListAsync <FeedbackDTO>(from s in (from o in source orderby o.Id descending select o).Skip(searchModel.PageSize * searchModel.PageIndex).Take(searchModel.PageSize) select new FeedbackDTO { Id = s.Id, DeskCode = s.DeskCode, Description = s.Description, CreatedDate = s.CreatedDate, CreatedBy = s.CreatedBy, UserId = s.UserId, User = (s.UserId.HasValue ? new UserInfoDTO { Id = s.User.Id, Name = s.User.Name } : null), PlaceId = s.PlaceId, Place = new PlaceInfoDTO { Id = s.Place.Id, Name = s.Place.Name } }, default(CancellationToken)))); }