Beispiel #1
0
        public async Task Handle(UpdateDailyExtractLotCommand message)
        {
            var result = false;

            var dailyExtractLot = await _dailyExtractLotRepository.GetById(message.DailyExtractLotId);

            if (dailyExtractLot != null)
            {
                if (dailyExtractLot.Name != message.Name)
                {
                    dailyExtractLot.ChangeName(message.Name);
                }

                if (dailyExtractLot.ManagementCategoryId != message.ManamementCategoryId)
                {
                    var managementCategory = await _dailyExtractLotRepository.GetManagementCategoryById(message.ManamementCategoryId);

                    dailyExtractLot.ChangeManagementCategory(managementCategory);
                }

                if (!dailyExtractLot.IsValid())
                {
                    var messageType = message.GetType().Name;
                    foreach (var error in dailyExtractLot.ValidationResult.Errors)
                    {
                        await NotifyError(messageType, error.ErrorMessage);
                    }
                }
                else
                {
                    _dailyExtractLotRepository.Update(dailyExtractLot);

                    result = await _uow.SaveChangesAsync();

                    if (result)
                    {
                        await _bus.RaiseIntegrationEvent(new UpdatedDailyExtractLotEvent(message.AggregateId, dailyExtractLot.Id, dailyExtractLot.ManagementCategoryId, dailyExtractLot.HeadsAmount));
                    }
                }
            }
        }
Beispiel #2
0
 public async Task UpdateDailyExtractLot(UpdateDailyExtractLotRequest request)
 {
     var command = new UpdateDailyExtractLotCommand(request.DailyExtractLotId, request.Name, request.ManagementCategoryId);
     await _bus.SendCommand(command);
 }