Add Logger; AcUserDal fix; AcUserDalTests improvements, etc...
This commit is contained in:
parent
715ac0fa5b
commit
3b941e9c71
|
|
@ -10,8 +10,4 @@
|
||||||
<ProjectReference Include="..\AyCode.Utils\AyCode.Utils.csproj" />
|
<ProjectReference Include="..\AyCode.Utils\AyCode.Utils.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Enums\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
namespace AyCode.Core.Enums
|
||||||
|
{
|
||||||
|
public enum AppType : byte
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
Server = 1,
|
||||||
|
Relay = 5,
|
||||||
|
Game = 10,
|
||||||
|
Web = 15,
|
||||||
|
Mobile = 20,
|
||||||
|
Dissonance = 25,
|
||||||
|
UnitTest = 255,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
namespace AyCode.Core.Logger
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Az adatbásisban van egy LogLevel tábla, ha változtatunk az enum-ok értékén, akkor ott is igazítsuk hozzá!
|
||||||
|
/// </summary>
|
||||||
|
public enum LogLevel : byte
|
||||||
|
{
|
||||||
|
Detail = 0,
|
||||||
|
Trace = 5,
|
||||||
|
Debug = 10,
|
||||||
|
Info = 15,
|
||||||
|
Suggest = 17,
|
||||||
|
Warning = 20,
|
||||||
|
Error = 25,
|
||||||
|
Disabled = 255,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,32 +1,85 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using AyCode.Core.Consts;
|
using AyCode.Core.Consts;
|
||||||
|
using AyCode.Core.Enums;
|
||||||
|
|
||||||
namespace AyCode.Core.Logger
|
namespace AyCode.Core.Logger
|
||||||
{
|
{
|
||||||
public static class Logger
|
public static class Logger
|
||||||
{
|
{
|
||||||
public static void Info(string text)
|
public static LogLevel LogLevel { get; set; } = LogLevel.Detail;
|
||||||
|
public static AppType AppType { get; set; } = AppType.Server;
|
||||||
|
|
||||||
|
public static void Detail(string text, [CallerMemberName] string? memberName = null)
|
||||||
|
=> WriteToConsole(LogLevel.Detail, GetDiagnosticText(LogLevel.Detail, text, memberName, null));
|
||||||
|
|
||||||
|
public static void Debug(string text, [CallerMemberName] string? memberName = null)
|
||||||
|
=> WriteToConsole(LogLevel.Debug, GetDiagnosticText(LogLevel.Debug, text, memberName, null));
|
||||||
|
|
||||||
|
public static void Info(string text, [CallerMemberName] string? memberName = null)
|
||||||
|
=> WriteToConsole(LogLevel.Info, GetDiagnosticText(LogLevel.Info, text, memberName, null));
|
||||||
|
|
||||||
|
public static void Warning(string text, [CallerMemberName] string? memberName = null)
|
||||||
|
=> WriteToConsole(LogLevel.Warning, GetDiagnosticText(LogLevel.Warning, text, memberName, null));
|
||||||
|
|
||||||
|
public static void Suggest(string text, [CallerMemberName] string? memberName = null)
|
||||||
|
=> WriteToConsole(LogLevel.Suggest, GetDiagnosticText(LogLevel.Suggest, text, memberName, null));
|
||||||
|
|
||||||
|
public static void Error(string text, [CallerMemberName] string? memberName = null)
|
||||||
|
=> WriteToConsole(LogLevel.Error, GetDiagnosticText(LogLevel.Error, text, memberName, null));
|
||||||
|
|
||||||
|
public static void Error(string text, Exception ex, [CallerMemberName] string? memberName = null)
|
||||||
|
=> WriteToConsole(LogLevel.Error, GetDiagnosticText(LogLevel.Error, text, memberName, ex));
|
||||||
|
|
||||||
|
private static void WriteToConsole(LogLevel logLevel, string text)
|
||||||
|
{
|
||||||
|
if (logLevel < LogLevel) return;
|
||||||
|
|
||||||
|
//lock (ForWriterLock)
|
||||||
|
{
|
||||||
|
//if (logLevel > LogLevel.Trace && logLevel < LogLevel.Suggest)
|
||||||
{
|
{
|
||||||
Console.WriteLine(text);
|
Console.WriteLine(text);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Warning(string text)
|
if (logLevel <= LogLevel.Trace)
|
||||||
{
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Gray;
|
||||||
Console.WriteLine(text);
|
Console.WriteLine(text);
|
||||||
}
|
}
|
||||||
|
else if (logLevel == LogLevel.Suggest)
|
||||||
public static void Error(string text)
|
|
||||||
{
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Cyan;
|
||||||
Console.WriteLine(text);
|
Console.WriteLine(text);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
public static void Error(string text, Exception ex)
|
|
||||||
{
|
{
|
||||||
Console.WriteLine($"{text}{AcEnv.NL}{ex.Message}{AcEnv.NL}{ex}");
|
Console.ForegroundColor = logLevel == LogLevel.Warning ? ConsoleColor.Yellow : ConsoleColor.Red;
|
||||||
|
Console.WriteLine($"{AcEnv.NL}{text}{AcEnv.NL}");
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.ForegroundColor = ConsoleColor.White;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetDiagnosticText(LogLevel logLevel, string logText, string? callerName, Exception? ex)
|
||||||
|
{
|
||||||
|
var threadId = Environment.CurrentManagedThreadId;
|
||||||
|
|
||||||
|
return $"[{DateTime.Now:HH:mm:ss.fff}] [{AppType.ToString()[0]}] {"[" + logLevel + "]",-9} {"[...->" + callerName + "]",-54} {"[" + threadId + "]",5} {logText}{ErrorText(ex)}";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ErrorText(Exception? ex)
|
||||||
|
{
|
||||||
|
if (ex == null) return string.Empty;
|
||||||
|
|
||||||
|
var errorType = ex.GetType().Name;
|
||||||
|
return string.IsNullOrWhiteSpace(errorType) ? string.Empty : $"{Environment.NewLine}[{errorType.ToUpper()}]: {ex}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ namespace AyCode.Database.Tests.Users
|
||||||
{
|
{
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
|
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
|
||||||
public void GetUserById_ReturnsUser_WhenUserExists(string userIdString)
|
public virtual void GetUserById_ReturnsUser_WhenUserExists(string userIdString)
|
||||||
{
|
{
|
||||||
var userId = Guid.Parse(userIdString);
|
var userId = Guid.Parse(userIdString);
|
||||||
var user = Dal.GetUserById(userId);
|
var user = Dal.GetUserById(userId);
|
||||||
|
|
@ -25,7 +25,7 @@ namespace AyCode.Database.Tests.Users
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
[DataRow("test@tiam.hu")]
|
[DataRow("test@tiam.hu")]
|
||||||
public void GetUserByEmail_ReturnsUser_WhenUserExists(string email)
|
public virtual void GetUserByEmail_ReturnsUser_WhenUserExists(string email)
|
||||||
{
|
{
|
||||||
var user = Dal.GetUserByEmail(email);
|
var user = Dal.GetUserByEmail(email);
|
||||||
|
|
||||||
|
|
@ -35,7 +35,7 @@ namespace AyCode.Database.Tests.Users
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
[DataRow("test@tiam.hu")]
|
[DataRow("test@tiam.hu")]
|
||||||
public async Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
|
public virtual async Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
|
||||||
{
|
{
|
||||||
TUser? user = null;
|
TUser? user = null;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,14 +14,11 @@ using AyCode.Database.DbSets.Users;
|
||||||
|
|
||||||
namespace AyCode.Database.DataLayers.Users
|
namespace AyCode.Database.DataLayers.Users
|
||||||
{
|
{
|
||||||
public abstract class AcUserDalBase<TDbContext, TUser, TUserToken> : AcDalBase<TDbContext>, IAcUserDbContextBase<TUser, TUserToken>
|
public abstract class AcUserDalBase<TDbContext, TUser, TUserToken> : AcDalBase<TDbContext>
|
||||||
where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TUserToken>
|
where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TUserToken>
|
||||||
where TUser : class, IUserBase
|
where TUser : class, IUserBase
|
||||||
where TUserToken : class, IUserTokenBase
|
where TUserToken : class, IUserTokenBase
|
||||||
{
|
{
|
||||||
public DbSet<TUser> Users { get; set; }
|
|
||||||
public DbSet<TUserToken> UserTokens { get; set; }
|
|
||||||
|
|
||||||
public TUser? GetUserById(Guid userId) => Session(x => x.GetUserById(userId));
|
public TUser? GetUserById(Guid userId) => Session(x => x.GetUserById(userId));
|
||||||
public Task<TUser?> GetUserByIdAsync(Guid userId) => SessionAsync(x => x.GetUserById(userId));
|
public Task<TUser?> GetUserByIdAsync(Guid userId) => SessionAsync(x => x.GetUserById(userId));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Core.Logger;
|
||||||
|
using AyCode.Interfaces.Users;
|
||||||
|
|
||||||
namespace AyCode.Database.DbSets.Users;
|
namespace AyCode.Database.DbSets.Users;
|
||||||
|
|
||||||
|
|
@ -11,6 +12,8 @@ public static class AcUserDbSetExtensions
|
||||||
|
|
||||||
public static TUser? GetUserByEmail<TUser>(this IAcUserDbSet<TUser> ctx, string email) where TUser : class, IUserBase
|
public static TUser? GetUserByEmail<TUser>(this IAcUserDbSet<TUser> ctx, string email) where TUser : class, IUserBase
|
||||||
{
|
{
|
||||||
|
Logger.Info($"GetUserByEmail: {email}");
|
||||||
|
|
||||||
var emailLower = email.ToLower();
|
var emailLower = email.ToLower();
|
||||||
return ctx.Users.FirstOrDefault(u => u.EmailAddress == emailLower);
|
return ctx.Users.FirstOrDefault(u => u.EmailAddress == emailLower);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue