1
This commit is contained in:
57
Core/Interfaces/INameProvider.cs
Normal file
57
Core/Interfaces/INameProvider.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BITKit
|
||||
{
|
||||
public interface INameProvider
|
||||
{
|
||||
string GetName(object obj, params object[] extensions);
|
||||
}
|
||||
[Serializable]
|
||||
public abstract class NameProvider : INameProvider
|
||||
{
|
||||
public abstract string GetName(object obj, params object[] extensions);
|
||||
protected string GetExtension(params object[] extensions)
|
||||
{
|
||||
return string.Concat(extensions.Select(x => x.ToString()));
|
||||
}
|
||||
}
|
||||
[Serializable]
|
||||
public class StringNameProvider : NameProvider
|
||||
{
|
||||
public string name;
|
||||
public override string GetName(object obj, params object[] extensions)
|
||||
{
|
||||
|
||||
return string.Concat(name, GetExtension(extensions));
|
||||
}
|
||||
}
|
||||
[Serializable]
|
||||
public class HashNameProvider : NameProvider
|
||||
{
|
||||
public override string GetName(object obj, params object[] extensions)
|
||||
{
|
||||
return string.Concat(obj.GetHashCode().ToString(), GetExtension(extensions));
|
||||
}
|
||||
}
|
||||
[Serializable]
|
||||
public class GuidNameProvider:NameProvider
|
||||
{
|
||||
public override string GetName(object obj, params object[] extensions)
|
||||
{
|
||||
return string.Concat(Guid.NewGuid().ToString(), GetExtension(extensions));
|
||||
}
|
||||
}
|
||||
[Serializable]
|
||||
public class DateTimeNameProvider : NameProvider
|
||||
{
|
||||
public string timeFormat;
|
||||
public override string GetName(object obj, params object[] extensions)
|
||||
{
|
||||
return string.Concat(DateTime.Now.ToString(timeFormat), GetExtension(extensions));
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user