Browse Source

Integrate Payment module admin side into EventHub

pull/69/head
Engincan VESKE 5 years ago
parent
commit
e3dc93267f
  1. 11
      modules/payment/src/Payment.Admin.Application.Contracts/Payments/IPaymentRequestAdminAppService.cs
  2. 21
      modules/payment/src/Payment.Admin.Application.Contracts/Payments/PaymentRequestGetListInput.cs
  3. 24
      modules/payment/src/Payment.Admin.Application.Contracts/Payments/PaymentRequestWithDetailsDto.cs
  4. 20
      modules/payment/src/Payment.Admin.Application.Contracts/Permissions/PaymentAdminPermissionDefinitionProvider.cs
  5. 12
      modules/payment/src/Payment.Admin.Application.Contracts/Permissions/PaymentAdminPermissions.cs
  6. 14
      modules/payment/src/Payment.Admin.Application/PaymentAdminApplicationAutoMapperProfile.cs
  7. 2
      modules/payment/src/Payment.Admin.Application/PaymentAdminApplicationModule.cs
  8. 43
      modules/payment/src/Payment.Admin.Application/Payments/PaymentRequestAdminAppService.cs
  9. 43
      modules/payment/src/Payment.Admin.Blazor/Navigation/PaymentAdminBlazorMenuContributor.cs
  10. 7
      modules/payment/src/Payment.Admin.Blazor/Navigation/PaymentAdminMenuNames.cs
  11. 26
      modules/payment/src/Payment.Admin.Blazor/Pages/Payment/Requests/Index.razor
  12. 125
      modules/payment/src/Payment.Admin.Blazor/Pages/Payment/Requests/Index.razor.cs
  13. 9
      modules/payment/src/Payment.Admin.Blazor/PaymentAdminBlazorModule.cs
  14. 14
      modules/payment/src/Payment.Admin.Blazor/PaymentAdminComponentBase.cs
  15. 6
      modules/payment/src/Payment.Admin.Blazor/_Imports.razor
  16. 26
      modules/payment/src/Payment.Admin.HttpApi.Client/ClientProxies/PaymentRequestAdminClientProxy.Generated.cs
  17. 8
      modules/payment/src/Payment.Admin.HttpApi.Client/ClientProxies/PaymentRequestAdminClientProxy.cs
  18. 132
      modules/payment/src/Payment.Admin.HttpApi.Client/ClientProxies/paymentAdmin-generate-proxy.json
  19. 3
      modules/payment/src/Payment.Admin.HttpApi.Client/PaymentAdminHttpApiClientModule.cs
  20. 13
      modules/payment/src/Payment.Admin.HttpApi/PaymentAdminController.cs
  21. 26
      modules/payment/src/Payment.Admin.HttpApi/Payments/PaymentRequestAdminController.cs
  22. 22
      modules/payment/src/Payment.Domain/PaymentRequests/IPaymentRequestRepository.cs
  23. 43
      modules/payment/src/Payment.EntityFrameworkCore/EntityFrameworkCore/Repositories/PaymentRequestRepository.cs
  24. 1
      src/EventHub.Admin.Application.Contracts/EventHub.Admin.Application.Contracts.csproj
  25. 6
      src/EventHub.Admin.Application.Contracts/EventHubAdminApplicationContractsModule.cs
  26. 1
      src/EventHub.Admin.Application/EventHub.Admin.Application.csproj
  27. 6
      src/EventHub.Admin.Application/EventHubAdminApplicationModule.cs
  28. 1
      src/EventHub.Admin.HttpApi.Client/EventHub.Admin.HttpApi.Client.csproj
  29. 8
      src/EventHub.Admin.HttpApi.Client/EventHubAdminHttpApiClientModule.cs
  30. 1
      src/EventHub.Admin.HttpApi/EventHub.Admin.HttpApi.csproj
  31. 6
      src/EventHub.Admin.HttpApi/EventHubAdminHttpApiModule.cs
  32. 1
      src/EventHub.Admin.Web/EventHub.Admin.Web.csproj
  33. 4
      src/EventHub.Admin.Web/EventHubBlazorModule.cs
  34. 1746
      src/EventHub.Admin.Web/wwwroot/global.css
  35. 189
      src/EventHub.Admin.Web/wwwroot/global.js
  36. 4
      src/EventHub.Admin.Web/wwwroot/index.html

