Пример #1
0
        public async Task <Battery> EnterChargeDataAsync(int accountId, Battery battery, DateTime chargeDate, ChargeType chargeType, int mahUsed)
        {
            // Seems like we need a "discharge" object or event...
            // Perhaps this could be charge data... ??? not discharge. Then idea is that when you charge it, you know how much was added. Although if you put into storage mode that will not work...
            // Think about this based on the process used...
            // Charge, discharge, storage, repeat...

            Guard.AgainstNull(battery, "battery");
            Guard.AgainstNull(chargeDate, "chargeDate");


            // Make sure the battery exists
            var repoBattery = await _batteryRepository.GetByIdAsync(battery.Id);

            Guard.AgainstNull(repoBattery, "repoBattery");
            Guard.AgainstAccountNumberMismatch(accountId, repoBattery.AccountId, "accountId", "repoBattery.AccountId");

            var batteryCharge = new BatteryCharge
            {
                ChargedOn = chargeDate,
                Type      = chargeType,
                Mah       = mahUsed,
                Battery   = battery
            };

            await _batteryChargeRepository.AddAsync(batteryCharge);

            _logger.LogInformation($"Battery charge data saved, new Id = {batteryCharge.Id}");

            return(await _batteryRepository.GetByIdAsync(battery.Id));
        }
Пример #2
0
            public void Visit(IMyTerminalBlock block)
            {
                var battery = block as IMyBatteryBlock;

                if (battery == null)
                {
                    return;
                }
                var charge = new BatteryCharge {
                    Percentage = battery.CurrentStoredPower / battery.MaxStoredPower, ChargeMode = battery.ChargeMode
                };

                chargeByGrid.Add(block.CubeGrid.CustomName, charge);
            }
Пример #3
0
        private string GetBatteryChargerDescription()
        {
            var descriptionBuilder = new StringBuilder();

            descriptionBuilder.AppendLine("========================================");
            descriptionBuilder.AppendLine("Component: Battery Charger");
            descriptionBuilder.AppendLine();
            descriptionBuilder.AppendLine($"Battery Charger Type: {BatteryCharge.ToString()}");
            descriptionBuilder.AppendLine($"Battery Charger Technology: {BatteryCharge.ChargingTechnology}");
            descriptionBuilder.AppendLine($"Battery Charger MaxPower: {BatteryCharge.MaxPower}");
            descriptionBuilder.AppendLine($"Battery Charger Inductive Charge: {BatteryCharge.InductiveCharge}");
            descriptionBuilder.AppendLine("========================================");
            return(descriptionBuilder.ToString());
        }
Пример #4
0
        public void EnterChargeDataWithNullBattery_ThrowsBatteryNotFoundException()
        {
            var battery = new Battery {
                Id = 0, AccountId = 1
            };
            var charge = new BatteryCharge {
                Battery = battery, ChargedOn = DateTime.Now, Type = ChargeType.Standard, Mah = 1000
            };

            _batteryRepositoryMock.Setup(x => x.GetById(It.IsAny <int>())).Returns(() => null);
            var service = new BatteryService(
                _batteryRepositoryMock.Object,
                _batteryTypeRepositoryMock.Object,
                _batteryChargeRepositoryMock.Object,
                _loggerMock.Object
                );

            Assert.ThrowsAsync <BatteryNotFoundException>(() => service.EnterChargeDataAsync(1, battery, charge.ChargedOn, charge.Type, charge.Mah));
        }
Пример #5
0
        public void EnterChargeDataWithExistingBattery_ReturnsBattery()
        {
            var battery = new Battery {
                Id = 1, IsActive = true, Notes = "Test battery", PurchaseDate = DateTime.Now.AddMonths(-1), AccountId = 1
            };
            var charge = new BatteryCharge {
                Battery = battery, ChargedOn = DateTime.Now, Type = ChargeType.Standard, Mah = 1000
            };

            _batteryRepositoryMock.Setup(x => x.GetById(It.IsAny <int>())).Returns(() => battery);
            _batteryChargeRepositoryMock.Setup(x => x.Add(It.IsAny <BatteryCharge>())).Returns(charge);
            var service = new BatteryService(
                _batteryRepositoryMock.Object,
                _batteryTypeRepositoryMock.Object,
                _batteryChargeRepositoryMock.Object,
                _loggerMock.Object
                );

            var result = service.EnterChargeDataAsync(1, battery, charge.ChargedOn, charge.Type, charge.Mah);

            Assert.NotNull(result);
        }
Пример #6
0
    public int facing; // 0 up 1 right 2 down 3 left

    public CharacterDetails(NavMeshAgent rb, AttackHitboxLogic ahl, RangedAttackLogic ral, StungunLogic sl,
                            Hitpoints hp, BatteryCharge bat, CubeSpawnDespawner csd, PersonalSoundManager psm, Dictionary <string, List <AudioClip> > dac)
    {
        velocity             = new Vector3(0, 0, 0);
        rigidbody            = rb;
        attackHitbox         = ahl;
        rangedAttackLogic    = ral;
        stungunLogic         = sl;
        hitpoints            = hp;
        battery              = bat;
        cubeLogic            = csd;
        personalSoundManager = psm;
        dictOfClips          = dac;
        if (hitpoints != null)
        {
            hitpoints.InitializeHP(maxHP);
        }
        if (battery != null)
        {
            battery.InitializeBattery(batteryRecharge, batterySlowRecharge, batteryBP);
        }
    }