コード例 #1
0
        public async Task <IEnumerable <Event> > GetEvents(SearchEventModel searchQuery)
        {
            var time = "'" + searchQuery.Time + "'" + "::date";
            var sql  = "select e.* from event e where ";

            if (!string.IsNullOrEmpty(searchQuery.Name))
            {
                sql += " name like '%" + searchQuery.Name + "%'";

                if (!string.IsNullOrEmpty(searchQuery.Time))
                {
                    sql += " and (" + time + " <= e.start_time or (e.start_time >= " + time + " and " + time +
                           " >= e.end_time)) " +
                           " and e.start_time <" + time + " + 90 ";
                }
            }
            else if (!string.IsNullOrEmpty(searchQuery.Time))
            {
                sql += " (" + time + " <= e.start_time or (e.start_time >= " + time + " and " + time +
                       " >= e.end_time)) " +
                       " and e.start_time <" + time + " + 90 ";
            }

            sql += " and e.end_time > Now() order by end_time";
            Console.WriteLine(sql);
            using (IDbConnection conn = Connection)
            {
                var result = await conn.QueryAsync <Event>(sql, searchQuery);

                return(result);
            }
        }
コード例 #2
0
        public ViewResult SearchEvents(SearchEventModel model)
        {
            model.EventsFound = from ev in repository.GetEvents()
                                where ev.Name.ToLower().Contains(model.Name.ToLower())
                                select ev;

            return(View("Search", model));
        }
コード例 #3
0
        public ViewResult SearchEvents()
        {
            SearchEventModel model = new SearchEventModel();

            model.EventsFound = from ev in repository.GetEvents()
                                select ev;

            return(View("Search", model));
        }
コード例 #4
0
        public IndexViewModel Load(SearchEventModel filter)
        {
            var result = new IndexViewModel();

            var mstEvents = _context.MstEvents.Where(e => !e.IsDeleted);

            filter.Keyword     = filter.Keyword?.Trim().ToLower();
            filter.KeywordKana = filter.KeywordKana?.Trim().ToLower();

            if (!string.IsNullOrEmpty(filter.EventCode?.Trim().ToLower()))
            {
                mstEvents = mstEvents.Where(x => x.Code.ToLower().Contains(filter.EventCode.Trim().ToLower()));
            }
            if (!string.IsNullOrEmpty(filter.Keyword) || !string.IsNullOrEmpty(filter.KeywordKana))
            {
                mstEvents = mstEvents.Where(x => x.Name.ToLower().Contains(filter.Keyword) ||
                                            x.NameAbbr.ToLower().Contains(filter.Keyword) ||
                                            x.NameKana.ToLower().Contains(filter.Keyword) ||
                                            x.NameKana.ToLower().Contains(filter.KeywordKana));
            }

            result.TotalRowsAfterFiltering = mstEvents.Count();

            mstEvents = Filtering(mstEvents, filter);

            result.ListEvent = mstEvents
                               .Select(e => new
            {
                e.Cd,
                e.Name,
                e.Code,
                e.NameKana,
                e.StartDate,
                e.EndDate,
                e.StartTime,
                e.EndTime,
                SalemanName = e.MainSalesman.Name,
                e.ApplicationUser.Id,
                e.InsertDate
            })
                               .AsEnumerable()
                               .Select(y => new ListEventModel()
            {
                Cd            = y.Cd,
                EventNameKana = y.NameKana,
                Name          = y.Name,
                EventCode     = y.Code,
                StartDate     = y.StartDate?.ToString(Constants.ExactDateFormat),
                EndDate       = y.EndDate?.ToString(Constants.ExactDateFormat),
                EventTime     = ((y.StartTime == null && y.EndTime == null) ? ""
                            : (string.Format("{0:hh\\:mm}", y.StartTime) + " ~ " + string.Format("{0:hh\\:mm}", y.EndTime))),
                SalemanName       = y.SalemanName,
                ApplicationUserId = y.Id,
            }).ToList();

            return(result);
        }
コード例 #5
0
        public void SearchEventsPostTest()
        {
            Mock <ControllerContext> controllerContext = new Mock <ControllerContext>();
            Mock <IPrincipal>        principal         = new Mock <IPrincipal>();
            Mock <IMainRepository>   repository        = new Mock <IMainRepository>();
            Cinema  cinema1 = new Cinema();
            Cinema  cinema2 = new Cinema();
            Movie   movie1  = new Movie();
            Movie   movie2  = new Movie();
            AppUser user1   = new AppUser {
                UserName = "******"
            };
            AppUser user2 = new AppUser {
                UserName = "******"
            };
            Event event1 = new Event
            {
                Cinema     = cinema1,
                Movie      = movie1,
                IsApproved = false,
                Price      = 50,
                Author     = user1.UserName,
                Name       = "Relax"
            };

            Event event2 = new Event
            {
                Movie      = movie2,
                Cinema     = cinema2,
                IsApproved = true,
                Price      = 100,
                Author     = user2.UserName,
                Name       = "Be Happy"
            };

            SearchEventModel model = new SearchEventModel
            {
                Name = "relax"
            };

            repository.Setup(x => x.GetEvents()).Returns(
                new List <Event>
            {
                event1, event2
            });

            SearchEventsController controller = new SearchEventsController(repository.Object);

            var result = (SearchEventModel)controller.SearchEvents(model).ViewData.Model;

            Assert.AreEqual(cinema1, result.EventsFound.ToList()[0].Cinema);
            Assert.AreEqual(movie1, result.EventsFound.ToList()[0].Movie);
            Assert.AreEqual(false, result.EventsFound.ToList()[0].IsApproved);
            Assert.AreEqual("user1", result.EventsFound.ToList()[0].Author);
            Assert.AreEqual("Relax", result.EventsFound.ToList()[0].Name);
        }
コード例 #6
0
        public async Task <JsonResult> GetByRegionOrName([FromQuery] SearchEventModel searchModel)
        {
            if (string.IsNullOrEmpty(searchModel.Value))
            {
                return(Json(null));
            }

            var events = await _eventService.GetEvents();

            SearchEventResultModel search = default;

            switch (searchModel.SearchType)
            {
            case SearchType.Region:
                search = events.Where(x => x.Region.ToLower() == searchModel.Value.ToLower())
                         .GroupBy(x => new { x.Country, x.Region })
                         .Select(x => new SearchEventResultModel
                {
                    Tag      = $"{x.Key.Country}.{x.Key.Region}",
                    Quantity = x.Count()
                })
                         .FirstOrDefault();
                break;

            case SearchType.SensorName:
                search = events.Where(x => x.SensorName.ToLower() == searchModel.Value.ToLower())
                         .GroupBy(x => new { x.Country, x.Region, x.SensorName })
                         .Select(x => new SearchEventResultModel
                {
                    Tag      = $"{x.Key.Country}.{x.Key.Region}.{x.Key.SensorName}",
                    Quantity = x.Count()
                })
                         .FirstOrDefault();
                break;
            }

            return(Json(search));
        }
コード例 #7
0
 public async Task <IEnumerable <Event> > GetEvents([FromQuery] SearchEventModel e)
 {
     return(await _eventRepository.GetEvents(e));
 }