public async Task <int> Handle(RegisterPollingStationCommand message, CancellationToken cancellationToken)
        {
            try
            {
                //TODO[DH] this can be moved to a previous step, before the command is executed
                var pollingStation = await _context.PollingStations
                                     .Where(a =>
                                            a.Number == message.IdPollingStation &&
                                            a.County.Code == message.CountyCode)
                                     .FirstOrDefaultAsync();

                if (pollingStation == null)
                {
                    throw new ArgumentException("Sectia nu exista");
                }

                var formular = await _context.PollingStationInfos
                               .FirstOrDefaultAsync(a =>
                                                    a.IdObserver == message.IdObserver &&
                                                    a.IdPollingStation == pollingStation.Id);

                if (formular == null)
                {
                    formular = _mapper.Map <PollingStationInfo>(message);

                    formular.IdPollingStation = pollingStation.Id;
                    formular.IdObserver       = message.IdObserver;

                    _context.Add(formular);
                }
                else
                {
                    _mapper.Map(message, formular);
                }

                return(await _context.SaveChangesAsync());
            }
            catch (Exception ex)
            {
                _logger.LogError(new EventId(), ex.Message);
            }

            return(-1);
        }