11
modules/payment/src/Payment.Admin.Application.Contracts/Payments/IPaymentRequestAdminAppService.cs

@ -0,0 +1,11 @@
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace Payment.Admin.Payments
{
public interface IPaymentRequestAdminAppService : IApplicationService
{
Task<PagedResultDto<PaymentRequestWithDetailsDto>> GetListAsync(PaymentRequestGetListInput input);
}
}

21
modules/payment/src/Payment.Admin.Application.Contracts/Payments/PaymentRequestGetListInput.cs

@ -0,0 +1,21 @@
using System;
using Payment.PaymentRequests;
using Volo.Abp.Application.Dtos;
namespace Payment.Admin.Payments
{
public class PaymentRequestGetListInput : PagedAndSortedResultRequestDto
{
// public string CustomerId { get; set; }
// public string ProductName { get; set; }
public string Filter { get; set; }
public DateTime? CreationDateMax { get; set; }
public DateTime? CreationDateMin { get; set; }
public PaymentRequestState? Status { get; set; }
}
}

24
modules/payment/src/Payment.Admin.Application.Contracts/Payments/PaymentRequestWithDetailsDto.cs

@ -0,0 +1,24 @@
using System;
using Payment.PaymentRequests;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Auditing;
namespace Payment.Admin.Payments
{
public class PaymentRequestWithDetailsDto : ExtensibleEntityDto<Guid>, IHasCreationTime
{
public string CustomerId { get; set; }
public string ProductName { get; set; }
public float Price { get; set; }
public string Currency { get; set; }
public PaymentRequestState State { get; set; }
public string FailReason { get; set; }
public DateTime CreationTime { get; }
}
}

20
modules/payment/src/Payment.Admin.Application.Contracts/Permissions/PaymentAdminPermissionDefinitionProvider.cs

@ -0,0 +1,20 @@
using Payment.Localization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization;
namespace Payment.Admin.Permissions
{
public class PaymentAdminPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
var paymentGroup = context.AddGroup(PaymentAdminPermissions.GroupName, L("Permission:Payment"));
paymentGroup.AddPermission(PaymentAdminPermissions.Request.Default, L("Permission:RequestManagement"));
}
private static LocalizableString L(string name)
{
return LocalizableString.Create<PaymentResource>(name);
}
}
}

12
modules/payment/src/Payment.Admin.Application.Contracts/Permissions/PaymentAdminPermissions.cs

@ -0,0 +1,12 @@
namespace Payment.Admin.Permissions
{
public class PaymentAdminPermissions
{
public const string GroupName = "Payment";
public static class Request
{
public const string Default = GroupName + ".Request";
}
}
}

14
modules/payment/src/Payment.Admin.Application/PaymentAdminApplicationAutoMapperProfile.cs

@ -0,0 +1,14 @@
using AutoMapper;
using Payment.Admin.Payments;
using Payment.PaymentRequests;
namespace Payment.Admin
{
public class PaymentAdminApplicationAutoMapperProfile : Profile
{
public PaymentAdminApplicationAutoMapperProfile()
{
CreateMap<PaymentRequest, PaymentRequestWithDetailsDto>();
}
}
}

2
modules/payment/src/Payment.Admin.Application/PaymentAdminApplicationContractsModule.cs → modules/payment/src/Payment.Admin.Application/PaymentAdminApplicationModule.cs

@ -18,7 +18,7 @@ namespace Payment.Admin
context.Services.AddAutoMapperObjectMapper<PaymentAdminApplicationModule>();
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<PaymentAdminApplicationModule>(validate: true);
options.AddProfile<PaymentAdminApplicationAutoMapperProfile>(validate: true);
});
}
}

43
modules/payment/src/Payment.Admin.Application/Payments/PaymentRequestAdminAppService.cs

