Beispiel #1
0
    public override AddingResult askAddDevice(Device device, bool reportToRedMetrics = false)
    {
        Logger.Log("Inventory::askAddDevice", Logger.Level.TRACE);
        AddingResult addingResult = canAddDevice(device);

        if (addingResult == AddingResult.SUCCESS)
        {
            Logger.Log("Inventory::askAddDevice: AddingResult.SUCCESS, will add device=" + device, Logger.Level.INFO);
            addDevice(device);

            if (reportToRedMetrics)
            {
                RedMetricsManager.get().sendEvent(TrackingEvent.CRAFT, new CustomData(CustomDataTag.DEVICE, device.getInternalName()));
            }

            //uncomment to save user-created devices
            //TODO FIXME uncommenting this entails bugs on loading devices from _saveFilePath
            //DeviceSaver dSaver = new DeviceSaver();
            //dSaver.saveDevicesToFile(_devices, _saveFilePathWrite);
        }
        else
        {
            Logger.Log("Inventory::askAddDevice: " + addingResult + ", didn't add device=" + device, Logger.Level.INFO);
        }
        return(addingResult);
    }
Beispiel #2
0
        private AddingResult AddTwoStringNumbers(string a, string b)
        {
            // equalize the values in terms of length
            if (a.Length > b.Length)
            {
                b = b.Insert(0, new string('0', a.Length - b.Length));
            }
            else if (a.Length < b.Length)
            {
                a = a.Insert(0, new string('0', b.Length - a.Length));
            }
            var result = new AddingResult();

            for (int i = a.Length - 1; i >= 0; i--)
            {
                AddTwoDigits(a[i], b[i], result);
            }

            return(result);
        }
Beispiel #3
0
        private void AddTwoDigits(char a, char b, AddingResult res)
        {
            var aNumber = (int)char.GetNumericValue(a);
            var bNumber = (int)char.GetNumericValue(b);

            if (res == null)
            {
                // First result
                res = new AddingResult();
            }
            var result = aNumber + bNumber + res.CarryInDigit;

            if (result < 10)
            {
                res.CarryInDigit = 0;
                res.Result       = res.Result.Insert(0, result.ToString());
            }
            else
            {
                res.CarryInDigit = 1;
                res.Result       = res.Result.Insert(0, (result - 10).ToString());
            }
        }