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); }
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); }
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()); } }