Exemplo n.º 1
0
        public async Task Consume(ConsumeContext <EmployeeProfileChangedEvent> context)
        {
            try
            {
                _logger.LogInformation("Start EmployeeProfileChangedConsumer");
                var profileChangedEvent = context?.Message;

                if (profileChangedEvent == null)
                {
                    _logger.LogInformation("profileChangedEvent is null");
                    _logger.LogInformation("End EmployeeProfileChangedConsumer");
                    return;
                }

                var sendDate = profileChangedEvent.SendDate.ToDateTime();

                var profile = await _profileRepo.SaveAsync(new EmployeeProfile(
                                                               email : profileChangedEvent.Email,
                                                               fullname : profileChangedEvent.Fullname,
                                                               employeeType : profileChangedEvent.EmployeeType,
                                                               position : profileChangedEvent.Position,
                                                               dependantEndDates : profileChangedEvent.DependantEndDates.ToDateTimeArray(),
                                                               inUnion : profileChangedEvent.InUnion,
                                                               terminatedDate : profileChangedEvent.TerminationDate.ToDateTimeOrNull(),
                                                               isForeigner : profileChangedEvent.IsForeigner),
                                                           sendDate);

                var yearMonth = sendDate.ToString("yyyy-MM");
                var result    = await profile.MapAsync(x => _salaryRepo.MarkNotLatestAsync(yearMonth));

                if (result.Failure)
                {
                    _logger.LogError(result.Error.Message);
                }

                _logger.LogInformation("End EmployeeProfileChangedConsumer");
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                _logger.LogInformation("End EmployeeProfileChangedConsumer");
            }
        }