예제 #1
0
		public IQueryable<ServiceOrderEntity> GetServiceOrdersByCondition(ServiceOrderSearchCondition condition)
		{
			var query = _serviceorderRepository.Table;
			try
			{
				if (condition.AddtimeBegin.HasValue)
                {
                    query = query.Where(q => q.AddTime>= condition.AddtimeBegin.Value);
                }
                if (condition.AddtimeEnd.HasValue)
                {
                    query = query.Where(q => q.AddTime < condition.AddtimeEnd.Value);
                }
				if (condition.FleeBegin.HasValue)
                {
                    query = query.Where(q => q.Flee>= condition.FleeBegin.Value);
                }
                if (condition.FleeEnd.HasValue)
                {
                    query = query.Where(q => q.Flee < condition.FleeEnd.Value);
                }
				if (condition.ServicetimeBegin.HasValue)
                {
                    query = query.Where(q => q.Servicetime>= condition.ServicetimeBegin.Value);
                }
                if (condition.ServicetimeEnd.HasValue)
                {
                    query = query.Where(q => q.Servicetime < condition.ServicetimeEnd.Value);
                }
				if (!string.IsNullOrEmpty(condition.OrderNo))
                {
                    query = query.Where(q => q.OrderNo == condition.OrderNo);
                }
//				if (!string.IsNullOrEmpty(condition.Address))
//                {
//                    query = query.Where(q => q.Address.Contains(condition.Address));
//                }
				if (!string.IsNullOrEmpty(condition.Remark))
                {
                    query = query.Where(q => q.Remark.Contains(condition.Remark));
                }
				if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }
				if (condition.AddUsers != null && condition.AddUsers.Any())
                {
                    query = query.Where(q => condition.AddUsers.Contains(q.AddUser));
                }
			    if (condition.Status != null)
			    {
			        query = query.Where(c => c.Status == condition.Status);
			    }
                
				if(condition.OrderBy.HasValue)
				{
					switch (condition.OrderBy.Value)
                    {
						case EnumServiceOrderSearchOrderBy.OrderById:
							query = condition.IsDescending?query.OrderByDescending(q=>q.Id):query.OrderBy(q=>q.Id);
							break;
						case EnumServiceOrderSearchOrderBy.OrderByOrderNo:
							query = condition.IsDescending?query.OrderByDescending(q=>q.OrderNo):query.OrderBy(q=>q.OrderNo);
							break;
                    }
					
				}
				else
				{
					query = query.OrderBy(q=>q.Id);
				}

				if (condition.Page.HasValue && condition.PageCount.HasValue)
                {
                    query = query.Skip((condition.Page.Value - 1)*condition.PageCount.Value).Take(condition.PageCount.Value);
                }
				return query;
			}
			catch(Exception e)
			{
				_log.Error(e,"数据库操作出错");
                return null;
			}
		}
예제 #2
0
		public int GetServiceOrderCount (ServiceOrderSearchCondition condition)
		{
			var query = _serviceorderRepository.Table;
			try
			{
				if (condition.AddtimeBegin.HasValue)
                {
                    query = query.Where(q => q.AddTime>= condition.AddtimeBegin.Value);
                }
                if (condition.AddtimeEnd.HasValue)
                {
                    query = query.Where(q => q.AddTime < condition.AddtimeEnd.Value);
                }
				if (condition.FleeBegin.HasValue)
                {
                    query = query.Where(q => q.Flee>= condition.FleeBegin.Value);
                }
                if (condition.FleeEnd.HasValue)
                {
                    query = query.Where(q => q.Flee < condition.FleeEnd.Value);
                }
				if (condition.ServicetimeBegin.HasValue)
                {
                    query = query.Where(q => q.Servicetime>= condition.ServicetimeBegin.Value);
                }
                if (condition.ServicetimeEnd.HasValue)
                {
                    query = query.Where(q => q.Servicetime < condition.ServicetimeEnd.Value);
                }
				if (!string.IsNullOrEmpty(condition.OrderNo))
                {
                    query = query.Where(q => q.OrderNo == condition.OrderNo);
                }
//				if (!string.IsNullOrEmpty(condition.Address))
//                {
//                    query = query.Where(q => q.Address.Contains(condition.Address));
//                }
				if (!string.IsNullOrEmpty(condition.Remark))
                {
                    query = query.Where(q => q.Remark.Contains(condition.Remark));
                }
				if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }
				if (condition.AddUsers != null && condition.AddUsers.Any())
                {
                    query = query.Where(q => condition.AddUsers.Contains(q.AddUser));
                }
                if (condition.Status != null)
                {
                    query = query.Where(c => c.Status == condition.Status);
                }
				return query.Count();
			}
			catch(Exception e)
			{
				_log.Error(e,"数据库操作出错");
                return -1;
			}
		}