You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.3 KiB
71 lines
2.3 KiB
using AutoMapper;
|
|
using Kean.Application.Command.Interfaces;
|
|
using Kean.Application.Command.ViewModels;
|
|
using Kean.Domain;
|
|
using Kean.Domain.Basic.Commands;
|
|
using Kean.Domain.Stock.Commands;
|
|
using Microsoft.Extensions.Logging;
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Kean.Application.Command.Implements
|
|
{
|
|
/// <summary>
|
|
/// 命令服务实现
|
|
/// </summary>
|
|
public class InterfaceService : IInterfaceService
|
|
{
|
|
private readonly ICommandBus _bus; // 命令总线
|
|
private readonly IMapper _mapper; // 模型映射
|
|
private readonly INotification _notifications; // 总线通知
|
|
private readonly ILogger<InterfaceService> _logger; // 日志
|
|
|
|
/// <summary>
|
|
/// 依赖注入
|
|
/// </summary>
|
|
public InterfaceService(
|
|
ICommandBus bus,
|
|
ILogger<InterfaceService> logger,
|
|
IMapper mapper,
|
|
INotification notifications)
|
|
{
|
|
_bus = bus;
|
|
_logger = logger;
|
|
_mapper = mapper;
|
|
_notifications = notifications;
|
|
}
|
|
|
|
/*
|
|
* 实现 Kean.Application.Command.Interfaces.IMaterialService.CreateMaterial 方法
|
|
*/
|
|
public async Task<Failure> Append(InterfaceRecord interfaceRecorderial)
|
|
{
|
|
var command = _mapper.Map<InterfaceRecordCommand>(interfaceRecorderial);
|
|
await _bus.Execute(command);
|
|
return (_notifications.FirstOrDefault());
|
|
}
|
|
|
|
/*
|
|
* 实现 Kean.Application.Command.Interfaces.IMaterialService.Clear 方法
|
|
*/
|
|
public async Task<Failure> Clear(string addMonths)
|
|
{
|
|
var stopwatch = new Stopwatch();
|
|
stopwatch.Start();
|
|
|
|
ClearRecordCommand command = new ClearRecordCommand();
|
|
command.AddMonth = Convert.ToInt32(addMonths);
|
|
|
|
var hash = command.GetHashCode();
|
|
_logger.LogInformation($"过程[{hash}]开始:清除记录:月份[{addMonths}]");
|
|
|
|
await _bus.Execute(command);
|
|
|
|
_logger.LogInformation("过程[{Hash}]结束:耗时{TimeSpan}ms。", hash, stopwatch.ElapsedMilliseconds);
|
|
return (_notifications.FirstOrDefault());
|
|
}
|
|
|
|
}
|
|
}
|