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); }
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); }
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); }