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();
            }
        }
示例#2
0
    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));
        }
    }
示例#3
0
    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));
        }
示例#5
0
    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));
        }
    }
示例#6
0
        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))));
        }
示例#7
0
        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))));
        }