Пример #1
0
        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);
        }