@ -0,0 +1,43 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Payment.PaymentRequests;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace Payment.Admin.Payments
{
public class PaymentRequestAdminAppService : ApplicationService, IPaymentRequestAdminAppService
{
protected IPaymentRequestRepository PaymentRequestRepository { get; }
public PaymentRequestAdminAppService(IPaymentRequestRepository paymentRequestRepository)
{
PaymentRequestRepository = paymentRequestRepository;
}
public async Task<PagedResultDto<PaymentRequestWithDetailsDto>> GetListAsync(PaymentRequestGetListInput input)
{
var paymentRequests = await PaymentRequestRepository.GetListAsync(
input.SkipCount,
input.MaxResultCount,
input.Sorting,
input.Filter,
input.CreationDateMax,
input.CreationDateMin,
input.Status
);
var totalCount = await PaymentRequestRepository.GetCountAsync(
input.Filter,
input.CreationDateMax,
input.CreationDateMin,
input.Status
);
return new PagedResultDto<PaymentRequestWithDetailsDto>(
totalCount,
ObjectMapper.Map<List<PaymentRequest>, List<PaymentRequestWithDetailsDto>>(paymentRequests)
);
}
}
}

43
modules/payment/src/Payment.Admin.Blazor/Navigation/PaymentAdminBlazorMenuContributor.cs

@ -0,0 +1,43 @@
using System.Threading.Tasks;
using Payment.Admin.Permissions;
using Payment.Localization;
using Volo.Abp.UI.Navigation;
namespace Payment.Admin.Navigation
{
public class PaymentAdminBlazorMenuContributor : IMenuContributor
{
public async Task ConfigureMenuAsync(MenuConfigurationContext context)
{
if (context.Menu.Name == StandardMenus.Main)
{
await ConfigureMainMenuAsync(context);
}
}
private async Task ConfigureMainMenuAsync(MenuConfigurationContext context)
{
await AddPaymentMenuAsync(context);
}
private Task AddPaymentMenuAsync(MenuConfigurationContext context)
{
var l = context.GetLocalizer<PaymentResource>();
var paymentMenu = context.Menu.FindMenuItem(PaymentAdminMenuNames.GroupName);
if (paymentMenu == null)
{
paymentMenu = new ApplicationMenuItem(
PaymentAdminMenuNames.GroupName,
l["Menu:PaymentManagement"],
icon: "fa fa-money-check",
url: "/payment/requests",
requiredPermissionName: PaymentAdminPermissions.Request.Default
);
}
context.Menu.AddItem(paymentMenu);
return Task.CompletedTask;
}
}
}

7
modules/payment/src/Payment.Admin.Blazor/Navigation/PaymentAdminMenuNames.cs

@ -0,0 +1,7 @@
namespace Payment.Admin.Navigation
{
public static class PaymentAdminMenuNames
{
public const string GroupName = "Payment";
}
}

26
modules/payment/src/Payment.Admin.Blazor/Pages/Payment/Requests/Index.razor

@ -0,0 +1,26 @@
@page "/Payment/Requests"
@using global::Payment.Admin.Payments
@using Volo.Abp.AspNetCore.Components.Web.Theming.Layout
@using Blazorise
@using Volo.Abp.Application.Dtos
@using Volo.Abp.BlazoriseUI.Components.ObjectExtending
@inherits PaymentAdminComponentBase
@* ************************* PAGE HEADER ************************* *@
<PageHeader Title="@L["PaymentRequests"]" BreadcrumbItems="@BreadcrumbItems" Toolbar="@Toolbar">
</PageHeader>
@* ************************* DATA GRID ************************* *@
<Card>
<CardBody>
<AbpExtensibleDataGrid TItem="PaymentRequestWithDetailsDto"
Data="@Entities"
ReadData="@OnDataGridReadAsync"
TotalItems="@TotalCount"
ShowPager="true"
PageSize="@PageSize"
CurrentPage="@CurrentPage"
Columns="@PaymentRequestTableColumns">
</AbpExtensibleDataGrid>
</CardBody>
</Card>

125
modules/payment/src/Payment.Admin.Blazor/Pages/Payment/Requests/Index.razor.cs

