Пример #1
0
        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);
        }
Пример #2
0
        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);
        }