コード例 #1
0
ファイル: DataAccess.cs プロジェクト: artiliusjoker/WeSplit
        public static List <Trip> SearchTrips(Helpers.SearchInfo info)
        {
            List <Trip> result = new List <Trip>();

            if (!info.MemberSearchChecked)
            {
                if (info.TripFinishedSearchChecked)
                {
                    result.AddRange(GetFinishedTrips());
                }

                if (info.TripOngoingSearchChecked)
                {
                    result.AddRange(GetOngoingTrips());
                }
                if (info.Keyword == "")
                {
                    return(result);
                }
                result = new List <Trip>(result.Where(trip =>
                {
                    string tripName = StringHelper.ConvertToNoSpaceAndUnsigned(trip.Title);
                    string keyword  = StringHelper.ConvertToNoSpaceAndUnsigned(info.Keyword);
                    return(tripName.Contains(keyword));
                }));
                return(result);
            }
            if (info.MemberSearchChecked)
            {
                result = GetTripsBasedOnMemberName(info);
            }
            return(result);
        }
コード例 #2
0
ファイル: DataAccess.cs プロジェクト: artiliusjoker/WeSplit
        public static List <Trip> GetTripsBasedOnMemberName(Helpers.SearchInfo searchInfo)
        {
            List <Trip> list  = new List <Trip>();
            var         query = from trip in DatabaseEntity.Entity.DB.TRIPs
                                join tripMember in DatabaseEntity.Entity.DB.TRIP_MEMBERS on trip.TRIP_ID equals tripMember.TRIP_ID
                                select new { trip, tripMember.MEMBER };

            foreach (var row in query)
            {
                if (searchInfo.Keyword != null)
                {
                    string memberName = StringHelper.ConvertToNoSpaceAndUnsigned(row.MEMBER.NAME);
                    string keyword    = StringHelper.ConvertToNoSpaceAndUnsigned(searchInfo.Keyword);
                    if (memberName.Contains(keyword))
                    {
                        Trip trip = new Trip(row.trip);
                        list.Add(trip);
                    }
                }
            }
            return(list);
        }
コード例 #3
0
        public CurrentTripsViewModel()
        {
            NextPageCommand = new RelayCommand <object>((p) => { return(true); }, (p) =>
            {
                if (this.CurrentIndex < this.paging.TotalPages - 1)
                {
                    this.CurrentIndex += 1;
                }
            });
            PreviousPageCommand = new RelayCommand <object>((p) => { return(true); }, (p) =>
            {
                if (this.CurrentIndex > 0)
                {
                    this.CurrentIndex -= 1;
                }
            });

            SelectTripCommand = new RelayCommand <object>((selectedItem) => { return(selectedItem != null); }, (selectedItem) =>
            {
                Trip tripSelected = (Trip)selectedItem;
                View.DetailTripWindow childWindow = new View.DetailTripWindow(tripSelected.ID);
                childWindow.ShowDialog();
            });

            SearchCommand = new RelayCommand <object>((x) => { return(x != null); }, (x) =>
            {
                Search.Keyword = (string)x;
                Trips          = DataAccess.SearchTrips(Search);
                bindingItems   = new ObservableCollection <Trip>(Trips.ToList());
                CalculatePagingInfo();
                Info = $"Tìm thấy {Trips.Count} kết quả";
            });

            Trips = DataAccess.GetOngoingTrips();

            CalculatePagingInfo();
            Search = new Helpers.SearchInfo();
            Info   = "";
        }