/// <summary> /// 根据条件获取所有数据 /// </summary> /// <param name="input">查询条件的类</param> private async Task <List <OperateLogEntity> > GetAllListByCondition(QueryOperateLogInputDto input) { try { // 打开Translate.xml文件获取翻译结果 XElement xElement = XElement.Load(ConfigHelper.TranslateFilePath); XElement OperateLog = xElement.Descendants("Class").FirstOrDefault(s => s.Attribute("name").Value.Equals("OperateLog")); List <TranslateOutput> listTranslate = new List <TranslateOutput>(); OperateLog.Descendants("word").ToList().ForEach(s => { listTranslate.Add(GetTranslateOutput(s)); }); bool bIsEnglish = ConfigHelper.IsEnglish == "1" ? true : false; // 系统功能 string SystemFunc = null; switch (input.SystemFunc) { case "1": SystemFunc = GetTranslate(1001, bIsEnglish, listTranslate); break; case "2": SystemFunc = GetTranslate(1002, bIsEnglish, listTranslate); break; case "3": SystemFunc = GetTranslate(1003, bIsEnglish, listTranslate); break; default: break; } // 操作类型 string OperateType = null; switch (input.OperateType) { case "1": OperateType = GetTranslate(1101, bIsEnglish, listTranslate); break; case "2": OperateType = GetTranslate(1102, bIsEnglish, listTranslate); break; case "3": OperateType = GetTranslate(1103, bIsEnglish, listTranslate); break; case "4": OperateType = GetTranslate(1104, bIsEnglish, listTranslate); break; case "5": OperateType = GetTranslate(1105, bIsEnglish, listTranslate); break; case "6": OperateType = GetTranslate(1106, bIsEnglish, listTranslate); break; default: break; } // 操作时间 DateTime?StartTime = string.IsNullOrEmpty(input.StartTime) ? null : (DateTime?)Convert.ToDateTime(input.StartTime + " 00:00:00"); DateTime?EndTime = string.IsNullOrEmpty(input.EndTime) ? null : (DateTime?)Convert.ToDateTime(input.EndTime + " 23:59:59"); // 查询用户 List <string> UserCode = new List <string>(); if (string.IsNullOrEmpty(input.QueryId)) { List <SystemUserEntity> queryUser = GetAllUserByUserAreaCode(input.OperateId, null).Result; if (queryUser == null) { return(null); } if (queryUser.Count() == 0) { return(null); } foreach (SystemUserEntity element in queryUser) { UserCode.Add(element.UserCode); } } else { JavaScriptSerializer json = new JavaScriptSerializer(); UserCode = json.Deserialize <List <string> >(input.QueryId); } //List<OperateLogEntity> query = await _IOperateLogRepository.GetAllListAsync(s => (UserCode.Contains(s.UserCode) // && (string.IsNullOrEmpty(SystemFunc) ? true : s.SystemFunc.Equals(SystemFunc)) // && (string.IsNullOrEmpty(OperateType) ? true : s.OperateType.Equals(OperateType)) // && (string.IsNullOrEmpty(input.StartTime) ? true : s.OperateTime > StartTime) // && (string.IsNullOrEmpty(input.EndTime) ? true : s.OperateTime < EndTime))); var expression = LinqExtensions.True <OperateLogEntity>(); expression = expression.And(s => UserCode.Contains(s.UserCode)); if (!string.IsNullOrEmpty(SystemFunc)) { expression = expression.And(s => s.SystemFunc.Equals(SystemFunc)); } if (!string.IsNullOrEmpty(OperateType)) { expression = expression.And(s => s.OperateType.Equals(OperateType)); } if (!string.IsNullOrEmpty(input.StartTime)) { expression = expression.And(s => s.OperateTime > StartTime); } if (!string.IsNullOrEmpty(input.EndTime)) { expression = expression.And(s => s.OperateTime < EndTime); } List <OperateLogEntity> query = _IOperateLogRepository.GetAllList(expression); return(query.OrderByDescending(s => s.OperateTime).ToList()); } catch (Exception ex) { throw new Exception(ex.Message); } }