예제 #1
0
        public static void search(viewOptions o, ref IQueryable <WorkOrder> q)
        {
            bool     isDateTime = false;
            DateTime parsedTime;

            if (isDateTime = DateTime.TryParse(o.sSearch, out parsedTime))
            {
                if (isMonthSpecific.IsMatch(o.sSearch))  //Regex for month/year
                {
                    q = q.Where(p => DbFunctions.DiffMonths(p.dateTimeofWork, parsedTime) == 0 ? true : false);
                }
                if (isDaySpecific.IsMatch(o.sSearch))  //Regex for day/month/year
                {
                    q = q.Where(p => DbFunctions.DiffDays(p.dateTimeofWork, parsedTime) == 0 ? true : false);
                }
                if (isTimeSpecific.IsMatch(o.sSearch)) //Regex for day/month/year time
                {
                    q = q.Where(p => DbFunctions.DiffHours(p.dateTimeofWork, parsedTime) == 0 ? true : false);
                }
            }
            else
            {
                q = q
                    .Where(p => SqlFunctions.StringConvert((decimal)p.ID).Contains(o.sSearch) ||
                           SqlFunctions.StringConvert((decimal)p.paperOrderNum).Contains(o.sSearch) ||
                           p.contactName.Contains(o.sSearch) ||
                           p.workSiteAddress1.Contains(o.sSearch) ||
                           p.updatedby.Contains(o.sSearch));
            }
        }
예제 #2
0
 /// <summary>
 /// Filter WA queryable on a partial date string
 /// </summary>
 /// <param name="search">string that is part of a date</param>
 /// <param name="parsedTime">datetime.parse of the same string</param>
 /// <param name="query">WorkAssignment queryable</param>
 public static void filterOnDatePart(string search, DateTime parsedTime, ref IQueryable <WorkAssignment> query)
 {
     if (isMonthSpecific.IsMatch(search))  //Regex for month/year
     {
         query = query.Where(p => DbFunctions.DiffMonths(p.workOrder.dateTimeofWork, parsedTime) == 0 ? true : false);
     }
     if (isDaySpecific.IsMatch(search))  //Regex for day/month/year
     {
         query = query.Where(p => DbFunctions.DiffDays(p.workOrder.dateTimeofWork, parsedTime) == 0 ? true : false);
     }
     if (isTimeSpecific.IsMatch(search)) //Regex for day/month/year time
     {
         query = query.Where(p => DbFunctions.DiffHours(p.workOrder.dateTimeofWork, parsedTime) == 0 ? true : false);
     }
     //throw new ArgumentException("Date string not valid for Month,Day, or Hour pattern");
 }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="query"></param>
        /// <param name="search"></param>
        /// <returns></returns>
        public static IQueryable <WorkOrder> filterDateTimeOfWork(IQueryable <WorkOrder> query, string search)
        {
            //Using DateTime.TryParse as determiner of date/string
            DateTime parsedTime;

            if (DateTime.TryParse(search, out parsedTime))
            {
                if (isMonthSpecific.IsMatch(search))  //Regex for month/year
                {
                    return(query.Where(p => DbFunctions.DiffMonths(p.dateTimeofWork, parsedTime) == 0 ? true : false));
                }
                if (isDaySpecific.IsMatch(search))  //Regex for day/month/year
                {
                    return(query.Where(p => DbFunctions.DiffDays(p.dateTimeofWork, parsedTime) == 0 ? true : false));
                }
                if (isTimeSpecific.IsMatch(search)) //Regex for day/month/year time
                {
                    return(query.Where(p => DbFunctions.DiffHours(p.dateTimeofWork, parsedTime) == 0 ? true : false));
                }
            }
            return(query);
        }