2021-02-01 23:31:07 -05:00
|
|
|
|
using PoweredSoft.CQRS.Abstractions.Attributes;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Reflection;
|
|
|
|
|
|
|
|
|
|
namespace PoweredSoft.CQRS.Abstractions.Discovery
|
|
|
|
|
{
|
|
|
|
|
public class QueryMeta : IQueryMeta
|
|
|
|
|
{
|
|
|
|
|
public QueryMeta(Type queryType, Type serviceType, Type queryResultType)
|
|
|
|
|
{
|
|
|
|
|
QueryType = queryType;
|
|
|
|
|
ServiceType = serviceType;
|
|
|
|
|
QueryResultType = queryResultType;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual QueryNameAttribute NameAttribute => QueryType.GetCustomAttribute<QueryNameAttribute>();
|
|
|
|
|
|
|
|
|
|
public virtual string Name
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
var name = NameAttribute?.Name ?? QueryType.Name.Replace("Query", string.Empty);
|
|
|
|
|
return name;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual Type QueryType { get; }
|
|
|
|
|
public virtual Type ServiceType { get; }
|
|
|
|
|
public virtual Type QueryResultType { get; }
|
2021-02-02 19:01:29 -05:00
|
|
|
|
public virtual string Category => "BasicQuery";
|
2021-02-03 19:51:23 -05:00
|
|
|
|
|
|
|
|
|
public string LowerCamelCaseName
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(Name))
|
|
|
|
|
return Name;
|
|
|
|
|
|
|
|
|
|
var name = Name;
|
|
|
|
|
var firstLetter = Char.ToLowerInvariant(name[0]);
|
|
|
|
|
var ret = $"{firstLetter}{name.Substring(1)}";
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-02-01 23:31:07 -05:00
|
|
|
|
}
|
|
|
|
|
}
|