コード例 #1
0
ファイル: WCFService.cs プロジェクト: rexwhitten/Siege
 public WCFService(Func<IServiceBus> serviceBus, IMessageTracker tracker, IMessageBucket messages, DelegateManager manager)
 {
     this.serviceBus = serviceBus;
     this.tracker = tracker;
     this.messages = messages;
     this.manager = manager;
 }
コード例 #2
0
 public WCFService(Func <IServiceBus> serviceBus, IMessageTracker tracker, IMessageBucket messages, DelegateManager manager)
 {
     this.serviceBus = serviceBus;
     this.tracker    = tracker;
     this.messages   = messages;
     this.manager    = manager;
 }
コード例 #3
0
 public CapEventSubscriber(
     IOrderAppService orderSrv,
     ILogger <CapEventSubscriber> logger,
     MessageTrackerFactory trackerFactory)
 {
     _orderSrv = orderSrv;
     _logger   = logger;
     _tracker  = trackerFactory.Create();
 }
コード例 #4
0
 public CapEventSubscriber(
     ICustomerAppService customerSrv,
     ILogger <CapEventSubscriber> logger,
     MessageTrackerFactory trackerFactory)
 {
     _customerSrv = customerSrv;
     _logger      = logger;
     _tracker     = trackerFactory.Create();
 }
コード例 #5
0
ファイル: CapEventSubscriber.cs プロジェクト: AlphaYu/Adnc
 public CapEventSubscriber(
     IWarehouseAppService wareHouserSrv,
     ILogger <CapEventSubscriber> logger,
     MessageTrackerFactory trackerFactory)
 {
     _wareHouserSrv = wareHouserSrv;
     _logger        = logger;
     _tracker       = trackerFactory.Create();
 }
コード例 #6
0
 public SubscriberService(IMessageTracker messageTracker,
                          IMapper mapper,
                          ILogger <SubscriberService> logger,
                          BrowsingDbContext context)
 {
     _messageTracker = messageTracker;
     _mapper         = mapper;
     _logger         = logger;
     _context        = context;
 }
コード例 #7
0
 public SubscriberService(IMessageTracker messageTracker,
                          IMapper mapper,
                          ReviewDbContext context,
                          ILogger <SubscriberService> logger)
 {
     _messageTracker = messageTracker;
     _mapper         = mapper;
     _context        = context;
     _logger         = logger;
 }
コード例 #8
0
    /// <summary>
    /// 标记订单状态
    /// </summary>
    /// <param name="eventDto"></param>
    /// <param name="tracker"></param>
    /// <returns></returns>
    public async Task MarkCreatedStatusAsync(WarehouseQtyBlockedEvent eventDto, IMessageTracker tracker)
    {
        var order = await _orderRepo.GetAsync(eventDto.Data.OrderId);

        order.MarkCreatedStatus(eventDto.Data.IsSuccess, eventDto.Data.Remark);

        await _orderRepo.UpdateAsync(order);

        await tracker?.MarkAsProcessedAsync(eventDto);
    }
コード例 #9
0
 public RedisRoom(ChatRoom room,
                  IMessageTracker messageTracker,
                  IRoomBackplane backplane,
                  IDatabaseAsync database,
                  TimeSpan presenceThreshold,
                  int maxSize) :
     base(room, messageTracker, backplane)
 {
     this.database          = database;
     this.presenceThreshold = presenceThreshold;
     this.maxSize           = maxSize;
     this.roomKey           = $"room:users:{room.Id}";
 }
コード例 #10
0
 public SubscriberService(IMessageTracker messageTracker,
                          IMapper mapper,
                          WatchingDbContext context,
                          ILogger <SubscriberService> logger,
                          ICapPublisher capBuS,
                          IEmailSender emailSender)
 {
     _messageTracker = messageTracker;
     _mapper         = mapper;
     _context        = context;
     _logger         = logger;
     _capBus         = capBuS;
     _emailSender    = emailSender;
 }
