public async Task Handle(PetrolStationCreated @event)
        {
            logger.LogDebug($"Petrol station created event received. Id: {@event.Id}, Name: {@event.Name}");

            var petrolStation = await repository.FindAsync(@event.Id);

            if (petrolStation != null)
            {
                return;
            }

            var tanks = new List <Tank>();

            foreach (var item in @event.Tanks)
            {
                var nozzles = @event.Nozzles?.Where(x => x.TankId == item.Id).Select(x => new Nozzle
                {
                    Id = x.Id,
                    LastStolenPetrolAmount  = x.LastStolenPetrolAmount,
                    LastTransactionVolume   = x.LastTransactionVolume,
                    TotalPetrolAmount       = 0,
                    TotalStolenPetrolAmount = x.TotalStolenPetrolAmount
                });

                var tank = new Tank
                {
                    Id                = item.Id,
                    CurrentVolume     = item.CurrentVolume,
                    MaximumVolume     = item.MaximumVolume,
                    PetrolTemperature = item.PetrolTemperature,
                    TankHigh          = item.TankHigh,
                    Nozzles           = nozzles.ToList()
                };

                tanks.Add(tank);
            }

            petrolStation = new Entities.PetrolStation()
            {
                Id    = @event.Id,
                Name  = @event.Name,
                Tanks = tanks.ToList()
            };

            await repository.AddAsync(petrolStation);

            await hub.Clients.All.SendAsync("NewStation");

            logger.LogDebug($"Petrol station created event received handling ended.");
        }
        private async Task <Entities.PetrolStation> CreateStationIfDoesNotExist()
        {
            var petrolStation = await repository.FindAsync(globalSettings.Value.ServiceId);

            if (petrolStation != null)
            {
                return(petrolStation);
            }

            petrolStation = petrolStationFactory.Create();

            await repository.AddAsync(petrolStation);

            await SendEvents(petrolStation);

            return(petrolStation);
        }