public IQueryable <SumRainfall> GetSumByStationIds(Expression <Func <Rainfall, Boolean> > condition)
        {
            // if(stationIds
            IQueryable <Rainfall> rainfalls = this.ExecuteConditions(condition);

            return(RainfallService.GetGroupFromSources <Rainfall, SumRainfall>(rainfalls, r => r.RainfallStation.Id));
        }
        public IQueryable <RainfallGroupedByStation> GetStaionIdGroupByCondition(
            Expression <Func <Rainfall, bool> > condition)
        {
            IQueryable <Rainfall> rainfalls = this.ExecuteConditions(condition);

            return(RainfallService.GetGroupFromSources <Rainfall, RainfallGroupedByStation>(
                       rainfalls, r => r.RainfallStation.Id));
        }
        public IQueryable <SumRainfall> GetSumByStationIds(
            DateTime stime, DateTime etime, List <string> stationIds = null)
        {
            // if(stationIds
            Expression <Func <Rainfall, Boolean> > selector = r => stationIds.Contains(r.RainfallStation.StationId) &&
                                                              (r.CollectTime <= etime && r.CollectTime >= stime);
            IQueryable <Rainfall> rainfalls = this.ExecuteConditions(selector);

            return(RainfallService.GetGroupFromSources <Rainfall, SumRainfall>(rainfalls, r => r.RainfallStation.Id));
        }