private static bool ConnectNetworkPrinters(HikariModel model) { if (model.Printers.Count == 0) { return(true); } Console.WriteLine(); log.Info("Connecting network printers..."); Console.WriteLine(); bool success = true; Forker printerForker = new Forker(); foreach (Tuple <string, string> printer in model.Printers) { printerForker.Fork(delegate { if (!AddPrinterConnection(printer.Item2)) { log.Error($"Error connecting network printer \"{printer.Item2}\""); success = false; } else { log.Info($"[{printer.Item1}] -> \"{printer.Item2}\""); } }); } printerForker.Join(); return(success); }
private static bool ConnectNetworkDrives(HikariModel model) { log.Info("Connecting network drives..."); Console.WriteLine(); bool success = true; Forker driveForker = new Forker(); foreach (var drive in model.Drives) { Tuple <string, string> exp_unc = (drive.Value).FirstOrDefault(); string driveLetter = drive.Key; string expression = exp_unc.Item1; string unc = exp_unc.Item2; driveForker.Fork(delegate { if (!Directory.Exists(unc)) { log.Error($"Network path \"{unc}\" doesn't exist! Drive {driveLetter} for [{expression}] is NOT connected!"); success = false; } else { string result = InvokeWindowsNetworking.connectToRemote(driveLetter, unc); if (!string.IsNullOrEmpty(result)) { log.Error($"Network drive {driveLetter} -> \"{unc}\" ERROR: {result}"); success = false; } else { log.Info($"{driveLetter} -> \"{unc}\" [{expression}]"); } } }); } driveForker.Join(); return(success); }