docker files fixes from liaqat
This commit is contained in:
66
src/Managing.Core/MiscExtensions.cs
Normal file
66
src/Managing.Core/MiscExtensions.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
namespace Managing.Core
|
||||
{
|
||||
public static class MiscExtensions
|
||||
{
|
||||
// Ex: collection.TakeLast(5);
|
||||
//public static IEnumerable<T> TakeLast<T>(this IEnumerable<T> source, int N)
|
||||
//{
|
||||
// return source.Skip(Math.Max(0, source.Count() - N));
|
||||
//}
|
||||
|
||||
// foreach(IEnumerable<User> batch in users.Batch(1000))
|
||||
public static IEnumerable<IEnumerable<T>> Batch<T>(
|
||||
this IEnumerable<T> source, int size)
|
||||
{
|
||||
T[] bucket = null;
|
||||
var count = 0;
|
||||
|
||||
foreach (var item in source)
|
||||
{
|
||||
if (bucket == null)
|
||||
bucket = new T[size];
|
||||
|
||||
bucket[count++] = item;
|
||||
|
||||
if (count != size)
|
||||
continue;
|
||||
|
||||
yield return bucket.Select(x => x);
|
||||
|
||||
bucket = null;
|
||||
count = 0;
|
||||
}
|
||||
|
||||
// Return the last bucket with all remaining elements
|
||||
if (bucket != null && count > 0)
|
||||
{
|
||||
Array.Resize(ref bucket, count);
|
||||
yield return bucket.Select(x => x);
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddItem<T>(this List<T> list, T item)
|
||||
{
|
||||
if (!list.Contains(item))
|
||||
{
|
||||
list.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
public static T ParseEnum<T>(string value)
|
||||
{
|
||||
return (T)Enum.Parse(typeof(T), value, true);
|
||||
}
|
||||
|
||||
public static string Base64Encode(string plainText)
|
||||
{
|
||||
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
|
||||
return System.Convert.ToBase64String(plainTextBytes);
|
||||
}
|
||||
public static string Base64Decode(string base64EncodedData)
|
||||
{
|
||||
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
|
||||
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user