Ejemplo n.º 1
0
        private async Task AddChargeStation(Group group, ChargeStation chargeStation)
        {
            group.AddChargeStation(chargeStation);
            _dbContext.ChargeStation.Add(chargeStation);

            _dbContext.Group.Update(group);

            await _dbContext.SaveChangesAsync();
        }
Ejemplo n.º 2
0
        public async Task <Guid> Handle(CreateGroupCommand request, CancellationToken cancellationToken)
        {
            var group = new Group(request.Name, request.CapacityInAmps);

            _dbContext.Group.Add(group);

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(group.Id);
        }
        public async Task <Unit> Handle(PatchGroupCommand request, CancellationToken cancellationToken)
        {
            var group = await _dbContext.Group.SingleOrDefaultAsync(x => x.Id == request.Id);

            if (group == null)
            {
                throw new NotFoundException(nameof(Group), request.Id);
            }

            group.UpdateCapacityInAmps(request.CapacityInAmps);
            group.Name = request.Name;

            _dbContext.Group.Update(group);
            await _dbContext.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
        public async Task <ConnectorAdditionResponseModel> Handle(AddConnectorCommand request, CancellationToken cancellationToken)
        {
            ChargeStation chargeStation = await GetChargeStation(request.ChargeStationId);

            Group group = await GetGroup(chargeStation.GroupId);

            Connector connector = AddToChargeStation(chargeStation, request);

            if (group.IsGroupCapacityEnoughForAdditionalChargeStation(chargeStation) == false)
            {
                var suggestionResult = GetSuggestionResult(group, chargeStation);
                return(suggestionResult);
            }

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(GetSuccesfulResult(connector));
        }
Ejemplo n.º 5
0
        public async Task <Unit> Handle(DeleteChargeStationCommand request, CancellationToken cancellationToken)
        {
            var query = _dbContext.ChargeStation.Where(x => x.Id == request.ChargeStationId)
                        .Include(x => x.Connectors);

            var chargeStation = await query.SingleOrDefaultAsync(cancellationToken);

            if (chargeStation == null)
            {
                return(await Unit.Task);
            }

            _dbContext.ChargeStation.Remove(chargeStation);

            if (chargeStation.Connectors != null)
            {
                _dbContext.Connector.RemoveRange(chargeStation.Connectors);
            }

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(await Unit.Task);
        }