private void FillPromotionFormModel(PromotionFormModel model) { if (model.DueDate == DateTime.MinValue) { model.DueDate = DateTime.Today; } if (base.CurrentUser.Role == UserRole.SuperAdmin) { model.IsSuperAdmin = true; } int?companyId = base.CurrentUser.CompanyId; if (base.CurrentUser.Role == UserRole.SuperAdmin) { companyId = null; } Result <List <PlaceDTO> > result = _placeService.GetAllPlaceAsync(new PlaceSearchModel { CompanyId = companyId, Page = 0, PageSize = 1000 }).Result; if (result.IsSuccess) { model.Places = result.Data; } CompanyUserSearchModel companyUserSearchModel = new CompanyUserSearchModel { CompanyId = companyId, PlaceId = base.CurrentUser.PlaceId, Page = 1, PageSize = 1000 }; Result <List <FeedbackDetailDTO> > result2 = _feedbackService.GetAllFeedbackDetailAsync(companyUserSearchModel).Result; if (result2.IsSuccess) { List <FeedbackDetailDTO> data = result2.Data; model.Users = (from o in EnumerableExtensions.Distinct <UserDTO>(from s in data.Where(delegate(FeedbackDetailDTO w) { if (w.IsUserShare && !w.IsAnon) { return(w.User.Email != null); } return(false); }) select s.User, (Func <UserDTO, UserDTO, bool>)((UserDTO dto, UserDTO userDTO) => dto.Id == userDTO.Id)) orderby o.CreatedDate descending select o).ToList(); } }
public async Task <ViewResult> MyPromotions() { MyPromotionsViewModel model = new MyPromotionsViewModel(); try { int userId = base.CurrentUser.UserId; CompanyUserSearchModel val = new CompanyUserSearchModel(); ((SearchModel)val).PageSize = 40; val.UserId = (int?)userId; CompanyUserSearchModel val2 = val; Result <List <PromotionDTO> > result = await _promotionService.GetAllPromotionAsync(val2); if (!result.IsSuccess) { model.HasError = true; model.FormMessage = result.FormMessage; return(this.View((object)model)); } List <PromotionDTO> data = result.Data; if (data == null || !data.Any()) { model.FormMessage = "Hiç promosyonunuz yok :( <br/> Üzülmeyin <a href='/home/search'>Mekan arayıp değerlendirip promosyon kazanmak için tıklayın.</a>"; return(this.View((object)model)); } model.Promotions = new List <MyPromotionViewItem>(); foreach (PromotionDTO item in from o in data orderby o.Status select o) { model.Promotions.Add(new MyPromotionViewItem { Place = item.Place.Name, Description = item.Message, DueDate = item.DueDate, Status = item.Status }); } return(this.View((object)model)); } catch (Exception ex) { LoggerExtensions.LogError(_logger, ex, "MyPromotions Error", Array.Empty <object>()); model.HasError = true; model.FormMessage = "İşleminiz gerçekleştirilemedi."; return(this.View((object)model)); } }
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 <ViewResult> Index() { PromotionViewModel model = new PromotionViewModel(); int?companyId = base.CurrentUser.CompanyId; int?placeId = base.CurrentUser.PlaceId; if (base.CurrentUser.Role == UserRole.SuperAdmin) { companyId = null; } CompanyUserSearchModel companyUserSearchModel = new CompanyUserSearchModel { CompanyId = companyId, PlaceId = placeId, Page = 1, PageSize = 1000 }; Result <List <PromotionDTO> > result = await _promotionService.GetAllPromotionAsync(companyUserSearchModel); if (result.IsSuccess) { model.Promotions = (from o in result.Data orderby o.CreatedDate descending select o).ToList(); } if (base.CurrentUser.Role == UserRole.SuperAdmin || base.CurrentUser.Role == UserRole.Admin) { Result <List <PlaceDTO> > result2 = _placeService.GetAllPlaceAsync(new PlaceSearchModel { CompanyId = base.CurrentUser.CompanyId, Page = 0, PageSize = 1000 }).Result; if (result2.IsSuccess) { model.Places = result2.Data; } } return(this.View((object)model)); }
public async Task <ViewResult> MyFeedbacks() { MyFeedbacksViewModel model = new MyFeedbacksViewModel(); try { int userId = base.CurrentUser.UserId; CompanyUserSearchModel val = new CompanyUserSearchModel(); ((SearchModel)val).PageSize = 40; val.UserId = (int?)userId; CompanyUserSearchModel val2 = val; Result <List <FeedbackDetailDTO> > result = await _feedbackService.GetAllFeedbackDetailAsync(val2); if (!result.IsSuccess) { model.HasError = true; model.FormMessage = result.FormMessage; return(this.View((object)model)); } List <FeedbackDetailDTO> data = result.Data; if (data == null || !data.Any()) { model.FormMessage = "Hiç değerlendirme yapmadınız. <a href='/home/search'>Mekan arayıp değerlendirme yapmak için tıklayın.</a>"; return(this.View((object)model)); } model.Feedbacks = (from o in data orderby o.CreatedDate descending select o).ToList(); return(this.View((object)model)); } catch (Exception ex) { LoggerExtensions.LogError(_logger, ex, "MyFeedbacks Error", Array.Empty <object>()); model.HasError = true; model.FormMessage = "İşleminiz gerçekleştirilemedi."; return(this.View((object)model)); } }
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)))); }
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)))); }