public List <Data> ValidateValve(string tokenName, List <string> querys, ref string message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } #region validate query parameter: owner, plant, valvetype, filetype, tagnumber, serialnumber message = "ERROR: Please check input parameters."; for (var i = 0; i < querys.Count - 2; i++) { if (querys[i].IsNullOrEmptyOrSpace()) { return(null); } } var valveTable = querys[2].ToStringEx().Trim().ToUpper(); if (!AppConstants.ValveTypes.Split(",").Contains(valveTable)) { return(null); } valveTable = valveTable.GetValveTableName(); message = querys[3].ToStringEx().Trim().ToUpper(); if (!AppConstants.DownloadFileTypes.Split(",").Contains(message)) { return(null); } // tag, serial can not be null at the same time if (querys[4].IsNullOrEmptyOrSpace() && querys[5].IsNullOrEmptyOrSpace()) { return(null); } #endregion var queryMode = "ALL"; if (querys[4].IsNullOrEmptyOrSpace()) { queryMode = "SER"; } else if (querys[5].IsNullOrEmptyOrSpace()) { queryMode = "TAG"; } var paras = tokenName.DecryptDes().Split("|"); var dtRepairs = _dataService.ValidateRepairData(paras[0].ToStringEx(), valveTable, querys[0].ToStringEx(), querys[1].ToStringEx(), querys[4].ToStringEx(), querys[5].ToStringEx(), queryMode, out var results); if (results[0].StartsWith("ERROR")) { message = results[0]; return(null); } if (dtRepairs == null) { message = "ERROR: REPAIR NOT EXISTS!"; return(null); } var valves = new List <Data>(); var createDate = DateTime.UtcNow.ToString(Constants.DateFormat); foreach (DataRow dr in dtRepairs.Rows) { valves.Add(new Data { TagNumber = dr["TAGNUMBER"].ToStringEx(), SerialNumber = dr["SERIAL"].ToStringEx(), OwnerName = querys[0].ToStringEx().Trim().ToUpper(), PlantLocation = querys[1].ToStringEx().Trim().ToUpper(), CreateDate = createDate, TenantKey = dr["TENANTKEY"].ToStringEx(), EquipmentKey = dr["EQUIPMENTKEY"].ToStringEx(), ValveTable = valveTable, Token = tokenName, FileType = message }); } return(valves); }