diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index aaa6fd11..2289781a 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -40,6 +40,7 @@ namespace TIAM.Database.DataLayers.Admins } #region Car + public Task> GetAllCarsAsync() => SessionAsync(ctx => ctx.Cars.OrderBy(x => x.Manufacture).ThenBy(x => x.CarModel).ToList()); public Task> GetAllCarsbyProductIdAsync(Guid productId) => SessionAsync(ctx => ctx.Cars.Where(x => x.UserProductMapping.ProductId == productId).OrderBy(x => x.Manufacture).ThenBy(x => x.CarModel).ToList()); public Car? GetCarById(Guid carId) => Session(ctx => ctx.Cars.FirstOrDefault(x => x.Id == carId)); @@ -102,7 +103,8 @@ namespace TIAM.Database.DataLayers.Admins //} public Task UpdateTransferAsync(Transfer transfer, TransferToDriver transferToDriver) => UpdateTransferAsync(transfer, [transferToDriver]); - public Task UpdateTransferAsync(Transfer transfer, List transferToDrivers) + + public Task UpdateTransferAsync(Transfer transfer, List transferToDrivers) => TransactionAsync(ctx => { ctx.AddRange(transferToDrivers); @@ -113,27 +115,31 @@ namespace TIAM.Database.DataLayers.Admins public Task RemoveTransferAsync(Transfer transfer) => RemoveTransferAsync(transfer.Id); public Task RemoveTransferAsync(Guid transferId) => TransactionAsync(ctx => ctx.RemoveTransfer(transferId)); + #endregion Transfer #region TransferDestination - public List GetTransferDestinations() => Session(ctx=>ctx.GetTransferDestinations().ToList()); - public TransferDestination? GetTransferDestinationById(Guid transferDestinationId) => Session(ctx=>ctx.GetTransferDestinationById(transferDestinationId)); - public Task GetTransferDestinationByIdAsync(Guid transferDestinationId) => SessionAsync(ctx=>ctx.GetTransferDestinationById(transferDestinationId)); + + public List GetTransferDestinations() => Session(ctx => ctx.GetTransferDestinations().ToList()); + public TransferDestination? GetTransferDestinationById(Guid transferDestinationId) => Session(ctx => ctx.GetTransferDestinationById(transferDestinationId)); + public Task GetTransferDestinationByIdAsync(Guid transferDestinationId) => SessionAsync(ctx => ctx.GetTransferDestinationById(transferDestinationId)); public string? GetTransferDestinationJsonById(Guid transferDestinationId) => Session(ctx => ctx.GetTransferDestinationById(transferDestinationId)?.ToJson()); public Task AddTransferDestinationAsync(TransferDestination transferDestination) => TransactionAsync(ctx => ctx.AddTransferDestination(transferDestination)); public Task UpdateTransferDestinationAsync(TransferDestination transferDestination) => TransactionAsync(ctx => ctx.UpdateTransferDestination(transferDestination)); public Task RemoveTransferDestinationAsync(TransferDestination transferDestination, bool removeAddress) => RemoveTransferDestinationAsync(transferDestination.Id, removeAddress); public Task RemoveTransferDestinationAsync(Guid transferDestinationId, bool removeAddress) => TransactionAsync(ctx => ctx.RemoveTransferDestination(transferDestinationId, removeAddress)); + #endregion TransferDestination #region TransferToDriver + public Task GetTransferToDriverByIdAsync(Guid transferToDriverId, bool autoInclude = true) => SessionAsync(ctx => ctx.GetTransferToDriverById(transferToDriverId, autoInclude)); public Task> GetTransferToDriversByTransferIdAsync(Guid transferId, bool autoInclude = true) => SessionAsync(ctx => ctx.GetTransferToDriversByTransferId(transferId, autoInclude).ToList()); public Task AddTransferToDriverAsync(TransferToDriver transferToDriver) => TransactionAsync(ctx => ctx.AddTransferToDriver(transferToDriver)); - public Task UpdateTransferToDriverAsync(TransferToDriver transferToDriver) + public Task UpdateTransferToDriverAsync(TransferToDriver transferToDriver) => UpdateSafeAsync(transferToDriver, (ctx, safeTransferToDriver) => ctx.UpdateTransferToDriver(safeTransferToDriver)); //public async Task UpdateTransferToDriverAsync(TransferToDriver transferToDriver) //{ @@ -156,46 +162,53 @@ namespace TIAM.Database.DataLayers.Admins //} public Task RemoveTransferToDriverAsync(TransferToDriver transferToDriver) => TransactionAsync(ctx => ctx.RemoveTransferToDriver(transferToDriver.Id)); + #endregion TransferToDriver #region Drivers + public Task> GetAllDriversAsync(bool autoInclude = true) => SessionAsync(ctx => ctx.GetAllDrivers(autoInclude).ToList()); public Task> GetAllDriversByProductIdAsync(Guid productId, bool autoInclude = true) => SessionAsync(ctx => ctx.GetAllDriversByProductId(productId, autoInclude).ToList()); + #endregion Drivers #region TransferDestinationToProduct - public TransferDestinationToProduct? GetTransferDestinationToProductById(Guid transferDestinationToProductId) => Session(ctx=>ctx.GetTransferDestinationToProductById(transferDestinationToProductId)); - public Task GetTransferDestinationToProductByIdAsync(Guid transferDestinationToProductId) => SessionAsync(ctx=>ctx.GetTransferDestinationToProductById(transferDestinationToProductId)); + + public TransferDestinationToProduct? GetTransferDestinationToProductById(Guid transferDestinationToProductId) => Session(ctx => ctx.GetTransferDestinationToProductById(transferDestinationToProductId)); + public Task GetTransferDestinationToProductByIdAsync(Guid transferDestinationToProductId) => SessionAsync(ctx => ctx.GetTransferDestinationToProductById(transferDestinationToProductId)); public string? GetTransferDestinationToProductJsonById(Guid transferDestinationToProductId) => Session(ctx => ctx.GetTransferDestinationToProductById(transferDestinationToProductId)?.ToJson()); - public TransferDestinationToProduct? GetTransferDestinationToProduct(Guid productId, Guid transferDestinationId) => Session(ctx=>ctx.GetTransferDestinationToProduct(productId, transferDestinationId)); - public Task> GetTransferDestinationToProducts() => SessionAsync(ctx=>ctx.GetTransferDestinationToProducts().ToList()); - public Task> GetTransferDestinationToProductsByProductId(Guid productId) => SessionAsync(ctx=>ctx.GetTransferDestinationToProductsByProductId(productId).ToList()); - public Task> GetTransferDestinationToProductsByTransferDestinationId(Guid transferDestinationId) => SessionAsync(ctx=>ctx.GetTransferDestinationToProductsByTransferDestinationId(transferDestinationId).ToList()); + public TransferDestinationToProduct? GetTransferDestinationToProduct(Guid productId, Guid transferDestinationId) => Session(ctx => ctx.GetTransferDestinationToProduct(productId, transferDestinationId)); + public Task> GetTransferDestinationToProducts() => SessionAsync(ctx => ctx.GetTransferDestinationToProducts().ToList()); + public Task> GetTransferDestinationToProductsByProductId(Guid productId) => SessionAsync(ctx => ctx.GetTransferDestinationToProductsByProductId(productId).ToList()); + public Task> GetTransferDestinationToProductsByTransferDestinationId(Guid transferDestinationId) => SessionAsync(ctx => ctx.GetTransferDestinationToProductsByTransferDestinationId(transferDestinationId).ToList()); public string? GetTransferDestinationToProductJson(Guid productId, Guid transferDestinationId) => Session(ctx => ctx.GetTransferDestinationToProduct(productId, transferDestinationId)?.ToJson()); public Task AddTransferDestinationToProductAsync(TransferDestinationToProduct transferDestinationToProduct) => TransactionAsync(ctx => ctx.AddTransferDestinationToProduct(transferDestinationToProduct)); public Task UpdateTransferDestinationToProductAsync(TransferDestinationToProduct transferDestinationToProduct) => TransactionAsync(ctx => ctx.UpdateTransferDestinationToProduct(transferDestinationToProduct)); public Task RemoveTransferDestinationToProductAsync(TransferDestinationToProduct transferDestinationToProduct) => RemoveTransferDestinationToProductAsync(transferDestinationToProduct.Id); public Task RemoveTransferDestinationToProductAsync(Guid transferDestinationToProductId) => TransactionAsync(ctx => ctx.RemoveTransferDestinationToProduct(transferDestinationToProductId)); + #endregion TransferDestinationToProduct public User? GetUserById(Guid userId, bool autoInclude = false) => Session(ctx => ctx.GetUserById(userId, autoInclude)); public User? GetUserByEmail(string email, bool autoInclude = false) => Session(ctx => ctx.GetUserByEmail(email, autoInclude)); - public TUserModelDto? GetUserModelDtoById(Guid userId, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase + public TUserModelDto? GetUserModelDtoById(Guid userId, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase => Session(ctx => ctx.GetUserModelDtoById(userId, onlyConfirmed)); - public Task GetUserModelDtoByIdAsync(Guid userId, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase + + public Task GetUserModelDtoByIdAsync(Guid userId, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase => SessionAsync(ctx => ctx.GetUserModelDtoById(userId, onlyConfirmed)); - public TUserModelDto? GetUserModelDtoByEmail(string email, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase + public TUserModelDto? GetUserModelDtoByEmail(string email, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase => Session(ctx => ctx.GetUserModelDtoByEmail(email, onlyConfirmed)); - public Task GetUserModelDtoByEmailAsync(string email, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase + + public Task GetUserModelDtoByEmailAsync(string email, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase => SessionAsync(ctx => ctx.GetUserModelDtoByEmail(email, onlyConfirmed)); public string? GetUserJsonById(Guid userId, bool onlyConfirmed) => Session(ctx => ctx.GetUserById(userId, onlyConfirmed)?.ToJson()); public string GetUsersJson() => Session(ctx => ctx.Users.ToJson()); - + public Task AddUserAsync(User user) => TransactionAsync(ctx => ctx.AddUser(user)); public Task UpdateUserAsync(User user) => TransactionAsync(ctx => ctx.UpdateUser(user)); public Task RemoveUserAsync(Guid userId) => TransactionAsync(ctx => ctx.RemoveUser(userId)); @@ -234,7 +247,8 @@ namespace TIAM.Database.DataLayers.Admins => SessionAsync(x => x.GetPermissionContextsViewByContextId(contextId).ToList()); #region UserProductMapping - public Task AddUserProductMappingAsync(UserProductMapping userProductMapping) + + public Task AddUserProductMappingAsync(UserProductMapping userProductMapping) => TransactionAsync(ctx => ctx.AddUserProductMapping(userProductMapping)); public async Task AddUserProductMappingAsync(Guid userProductMappingId, Guid userId, Guid productId, int permissions = 1, UserProductJsonDetailModel? userProductToCars = null) @@ -244,7 +258,7 @@ namespace TIAM.Database.DataLayers.Admins var isSucces = await TransactionAsync(ctx => { userProductMapping = ctx.AddUserProductMapping(userProductMappingId, userId, productId, permissions, userProductToCars); - + return userProductMapping != null; }); @@ -253,14 +267,14 @@ namespace TIAM.Database.DataLayers.Admins public Task UpdateUserProductMappingAsync(UserProductMapping userProductMapping) => TransactionAsync(ctx => ctx.UpdateUserProductMapping(userProductMapping)); - public async Task UpdateUserProductMappingAsync(Guid userProductMappingId, int permissions = 1, UserProductJsonDetailModel? userProductToCars = null) + public async Task UpdateUserProductMappingAsync(Guid userProductMappingId, int permissions = 1, UserProductJsonDetailModel? userProductToCars = null) { UserProductMapping? userProductMapping = null; var isSucces = await TransactionAsync(ctx => { userProductMapping = ctx.UpdateUserProductMapping(userProductMappingId, permissions, userProductToCars); - + return userProductMapping != null; }); @@ -273,39 +287,46 @@ namespace TIAM.Database.DataLayers.Admins #endregion UserProductMapping #region Address + public Task GetAddressByIdAsync(Guid addressId) => SessionAsync(ctx => ctx.GetAddressById(addressId)); public Task UpdateAddressAsync(Address adress) => TransactionAsync(ctx => ctx.UpdateAddress(adress)); + #endregion Address #region Profile + public Task GetProfileByIdAsync(Guid profileId) => SessionAsync(ctx => ctx.GetProfileById(profileId)); + public Task UpdateProfileAsync(Profile profile) => TransactionAsync(ctx => ctx.UpdateProfile(profile)); //public Task AddProfileAsync(Profile profile) => TransactionAsync(ctx => ctx.AddProfile(profile)); //Nem Add-olunk önmagában Profile-t! - J. //public Task RemoveProfileAsync(Guid profileId) => TransactionAsync(ctx => ctx.RemoveProfile(profileId)); //Nem törlünk Profile-t! - J. + #endregion Profile #region EmailMessage + public Task GetEmailMessageByIdAsync(Guid emailMessageId) => SessionAsync(ctx => ctx.GetEmailMessageById(emailMessageId)); - public Task> GetEmailMessagesByContextIdAsync(Guid contextId) => SessionAsync(ctx => ctx.GetEmailMessagesByContextId(contextId).OrderByDescending(x=>x.Created).ToList()); - public Task> GetEmailMessagesBySenderIdAsync(Guid senderId) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderId(senderId).OrderByDescending(x=>x.Created).ToList()); - public Task> GetEmailMessagesBySenderEmailAddressAsync(string emailAddress) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderEmailAddress(emailAddress).OrderByDescending(x=>x.Created).ToList()); - public Task> GetEmailMessagesAsync(Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(userId, userProductMappingId).OrderByDescending(x=>x.Created).ToList()); - public Task> GetEmailMessagesAsync(Guid contextId, Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(contextId, userId, userProductMappingId).OrderByDescending(x=>x.Created).ToList()); - public Task> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages().OrderByDescending(x=>x.Created).ToList()); + public Task> GetEmailMessagesByContextIdAsync(Guid contextId) => SessionAsync(ctx => ctx.GetEmailMessagesByContextId(contextId).OrderByDescending(x => x.Created).ToList()); + public Task> GetEmailMessagesBySenderIdAsync(Guid senderId) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderId(senderId).OrderByDescending(x => x.Created).ToList()); + public Task> GetEmailMessagesBySenderEmailAddressAsync(string emailAddress) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderEmailAddress(emailAddress).OrderByDescending(x => x.Created).ToList()); + public Task> GetEmailMessagesAsync(Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(userId, userProductMappingId).OrderByDescending(x => x.Created).ToList()); + public Task> GetEmailMessagesAsync(Guid contextId, Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(contextId, userId, userProductMappingId).OrderByDescending(x => x.Created).ToList()); + public Task> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages().OrderByDescending(x => x.Created).ToList()); public Task AddEmailMessageAsync(EmailMessage emailMessage) => TransactionAsync(ctx => ctx.AddEmailMessage(emailMessage)); - public Task UpdateEmailMessageAsync(EmailMessage emailMessage) + public Task UpdateEmailMessageAsync(EmailMessage emailMessage) => TransactionAsync(ctx => ctx.UpdateEmailMessage(emailMessage)); - public Task RemoveEmailMessageAsync(Guid emailMessageId) + public Task RemoveEmailMessageAsync(Guid emailMessageId) => TransactionAsync(ctx => ctx.RemoveEmailMessage(emailMessageId)); #endregion EmailMessage #region ServiceProviders + //15. (IServiceProviderDataService) Create service provider public Task AddCompanyAsync(Company serviceProvider) => TransactionAsync(ctx => ctx.AddCompany(serviceProvider)); @@ -313,7 +334,7 @@ namespace TIAM.Database.DataLayers.Admins public Task GetCompaniesJsonAsync() => SessionAsync(ctx => ctx.Companies.ToJson()); public string GetCompaniesJson() => Session(ctx => ctx.Companies.ToJson()); - + public virtual Task GetCompanyByIdAsync(Guid id) => SessionAsync(ctx => ctx.GetCompanyById(id)); public virtual Task> GetCompaniesByOwnerIdAsync(Guid id) => SessionAsync(ctx => ctx.GetCompaniesByOwnerId(id)); @@ -326,10 +347,12 @@ namespace TIAM.Database.DataLayers.Admins //14. (IserviceProviderDataService) Update service provider public Task UpdateCompanyAsync(Company company) => TransactionAsync(ctx => ctx.UpdateCompany(company)); + //13. (IserviceProviderDataService) delete service provider public Task RemoveCompanyAsync(Guid companyId) => TransactionAsync(ctx => ctx.RemoveProductsByCompanyId(companyId) && ctx.RemoveCompany(companyId)); //public Task RemoveCompanyAsync(Company company) => RemoveCompanyAsync(company.Id); + #endregion #region PermissionTypes @@ -364,6 +387,7 @@ namespace TIAM.Database.DataLayers.Admins { nextBitValue = Math.Pow(2, 0); } + permissionsType.PermissionBit = (int)nextBitValue; Context.PermissionsTypes.Add(permissionsType); Context.SaveChanges(); @@ -376,6 +400,7 @@ namespace TIAM.Database.DataLayers.Admins } } + return Task.FromResult(result); } @@ -465,6 +490,7 @@ namespace TIAM.Database.DataLayers.Admins { GlobalLogger.Info($@"GetPermissionsOfUserProductMappingsAndGroupsAsyncByContextId: {row.ContextId}, {row.SubjectId}, {row.SubjectType}, {row.Name}, {row.PermissionsValue}"); } + return Task.FromResult(result); } @@ -500,6 +526,7 @@ namespace TIAM.Database.DataLayers.Admins transaction.Commit(); result = true; } + return Task.FromResult(result); } @@ -534,6 +561,7 @@ namespace TIAM.Database.DataLayers.Admins result = false; } } + return Task.FromResult(result); } @@ -635,9 +663,9 @@ namespace TIAM.Database.DataLayers.Admins #region Logs - public Task> GetLogItemsAsync(int takeCount = 100) => SessionAsync(ctx => ctx.LogItems.Where(x=>x.LogLevel != LogLevel.Debug && x.LogLevel != LogLevel.Trace && x.LogLevel != LogLevel.Detail).Take(takeCount).ToList()); + public Task> GetLogItemsAsync(int takeCount = 500) => SessionAsync(ctx => ctx.LogItems.Take(takeCount).ToList()); + public Task> GetLogItemsByFilterAsync(CriteriaOperator criteriaOperator, int takeCount = 500) => SessionAsync(ctx => (ctx.LogItems.AppendWhere(new CriteriaToExpressionConverter(), criteriaOperator).Take(takeCount) as IQueryable)!.ToList()); #endregion - } } diff --git a/TIAM.Database/DbSets/Transfers/TransferDbSetExtensions.cs b/TIAM.Database/DbSets/Transfers/TransferDbSetExtensions.cs index 26d9a591..ed37f83a 100644 --- a/TIAM.Database/DbSets/Transfers/TransferDbSetExtensions.cs +++ b/TIAM.Database/DbSets/Transfers/TransferDbSetExtensions.cs @@ -14,15 +14,15 @@ public static class TransferDbSetExtensions public static bool UpdateTransfer(this ITransferDbSet ctx, Transfer transfer) => ctx.Transfers.Update(transfer).State == EntityState.Modified; - public static bool UpdateTransferStatus(this ITransferDbSet ctx, Guid transferId, TransferStatusType transferStatusType) + public static bool UpdateTransferStatus(this ITransferDbSet ctx, Guid transferId, TransferStatusType transferStatusType, bool onlyStatusLowerThanNew = true) { var transfer = ctx.Transfers.FirstOrDefault(x => x.Id == transferId); return transfer != null && ctx.UpdateTransferStatus(transfer, transferStatusType); } - public static bool UpdateTransferStatus(this ITransferDbSet ctx, Transfer transfer, TransferStatusType transferStatusType) + public static bool UpdateTransferStatus(this ITransferDbSet ctx, Transfer transfer, TransferStatusType transferStatusType, bool onlyStatusLowerThanNew = true) { - if (transfer.TransferStatusType == transferStatusType) return true; + if (transfer.TransferStatusType == transferStatusType || (onlyStatusLowerThanNew && transfer.TransferStatusType > transferStatusType)) return true; transfer.TransferStatusType = transferStatusType; return ctx.Transfers.Update(transfer).State == EntityState.Modified; diff --git a/TIAM.Entities/Transfers/Transfer.cs b/TIAM.Entities/Transfers/Transfer.cs index accf3698..a171c2f7 100644 --- a/TIAM.Entities/Transfers/Transfer.cs +++ b/TIAM.Entities/Transfers/Transfer.cs @@ -2,6 +2,7 @@ using AyCode.Interfaces.TimeStampInfo; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using System.Text.Json.Serialization; using AyCode.Interfaces.Profiles.Dtos; using TIAM.Core.Enums; using TIAM.Entities.Products; @@ -30,7 +31,9 @@ public class Transfer: IEntityGuid, IAcFullName, ITimeStampInfo, IProductForeign public string? PaymentId { get; set; } //public virtual UserProductMapping? UserProductMapping { get; set; } - public virtual List TransferToDrivers { get; set; } + [JsonIgnore] + [Newtonsoft.Json.JsonIgnore] + public virtual List TransferToDrivers { get; set; } = []; [Required] public TransferStatusType TransferStatusType { get; set; } = TransferStatusType.OrderSubmitted; diff --git a/TIAM.Services/SignalRTags.cs b/TIAM.Services/SignalRTags.cs index f4913db1..4b18f87c 100644 --- a/TIAM.Services/SignalRTags.cs +++ b/TIAM.Services/SignalRTags.cs @@ -95,6 +95,6 @@ public class SignalRTags : AcSignalRTags public const int GetTransferDestinationToProductsByProductId = 95; public const int GetTransferDestinationToProductsByTransferDestinationId = 96; - public const int GetAllLogItems = 100; + public const int GetAllLogItemsByFilterText = 100; } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/LogViewerGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/LogViewerGridComponent.razor index 6965fe54..909cfc1d 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/LogViewerGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/LogViewerGridComponent.razor @@ -14,6 +14,9 @@ @using AyCode.Services.Loggers @using AyCode.Core @using AyCode.Core.Extensions +@using Castle.Components.DictionaryAdapter +@using DevExpress.Data.Filtering +@using TIAM.Core.Enums @inject IServiceProviderDataService ServiceProviderDataService @inject IEnumerable LogWriters @inject AdminSignalRClient AdminSignalRClient @@ -25,10 +28,12 @@ @($"{a.CategoryName}->{a.CallerName}") -
@($"{a.Text}")