@ -0,0 +1,125 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Blazorise;
using Blazorise.DataGrid;
using Microsoft.AspNetCore.Components;
using Payment.Admin.Payments;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Components.Web.Extensibility.TableColumns;
using Volo.Abp.AspNetCore.Components.Web.Theming.PageToolbars;
using BreadcrumbItem = Volo.Abp.BlazoriseUI.BreadcrumbItem;
namespace Payment.Admin.Pages.Payment.Requests
{
public partial class Index
{
[Inject] protected IPaymentRequestAdminAppService PaymentRequestAdminAppService { get; set; }
protected PageToolbar Toolbar { get; } = new();
protected TableColumnDictionary TableColumns { get; } = new();
protected List<TableColumn> PaymentRequestTableColumns => TableColumns.Get<Index>();
protected List<BreadcrumbItem> BreadcrumbItems { get; } = new();
protected IReadOnlyList<PaymentRequestWithDetailsDto> Entities = Array.Empty<PaymentRequestWithDetailsDto>();
protected virtual int PageSize { get; } = LimitedResultRequestDto.DefaultMaxResultCount;
protected int CurrentPage { get; set; } = 1;
protected string CurrentSorting { get; set; }
protected int? TotalCount { get; set; }
protected PaymentRequestGetListInput GetListInput { get; } = new();
protected override async Task OnInitializedAsync()
{
await SetBreadCrumbsAsync();
await SetTableColumnsAsync();
await InvokeAsync(StateHasChanged);
}
private ValueTask SetBreadCrumbsAsync()
{
BreadcrumbItems.Add(new BreadcrumbItem(L["Menu:PaymentManagement"]));
BreadcrumbItems.Add(new BreadcrumbItem(L["Menu:PaymentRequests"]));
return ValueTask.CompletedTask;
}
protected virtual ValueTask SetTableColumnsAsync()
{
PaymentRequestTableColumns
.AddRange(new TableColumn[]
{
new TableColumn
{
Title = L["DisplayName:CreationTime"],
Data = nameof(PaymentRequestWithDetailsDto.CreationTime)
},
new TableColumn
{
Title = L["DisplayName:Price"],
Data = nameof(PaymentRequestWithDetailsDto.Price)
},
new TableColumn
{
Title = L["DisplayName:Currency"],
Data = nameof(PaymentRequestWithDetailsDto.Currency)
},
new TableColumn
{
Title = L["DisplayName:State"],
Data = nameof(PaymentRequestWithDetailsDto.State)
},
new TableColumn
{
Title = L["DisplayName:ProductName"],
Data = nameof(PaymentRequestWithDetailsDto.ProductName)
},
new TableColumn
{
Title = L["DisplayName:FailReason"],
Data = nameof(PaymentRequestWithDetailsDto.FailReason)
}
});
return ValueTask.CompletedTask;
}
protected virtual async Task GetEntitiesAsync()
{
try
{
GetListInput.Sorting = CurrentSorting;
GetListInput.SkipCount = (CurrentPage - 1) * PageSize;
GetListInput.MaxResultCount = PageSize;
var result = await PaymentRequestAdminAppService.GetListAsync(GetListInput);
Entities = result.Items.As<IReadOnlyList<PaymentRequestWithDetailsDto>>();
TotalCount = (int?) result.TotalCount;
}
catch (Exception ex)
{
await HandleErrorAsync(ex);
}
}
protected virtual async Task OnDataGridReadAsync(DataGridReadDataEventArgs<PaymentRequestWithDetailsDto> e)
{
CurrentSorting = e.Columns
.Where(c => c.SortDirection != SortDirection.None)
.Select(c => c.Field + (c.SortDirection == SortDirection.Descending ? " DESC" : ""))
.JoinAsString(",");
CurrentPage = e.Page;
await GetEntitiesAsync();
await InvokeAsync(StateHasChanged);
}
}
}

9
modules/payment/src/Payment.Admin.Blazor/PaymentAdminBlazorModule.cs

@ -1,6 +1,8 @@
using Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
using Payment.Admin.Navigation;
using Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
using Volo.Abp.AspNetCore.Components.WebAssembly.Theming;
using Volo.Abp.Modularity;
using Volo.Abp.UI.Navigation;
namespace Payment.Admin
{
@ -12,6 +14,11 @@ namespace Payment.Admin
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpNavigationOptions>(options =>
{
options.MenuContributors.Add(new PaymentAdminBlazorMenuContributor());
});
Configure<AbpRouterOptions>(options =>
{
options.AdditionalAssemblies.Add(typeof(PaymentAdminBlazorModule).Assembly);

14
modules/payment/src/Payment.Admin.Blazor/PaymentAdminComponentBase.cs

@ -0,0 +1,14 @@
using Payment.Localization;
using Volo.Abp.AspNetCore.Components;
namespace Payment.Admin
{
public abstract class PaymentAdminComponentBase : AbpComponentBase
{
protected PaymentAdminComponentBase()
{
LocalizationResource = typeof(PaymentResource);
ObjectMapperContext = typeof(PaymentAdminBlazorModule);
}
}
}

6
modules/payment/src/Payment.Admin.Blazor/_Imports.razor

@ -0,0 +1,6 @@
@using Microsoft.AspNetCore.Components.Web
@using Volo.Abp.AspNetCore.Components.Web
@using Volo.Abp.BlazoriseUI
@using Volo.Abp.BlazoriseUI.Components
@using Blazorise
@using Blazorise.DataGrid

26
modules/payment/src/Payment.Admin.HttpApi.Client/ClientProxies/PaymentRequestAdminClientProxy.Generated.cs

@ -0,0 +1,26 @@
// This file is automatically generated by ABP framework to use MVC Controllers from CSharp
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Http.Client;
using Volo.Abp.Http.Modeling;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Http.Client.ClientProxying;
using Payment.Admin.Payments;
// ReSharper disable once CheckNamespace
namespace Payment.Admin.Payments.ClientProxies
{
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IPaymentRequestAdminAppService), typeof(PaymentRequestAdminClientProxy))]
public partial class PaymentRequestAdminClientProxy : ClientProxyBase<IPaymentRequestAdminAppService>, IPaymentRequestAdminAppService
{
public virtual async Task<PagedResultDto<PaymentRequestWithDetailsDto>> GetListAsync(PaymentRequestGetListInput input)
{
return await RequestAsync<PagedResultDto<PaymentRequestWithDetailsDto>>(nameof(GetListAsync), new ClientProxyRequestTypeValue
{
{ typeof(PaymentRequestGetListInput), input }
});
}
}
}

8
modules/payment/src/Payment.Admin.HttpApi.Client/ClientProxies/PaymentRequestAdminClientProxy.cs

@ -0,0 +1,8 @@
// This file is part of PaymentRequestAdminClientProxy, you can customize it here
// ReSharper disable once CheckNamespace
namespace Payment.Admin.Payments.ClientProxies
{
public partial class PaymentRequestAdminClientProxy
{
}
}

132
modules/payment/src/Payment.Admin.HttpApi.Client/ClientProxies/paymentAdmin-generate-proxy.json

@ -0,0 +1,132 @@
{
"modules": {
"paymentAdmin": {
"rootPath": "paymentAdmin",
"remoteServiceName": "PaymentAdmin",
"controllers": {
"Payment.Admin.Payments.PaymentRequestAdminController": {
"controllerName": "PaymentRequestAdmin",
"controllerGroupName": "PaymentRequestAdmin",
"type": "Payment.Admin.Payments.PaymentRequestAdminController",
"interfaces": [
{
"type": "Payment.Admin.Payments.IPaymentRequestAdminAppService"
}
],
"actions": {
"GetListAsyncByInput": {
"uniqueName": "GetListAsyncByInput",
"name": "GetListAsync",
"httpMethod": "GET",
"url": "api/payment/requests",
"supportedVersions": [],
"parametersOnMethod": [
{
"name": "input",
"typeAsString": "Payment.Admin.Payments.PaymentRequestGetListInput, Payment.Admin.Application.Contracts",
"type": "Payment.Admin.Payments.PaymentRequestGetListInput",
"typeSimple": "Payment.Admin.Payments.PaymentRequestGetListInput",
"isOptional": false,
"defaultValue": null
}
],
"parameters": [
{
"nameOnMethod": "input",
"name": "Filter",
"jsonName": null,
"type": "System.String",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": "input"
},
{
"nameOnMethod": "input",
"name": "CreationDateMax",
"jsonName": null,
"type": "System.DateTime?",
"typeSimple": "string?",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": "input"
},
{
"nameOnMethod": "input",
"name": "CreationDateMin",
"jsonName": null,
"type": "System.DateTime?",
"typeSimple": "string?",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": "input"
},
{
"nameOnMethod": "input",
"name": "Status",
"jsonName": null,
"type": "Payment.PaymentRequests.PaymentRequestState?",
"typeSimple": "Payment.PaymentRequests.PaymentRequestState?",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": "input"
},
{
"nameOnMethod": "input",
"name": "Sorting",
"jsonName": null,
"type": "System.String",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": "input"
},
{
"nameOnMethod": "input",
"name": "SkipCount",
"jsonName": null,
"type": "System.Int32",
"typeSimple": "number",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": "input"
},
{
"nameOnMethod": "input",
"name": "MaxResultCount",
"jsonName": null,
"type": "System.Int32",
"typeSimple": "number",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": "input"
}
],
"returnValue": {
"type": "Volo.Abp.Application.Dtos.PagedResultDto<Payment.Admin.Payments.PaymentRequestWithDetailsDto>",
"typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto<Payment.Admin.Payments.PaymentRequestWithDetailsDto>"
},
"allowAnonymous": null,
"implementFrom": "Payment.Admin.Payments.IPaymentRequestAdminAppService"
}
}
}
}
}
},
"types": {}
}

3
modules/payment/src/Payment.Admin.HttpApi.Client/PaymentAdminHttpApiClientModule.cs

@ -7,7 +7,8 @@ namespace Payment.Admin
{
[DependsOn(
typeof(PaymentAdminApplicationContractsModule),
typeof(AbpHttpClientModule))]
typeof(AbpHttpClientModule)
)]
public class PaymentAdminHttpApiClientModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)

13
modules/payment/src/Payment.Admin.HttpApi/PaymentAdminController.cs

@ -0,0 +1,13 @@
using Payment.Localization;
using Volo.Abp.AspNetCore.Mvc;
namespace Payment.Admin
{
public abstract class PaymentAdminController : AbpControllerBase
{
protected PaymentAdminController()
{
LocalizationResource = typeof(PaymentResource);
}
}
}

26
modules/payment/src/Payment.Admin.HttpApi/Payments/PaymentRequestAdminController.cs

@ -0,0 +1,26 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
namespace Payment.Admin.Payments
{
[RemoteService(Name = PaymentAdminRemoteServiceConsts.RemoteServiceName)]
[Area("paymentAdmin")]
[Route("api/payment/requests")]
public class PaymentRequestAdminController : PaymentAdminController, IPaymentRequestAdminAppService
{
protected IPaymentRequestAdminAppService PaymentRequestAdminAppService { get; }
public PaymentRequestAdminController(IPaymentRequestAdminAppService paymentRequestAdminAppService)
{
PaymentRequestAdminAppService = paymentRequestAdminAppService;
}
[HttpGet]
public Task<PagedResultDto<PaymentRequestWithDetailsDto>> GetListAsync(PaymentRequestGetListInput input)
{
return PaymentRequestAdminAppService.GetListAsync(input);
}
}
}

22
modules/payment/src/Payment.Domain/PaymentRequests/IPaymentRequestRepository.cs

@ -1,10 +1,30 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
namespace Payment.PaymentRequests
{
public interface IPaymentRequestRepository : IRepository<PaymentRequest, Guid>
{
Task<List<PaymentRequest>> GetListAsync(
int skipCount,
int maxResultCount,
string sorting,
string filter,
DateTime? creationDateMax = null,
DateTime? creationDateMin = null,
PaymentRequestState? state = null,
CancellationToken cancellationToken = default
);
Task<int> GetCountAsync(
string filter,
DateTime? creationDateMax = null,
DateTime? creationDateMin = null,
PaymentRequestState? state = null,
CancellationToken cancellationToken = default
);
}
}

43
modules/payment/src/Payment.EntityFrameworkCore/EntityFrameworkCore/Repositories/PaymentRequestRepository.cs

@ -1,4 +1,9 @@
using System;
using System.Linq;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Payment.PaymentRequests;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
@ -11,5 +16,43 @@ namespace Payment.EntityFrameworkCore.Repositories
: base(dbContextProvider)
{
}
public async Task<List<PaymentRequest>> GetListAsync(
int skipCount,
int maxResultCount,
string sorting,
string filter,
DateTime? creationDateMax = null,
DateTime? creationDateMin = null,
PaymentRequestState? state = null,
CancellationToken cancellationToken = default
)
{
return await (await GetQueryableAsync())
.WhereIf(!string.IsNullOrWhiteSpace(filter),
x => x.Currency.Contains(filter) || x.ProductName.Contains(filter))
.WhereIf(creationDateMax != null, p => p.CreationTime <= creationDateMax)
.WhereIf(creationDateMin != null, p => p.CreationTime >= creationDateMin)
.WhereIf(state != null, p => p.State == state)
.PageBy(skipCount, maxResultCount)
.ToListAsync(GetCancellationToken(cancellationToken));
}
public async Task<int> GetCountAsync(
string filter,
DateTime? creationDateMax = null,
DateTime? creationDateMin = null,
PaymentRequestState? state = null,
CancellationToken cancellationToken = default
)
{
return await (await GetQueryableAsync())
.WhereIf(!string.IsNullOrWhiteSpace(filter),
x => x.Currency.Contains(filter) || x.ProductName.Contains(filter))
.WhereIf(creationDateMax != null, p => p.CreationTime <= creationDateMax)
.WhereIf(creationDateMin != null, p => p.CreationTime >= creationDateMin)
.WhereIf(state != null, p => p.State == state)
.CountAsync(GetCancellationToken(cancellationToken));
}
}
}

1
src/EventHub.Admin.Application.Contracts/EventHub.Admin.Application.Contracts.csproj

@ -9,6 +9,7 @@
<ItemGroup>
<ProjectReference Include="..\EventHub.Domain.Shared\EventHub.Domain.Shared.csproj" />
<ProjectReference Include="..\..\modules\payment\src\Payment.Admin.Application.Contracts\Payment.Admin.Application.Contracts.csproj" />
</ItemGroup>
<ItemGroup>

6
src/EventHub.Admin.Application.Contracts/EventHubAdminApplicationContractsModule.cs

@ -1,4 +1,5 @@
using Volo.Abp.Account;
using Payment.Admin;
using Volo.Abp.Account;
using Volo.Abp.Identity;
using Volo.Abp.Modularity;
using Volo.Abp.PermissionManagement;
@ -9,7 +10,8 @@ namespace EventHub.Admin
typeof(EventHubDomainSharedModule),
typeof(AbpAccountApplicationContractsModule),
typeof(AbpIdentityApplicationContractsModule),
typeof(AbpPermissionManagementApplicationContractsModule)
typeof(AbpPermissionManagementApplicationContractsModule),
typeof(PaymentAdminApplicationContractsModule)
)]
public class EventHubAdminApplicationContractsModule : AbpModule
{

1
src/EventHub.Admin.Application/EventHub.Admin.Application.csproj

@ -10,6 +10,7 @@
<ItemGroup>
<ProjectReference Include="..\EventHub.Domain\EventHub.Domain.csproj" />
<ProjectReference Include="..\EventHub.Admin.Application.Contracts\EventHub.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\..\modules\payment\src\Payment.Admin.Application\Payment.Admin.Application.csproj" />
</ItemGroup>
<ItemGroup>

6
src/EventHub.Admin.Application/EventHubAdminApplicationModule.cs

@ -1,4 +1,5 @@
using Volo.Abp.Account;
using Payment.Admin;
using Volo.Abp.Account;
using Volo.Abp.AutoMapper;
using Volo.Abp.Identity;
using Volo.Abp.Modularity;
@ -12,7 +13,8 @@ namespace EventHub.Admin
typeof(EventHubAdminApplicationContractsModule),
typeof(AbpIdentityApplicationModule),
typeof(AbpPermissionManagementApplicationModule),
typeof(AbpAutoMapperModule)
typeof(AbpAutoMapperModule),
typeof(PaymentAdminApplicationModule)
)]
public class EventHubAdminApplicationModule : AbpModule
{

1
src/EventHub.Admin.HttpApi.Client/EventHub.Admin.HttpApi.Client.csproj

@ -9,6 +9,7 @@
<ItemGroup>
<ProjectReference Include="..\EventHub.Admin.Application.Contracts\EventHub.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\..\modules\payment\src\Payment.Admin.HttpApi.Client\Payment.Admin.HttpApi.Client.csproj" />
</ItemGroup>
<ItemGroup>

8
src/EventHub.Admin.HttpApi.Client/EventHubAdminHttpApiClientModule.cs

@ -1,4 +1,5 @@
using Microsoft.Extensions.DependencyInjection;
using Payment.Admin;
using Volo.Abp.Account;
using Volo.Abp.Identity;
using Volo.Abp.Modularity;
@ -10,17 +11,16 @@ namespace EventHub.Admin
typeof(EventHubAdminApplicationContractsModule),
typeof(AbpAccountHttpApiClientModule),
typeof(AbpIdentityHttpApiClientModule),
typeof(AbpPermissionManagementHttpApiClientModule)
typeof(AbpPermissionManagementHttpApiClientModule),
typeof(PaymentAdminHttpApiClientModule)
)]
public class EventHubAdminHttpApiClientModule : AbpModule
{
public const string RemoteServiceName = "Default";
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddHttpClientProxies(
typeof(EventHubAdminApplicationContractsModule).Assembly,
RemoteServiceName
EventHubAdminRemoteServiceConsts.RemoteServiceName
);
}
}