コード例 #11
0
ファイル: WarehouseAppService.cs プロジェクト: AlphaYu/Adnc
    /// <summary>
    /// 锁定库存
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    public async Task BlockQtyAsync(OrderCreatedEvent eventDto, IMessageTracker tracker)
    {
        var blockQtyProductsInfo = eventDto.Data.Products.ToDictionary(x => x.ProductId, x => x.Qty);
        var warehouses           = await _warehouseRepo.Where(x => blockQtyProductsInfo.Keys.Contains(x.ProductId.Value), noTracking : false).ToListAsync();

        var products = await _productRepo.Where(x => blockQtyProductsInfo.Keys.Contains(x.Id)).ToListAsync();

        var result = await _warehouseManager.BlockQtyAsync(eventDto.Data.OrderId, blockQtyProductsInfo, warehouses, products);

        //库存都符合锁定条件才能批量更新数据库
        if (result)
        {
            await _warehouseRepo.UpdateRangeAsync(warehouses);

            await tracker?.MarkAsProcessedAsync(eventDto);
        }
    }
コード例 #12
0
 public SendingServiceWithDelay(IMessageBus messageBus, IMessageTracker messageTracker)
 {
     _messageBus     = messageBus;
     _messageTracker = messageTracker;
 }
コード例 #13
0
 public AircraftLeftRunwayHandlerWithCopy(IMessageTracker messageTracker)
 {
     _messageTracker = messageTracker;
 }
コード例 #14
0
 public AircraftTakenOffHandler(IMessageTracker messageTracker)
 {
     _messageTracker = messageTracker;
 }
コード例 #15
0
 public AircraftLeftRunwayHandlerWithCopyAndDelayInSeconds(IMessageTracker messageTracker)
 {
     _messageTracker = messageTracker;
 }
コード例 #16
0
 public static async Task MarkAsProcessedAsync <T>(this IMessageTracker tracker, Events.EventEntity <T> eventDto)
     where T : class
 {
     await tracker.MarkAsProcessedAsync(eventDto.Id, eventDto.EventTarget);
 }
コード例 #17
0
 public PublishingService(IMessageBus messageBus, IMessageTracker messageTracker)
 {
     _messageTracker = messageTracker;
     _messageBus     = messageBus;
 }
コード例 #18
0
    /// <summary>
    /// 处理充值
    /// </summary>
    /// <param name="eventDto"></param>
    /// <param name="tracker"></param>
    /// <returns></returns>
    public async Task <AppSrvResult> ProcessRechargingAsync(CustomerRechargedEvent eventDto, IMessageTracker tracker)
    {
        var customerId       = eventDto.Data.CustomerId;
        var amount           = eventDto.Data.Amount;
        var transactionLogId = eventDto.Data.TransactionLogId;

        var transLog = await _cusTransactionLogRepo.FindAsync(transactionLogId, noTracking : false);

        if (transLog is null)
        {
            return(AppSrvResult());
        }

        var finance = await _cusFinaceRepo.FindAsync(customerId, noTracking : false);

        var originalBalance = finance.Balance;
        var newBalance      = originalBalance + amount;

        finance.Balance = newBalance;
        await _cusFinaceRepo.UpdateAsync(finance);

        transLog.ExchageStatus  = ExchageStatusEnum.Finished;
        transLog.ChangingAmount = originalBalance;
        transLog.ChangedAmount  = newBalance;
        await _cusTransactionLogRepo.UpdateAsync(transLog);

        await tracker?.MarkAsProcessedAsync(eventDto);

        return(AppSrvResult());
    }
コード例 #19
0
 public TestMessageProcessor(IMessageTracker messageTracker, ISendingService sendingService)
 {
     _messageTracker = messageTracker;
     _sendingService = sendingService;
 }
コード例 #20
0
 public AircraftLeftRunwayHandlerWithCopyAndDelayedEnqueueTime(IMessageTracker messageTracker)
 {
     _messageTracker = messageTracker;
 }
コード例 #21
0
 public static async Task <bool> HasProcessedAsync <T>(this IMessageTracker tracker, Events.EventEntity <T> eventDto)
     where T : class
 {
     return(await tracker.HasProcessedAsync(eventDto.Id, eventDto.EventTarget));
 }
コード例 #22
0
 public AbpMqHandlerBase(string localizationSourceName)
 {
     LocalizationSourceName = localizationSourceName;
     MessageTracker         = DefaultInMemoryMessageTracker.Instance;
 }