DocSpace-client/thirdparty/AppLimit.CloudComputing.SharpBox/Common/Extensions/SharpBoxExtensions.cs
2020-03-13 16:40:58 +03:00

63 lines
1.8 KiB
C#

using System;
using System.IO;
using System.Xml.Linq;
namespace AppLimit.CloudComputing.SharpBox.Common.Extensions
{
public static class SharpBoxExtensions
{
private const int BufferSize = 2048;
public static void CopyTo(this Stream src, Stream dst)
{
if (src == null || dst == null)
return;
var buffer = new byte[BufferSize];
int readed;
while ((readed = src.Read(buffer, 0, BufferSize)) > 0)
{
dst.Write(buffer, 0, readed);
}
}
public static string ReplaceFirst(this string src, string replace, string replaceWith)
{
var ind = src.IndexOf(replace, StringComparison.InvariantCulture);
if (ind != -1)
{
src = src.Remove(ind, replace.Length).Insert(ind, replaceWith);
}
return src;
}
public static string ReplaceLast(this string src, string replace, string replaceWith)
{
var ind = src.LastIndexOf(replace, StringComparison.InvariantCulture);
if (ind != -1)
{
src = src.Remove(ind, replace.Length).Insert(ind, replaceWith);
}
return src;
}
public static XAttribute AttributeOrNull(this XElement el, string attr)
{
return el != null ? el.Attribute(attr) : null;
}
public static string ValueOrEmpty(this XElement el)
{
return el != null ? el.Value : string.Empty;
}
public static string ValueOrEmpty(this XAttribute attr)
{
return attr != null ? attr.Value : string.Empty;
}
}
}