1
src/EventHub.Admin.HttpApi/EventHub.Admin.HttpApi.csproj

@ -9,6 +9,7 @@
<ItemGroup>
<ProjectReference Include="..\EventHub.Admin.Application.Contracts\EventHub.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\..\modules\payment\src\Payment.Admin.HttpApi\Payment.Admin.HttpApi.csproj" />
</ItemGroup>
<ItemGroup>

6
src/EventHub.Admin.HttpApi/EventHubAdminHttpApiModule.cs

@ -1,4 +1,5 @@
using Volo.Abp.Account;
using Payment.Admin;
using Volo.Abp.Account;
using Volo.Abp.Identity;
using Volo.Abp.Modularity;
using Volo.Abp.PermissionManagement.HttpApi;
@ -9,7 +10,8 @@ namespace EventHub.Admin
typeof(EventHubAdminApplicationContractsModule),
typeof(AbpAccountHttpApiModule),
typeof(AbpIdentityHttpApiModule),
typeof(AbpPermissionManagementHttpApiModule)
typeof(AbpPermissionManagementHttpApiModule),
typeof(PaymentAdminHttpApiModule)
)]
public class EventHubAdminHttpApiModule : AbpModule
{

1
src/EventHub.Admin.Web/EventHub.Admin.Web.csproj

@ -7,6 +7,7 @@
<ItemGroup>
<ProjectReference Include="..\EventHub.Admin.HttpApi.Client\EventHub.Admin.HttpApi.Client.csproj" />
<ProjectReference Include="..\..\modules\payment\src\Payment.Admin.Blazor\Payment.Admin.Blazor.csproj" />
</ItemGroup>
<ItemGroup>

4
src/EventHub.Admin.Web/EventHubBlazorModule.cs

@ -7,6 +7,7 @@ using IdentityModel;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Payment.Admin;
using Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic;
using Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
using Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme;
@ -22,7 +23,8 @@ namespace EventHub.Admin.Web
typeof(AbpAutofacWebAssemblyModule),
typeof(EventHubAdminHttpApiClientModule),
typeof(AbpAspNetCoreComponentsWebAssemblyBasicThemeModule),
typeof(AbpIdentityBlazorWebAssemblyModule)
typeof(AbpIdentityBlazorWebAssemblyModule),
typeof(PaymentAdminBlazorModule)
)]
public class EventHubBlazorModule : AbpModule
{

1746
src/EventHub.Admin.Web/wwwroot/global.css

File diff suppressed because one or more lines are too long

189
src/EventHub.Admin.Web/wwwroot/global.js

File diff suppressed because one or more lines are too long

4
src/EventHub.Admin.Web/wwwroot/index.html

@ -8,7 +8,7 @@
<base href="/" />
<!--ABP:Styles-->
<link href="global.css?_v=637693024777665879" rel="stylesheet"/>
<link href="global.css?_v=637710259570295843" rel="stylesheet"/>
<link href="main.css" rel="stylesheet"/>
<!--/ABP:Styles-->
</head>
@ -22,7 +22,7 @@
</div>
<!--ABP:Scripts-->
<script src="global.js?_v=637693024783699144"></script>
<script src="global.js?_v=637710259579180887"></script>
<!--/ABP:Scripts-->
</body>

Loading…
Cancel
Save