+
@($"{a.Text}")

Exception:
@a.Exception
+ +
+ +
+
@code { [Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never; - private LoggerClient _logger; - private LogViewerGrid _logViewerGrid; + private LoggerClient _logger; + private static List _selectedLogLevels = [LogLevel.Error, LogLevel.Warning, LogLevel.Suggest]; + private static string _filterText = GetFilterText(_selectedLogLevels); protected override void OnInitialized() { @@ -71,11 +84,31 @@ base.OnInitialized(); } + private static string GetFilterText(ICollection selectedLogLevels) + => selectedLogLevels.Count == 0 ? string.Empty : CriteriaOperator.FromLambda(t => selectedLogLevels.Contains(t.LogLevel)).ToString(); + + void TagBox_ValuesChanged(IEnumerable newSelectedLogLevels) + { + var filterText = string.Empty; + InOperator? filterCriteria = null; + + _selectedLogLevels = newSelectedLogLevels.ToList(); + + if (_selectedLogLevels.Count > 0) + { + filterCriteria = new InOperator(nameof(LogLevel), _selectedLogLevels); + filterText = GetFilterText(_selectedLogLevels); + } + + _filterText = filterText; + _logViewerGrid.SetFieldFilterCriteria(nameof(LogLevel), filterCriteria); + } + void Grid_CustomizeElement(GridCustomizeElementEventArgs e) { if (e.ElementType != GridElementType.DataRow) return; - var logLevelObject = e.Grid?.GetRowValue(e.VisibleIndex, "LogLevel"); + var logLevelObject = e.Grid?.GetRowValue(e.VisibleIndex, nameof(LogLevel)); if (logLevelObject == null) return; var levelObject = (LogLevel)logLevelObject; diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor index 54ed85ca..53926462 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor @@ -199,8 +199,8 @@
+ ValueFieldName="StatusValue" TextFieldName="StatusName" NullText="Select status type..." + ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" aria-label="Select status type" />
@@ -254,21 +254,21 @@ "ContextId", ]; - private static List Statuses = + private static readonly List Statuses = [ new(Convert.ToByte(TransferStatusType.OrderSubmitted), "Order submitted"), - new(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"), - new(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"), - new(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"), - new(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"), - new(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"), - new(Convert.ToByte(TransferStatusType.Finished), "Finished"), - new(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"), - new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled") + new(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"), + new(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"), + new(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"), + new(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"), + new(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"), + new(Convert.ToByte(TransferStatusType.Finished), "Finished"), + new(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"), + new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled") ]; private static List _selectedCategories = Statuses.Where(x => /* x.StatusValue != (byte)TransferStatusType.OrderSubmitted && */ x.StatusValue != (byte)TransferStatusType.Finished && x.StatusValue != (byte)TransferStatusType.UserCanceled && x.StatusValue != (byte)TransferStatusType.AdminDenied).ToList(); - private string? _filterText = GetFilterText(_selectedCategories.Select(x => (TransferStatusType)x.StatusValue).ToList()); + private string _filterText = GetFilterText(_selectedCategories.Select(x => (TransferStatusType)x.StatusValue).ToList()); private MessageWizardModel _messageWizardModel = new(); @@ -392,12 +392,12 @@ transferEditModel.ContactEmail = "your@email.address"; } - private static string? GetFilterText(ICollection selectedTransferStatuses) - => selectedTransferStatuses.Count == 0 ? null : CriteriaOperator.FromLambda(t => selectedTransferStatuses.Contains(t.TransferStatusType)).ToString(); + private static string GetFilterText(ICollection selectedTransferStatuses) + => selectedTransferStatuses.Count == 0 ? string.Empty : CriteriaOperator.FromLambda(t => selectedTransferStatuses.Contains(t.TransferStatusType)).ToString(); void TagBox_ValuesChanged(IEnumerable newSelectedCategories) { - string? filterText = null; + var filterText = string.Empty; InOperator? filterCriteria = null; _selectedCategories = newSelectedCategories.ToList(); diff --git a/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor index 55d18b44..d6750c14 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor @@ -40,7 +40,7 @@ - + @{ diff --git a/TIAMSharedUI/Pages/User/SysAdmins/MessageGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/MessageGridComponent.razor index 4bd24fda..fbaa7c16 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/MessageGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/MessageGridComponent.razor @@ -39,7 +39,7 @@ - + diff --git a/TIAMSharedUI/Shared/Components/Grids/LogViewerGrid.cs b/TIAMSharedUI/Shared/Components/Grids/LogViewerGrid.cs index 7fd5406a..69e6b928 100644 --- a/TIAMSharedUI/Shared/Components/Grids/LogViewerGrid.cs +++ b/TIAMSharedUI/Shared/Components/Grids/LogViewerGrid.cs @@ -11,7 +11,7 @@ public class LogViewerGrid : TiamGrid { public LogViewerGrid() : base() { - GetAllMessageTag = SignalRTags.GetAllLogItems; + GetAllMessageTag = SignalRTags.GetAllLogItemsByFilterText; } protected override Task SetParametersAsyncCore(ParameterView parameters) diff --git a/TIAMWebApp/Server/Controllers/LoggerApiController.cs b/TIAMWebApp/Server/Controllers/LoggerApiController.cs index f18dccd7..7841f59a 100644 --- a/TIAMWebApp/Server/Controllers/LoggerApiController.cs +++ b/TIAMWebApp/Server/Controllers/LoggerApiController.cs @@ -1,10 +1,14 @@ using AyCode.Core.Consts; +using AyCode.Entities; using AyCode.Entities.Server.LogItems; using AyCode.Services.SignalRs; +using AyCode.Utils.Extensions; +using DevExpress.Data.Filtering; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Mvc; using TIAM.Database.DataLayers.Admins; +using TIAM.Entities.Transfers; using TIAM.Services; using TIAMWebApp.Server.Services; using TIAMWebApp.Shared.Application.Models; @@ -52,16 +56,18 @@ namespace TIAMWebApp.Server.Controllers [AllowAnonymous] [HttpGet] [Route(APIUrls.GetAllLogItemsRouteName)] - [SignalR(SignalRTags.GetAllLogItems)] - public async Task> GetAllLogItems()//(int takeCount, string filterText) + [SignalR(SignalRTags.GetAllLogItemsByFilterText)] + public async Task> GetAllLogItems(string? criteriaOperatorText) //(int takeCount, string filterText) { - var logItemList = await adminDal.GetLogItemsAsync(1000); - var resultList = new List(logItemList.Count); + //public Task> GetTransfersByFilterAsync(CriteriaOperator criteriaOperator) => SessionAsync(ctx => (ctx.GetTransfers().AppendWhere(new CriteriaToExpressionConverter(), criteriaOperator) as IQueryable)!.ToList()); + List logItemList; - foreach (var logItem in logItemList) - { - resultList.Add(new LogItemViewerModel(Guid.NewGuid(), logItem, logItem.LogHeaderId)); - } + if (criteriaOperatorText.IsNullOrWhiteSpace()) logItemList = await adminDal.GetLogItemsAsync(1000); + else logItemList = await adminDal.GetLogItemsByFilterAsync(CriteriaOperator.Parse(criteriaOperatorText),1000); + + var resultList = new List(logItemList.Count); + //logItemList[0].ToModelDto(); + resultList.AddRange(logItemList.Select(logItem => new LogItemViewerModel(logItem, logItem.LogHeaderId))); return resultList; } diff --git a/TIAMWebApp/Shared/Models/ClientSide/UI/LogitemViewerModel.cs b/TIAMWebApp/Shared/Models/ClientSide/UI/LogitemViewerModel.cs index 4310083b..d3897020 100644 --- a/TIAMWebApp/Shared/Models/ClientSide/UI/LogitemViewerModel.cs +++ b/TIAMWebApp/Shared/Models/ClientSide/UI/LogitemViewerModel.cs @@ -8,21 +8,21 @@ using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; +using AyCode.Interfaces; namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI { //[Table("LogItem")] - public class LogItemViewerModel : AcLogItemClient, IId + public class LogItemViewerModel : AcLogItemClient, IId, IAcModelDtoBase { - public Guid Id { get ; set; } + public Guid Id { get ; set; } = Guid.NewGuid(); public int LogHeaderId { get; set; } public LogItemViewerModel() {} - public LogItemViewerModel(Guid id, IAcLogItemClient logItemClient, int logHeaderId) { + public LogItemViewerModel(IAcLogItemClient logItemClient, int logHeaderId) { - Id = id; TimeStampUtc = logItemClient.TimeStampUtc; AppType = logItemClient.AppType; LogLevel= logItemClient.LogLevel;