Example #1
0
        public static int SortServers(ref Config config, EServerColName name, bool asc)
        {
            if (config.vmess.Count <= 0)
            {
                return(-1);
            }
            switch (name)
            {
            case EServerColName.configType:
            case EServerColName.remarks:
            case EServerColName.address:
            case EServerColName.port:
            case EServerColName.security:
            case EServerColName.network:
            case EServerColName.testResult:
                break;

            default:
                return(-1);
            }
            string itemId = config.getItemId();
            var    items  = config.vmess.AsQueryable();

            if (asc)
            {
                config.vmess = items.OrderBy(name.ToString()).ToList();
            }
            else
            {
                config.vmess = items.OrderByDescending(name.ToString()).ToList();
            }

            var index_ = config.vmess.FindIndex(it => it.getItemId() == itemId);

            if (index_ >= 0)
            {
                config.index = index_;
            }

            ToJsonFile(config);
            return(0);
        }
Example #2
0
        public static int SortServers(ref Config config, ref List <VmessItem> lstVmess, EServerColName name, bool asc)
        {
            if (lstVmess.Count <= 0)
            {
                return(-1);
            }
            var propertyName = string.Empty;

            switch (name)
            {
            case EServerColName.configType:
            case EServerColName.remarks:
            case EServerColName.address:
            case EServerColName.port:
            case EServerColName.security:
            case EServerColName.network:
            case EServerColName.streamSecurity:
            case EServerColName.testResult:
                propertyName = name.ToString();
                break;

            case EServerColName.subRemarks:
                propertyName = "subid";
                break;

            default:
                return(-1);
            }

            var items = lstVmess.AsQueryable();

            if (asc)
            {
                lstVmess = items.OrderBy(propertyName).ToList();
            }
            else
            {
                lstVmess = items.OrderByDescending(propertyName).ToList();
            }
            for (int i = 0; i < lstVmess.Count; i++)
            {
                lstVmess[i].sort = (i + 1) * 10;
            }

            ToJsonFile(config);
            return(0);
        }
Example #3
0
        public static int SortServers(ref Config config, EServerColName name, bool asc)
        {
            if (config.vmess.Count <= 0)
            {
                return(-1);
            }
            var propertyName = string.Empty;

            switch (name)
            {
            case EServerColName.configType:
            case EServerColName.remarks:
            case EServerColName.address:
            case EServerColName.port:
            case EServerColName.security:
            case EServerColName.network:
            case EServerColName.streamSecurity:
            case EServerColName.testResult:
                propertyName = name.ToString();
                break;

            case EServerColName.subRemarks:
                propertyName = "subid";
                break;

            default:
                return(-1);
            }

            var indexId = config.indexId();
            var items   = config.vmess.AsQueryable();

            if (asc)
            {
                config.vmess = items.OrderBy(propertyName).ToList();
            }
            else
            {
                config.vmess = items.OrderByDescending(propertyName).ToList();
            }

            SetIndex(ref config, indexId);

            ToJsonFile(config);
            return(0);
        }