示例#1
0
        public static bool MapAllDrives()
        {
            Trace.WriteLine("Mapping all network drives-----------------------");
            if (mountedDrives != null)
            {
                return(false);
            }

            mountedDrives = new List <string>();
            foreach (RemotePublishLocation rpl in PublishManager.settings.RemoteLocations)
            {
                try
                {
                    string drv = NetworkDrive.GetNextAvailableDrive();
                    NetworkDrive.zMapDrive(rpl.username, rpl.password, drv, rpl.remoteShare);
                    mountedDrives.Add(drv);
                    Debug.Write(".");
                }
                catch
                {
                    Trace.WriteLine("Could not map network drive to " + rpl.remoteShare);
                }
            }
            Trace.WriteLine("Done Mapping Drives.");
            return(true);
        }
示例#2
0
        public static void SendPublishDefinitionOnly(Publish pub, RemotePublishLocation publoc, string pubRoot)
        {
            Trace.WriteLine("------------Attempting to send publish definition " + pub.name + " to " + publoc.name + ".---------------");
            string netDrive = NetworkDrive.GetNextAvailableDrive();

            if (publoc.remoteShare.EndsWith("\\"))
            {
                publoc.remoteShare = publoc.remoteShare.Remove(publoc.remoteShare.Length - 1);
            }
            Trace.WriteLine("Mounting Drive " + netDrive + " to " + publoc.remoteShare + "...");
            try
            {
                NetworkDrive.zMapDrive(publoc.username, publoc.password, netDrive, publoc.remoteShare);
            }
            catch (Exception ex)
            {
                Trace.WriteLine("Failed to map network drive! " + ex.Message);
                return;
            }

            Trace.WriteLine("Copying files...");
            try
            {
                File.Copy(Publish.FilenameFromPublishname(pub.name, pubRoot), netDrive + "\\" + pub.name + Publish.pubExt, true);
            }
            catch (IOException ex)
            {
                Trace.WriteLine("Error copying file " + Publish.FilenameFromPublishname(pub.name, pubRoot) + ".");
                Trace.WriteLine("Check the publish is stopped and that your definition of the publish is recent. Detail:" + ex.Message);
                NetworkDrive.zUnMapDrive(true, netDrive);
                Trace.WriteLine("Published Defition Failed!----------------------------------------");
                return;
            }
            pub.lastPublish = DateTime.Now;
            pub.Save(pubRoot);
            if (publoc.removeShare)
            {
                NetworkDrive.zUnMapDrive(true, netDrive);
            }
            Trace.WriteLine("Published Defition Sent OK!----------------------------------------------");

            return;
        }
        private void PopulateCmbNetworkDrives()
        {
            cmbLocalDrive.Items.Clear();
            for (int i = 0; i < 26; i++)
            {
                byte[] tmp = new byte[1];
                tmp[0] = (byte)(i + 65);
                string drv = Encoding.ASCII.GetString(tmp) + ":\\";
                cmbLocalDrive.Items.Add(drv);
            }
            string next = NetworkDrive.GetNextAvailableDrive();

            foreach (string s in cmbLocalDrive.Items)
            {
                if (s.Equals(next))
                {
                    cmbLocalDrive.SelectedItem = s;
                }
            }
        }
示例#4
0
        public static void SyncPublishWithRemotePublishDefinition(string pubname, string pubRoot, RemotePublishLocation publoc)
        {
            Trace.WriteLine("Attempting to sync publish " + pubname + " with " + publoc.name + ".");
            string netDrive = NetworkDrive.GetNextAvailableDrive();

            if (publoc.remoteShare.EndsWith("\\"))
            {
                publoc.remoteShare = publoc.remoteShare.Remove(publoc.remoteShare.Length - 1);
            }
            Trace.WriteLine("Mounting Drive " + netDrive + " to " + publoc.remoteShare + "...");
            try
            {
                NetworkDrive.zMapDrive(publoc.username, publoc.password, netDrive, publoc.remoteShare);
            }
            catch (Exception ex)
            {
                Trace.WriteLine("Failed to map network drive! " + ex.Message);
                return;
            }
            Trace.WriteLine("Copying files...");

            //the file SHOULD be located now on the drive with the pub name....so load it....
            try
            {
                File.Copy(Publish.FilenameFromPublishname(pubname, netDrive), Publish.FilenameFromPublishname(pubname, pubRoot), true);
            }
            catch (IOException)
            {
                Trace.WriteLine("Could not sync the file. It may not exist on the remote machine or is locked for some other reason.");
                NetworkDrive.zUnMapDrive(true, netDrive);
                return;
            }

            Trace.WriteLine("Synced Published OK!");
            return;
        }
示例#5
0
        private static void SendPublish(Object o)
        {
            Object[] objects             = (Object[])o;
            Publish  pub                 = (Publish)objects[0];
            RemotePublishLocation publoc = (RemotePublishLocation)objects[1];
            string pubRoot               = (string)objects[2];
            EventHandler <SendPublishEventArgs> completed = (EventHandler <SendPublishEventArgs>)objects[3];
            bool dobackup = (bool)objects[4];

            Trace.WriteLine("------------Attempting to publish " + pub.name + " to " + publoc.name + ".---------------");
            string netDrive = NetworkDrive.GetNextAvailableDrive();

            if (publoc.remoteShare.EndsWith("\\"))
            {
                publoc.remoteShare = publoc.remoteShare.Remove(publoc.remoteShare.Length - 1);
            }
            Trace.WriteLine("Mounting Drive " + netDrive + " to " + publoc.remoteShare + "...");
            try
            {
                NetworkDrive.zMapDrive(publoc.username, publoc.password, netDrive, publoc.remoteShare);
            }
            catch (Exception ex)
            {
                Trace.WriteLine("Failed to map network drive! " + ex.Message);
                completed(pub, new SendPublishEventArgs(false));
                return;
            }
            if (dobackup)
            {
                string backupDir = DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + " " + DateTime.Now.Hour + "." + DateTime.Now.Minute + "." + DateTime.Now.Second;
                Trace.WriteLine("Backing up existing copy files to \\" + backupDir + "\\...");
                if (Directory.Exists(netDrive + pub.relativeLocation))
                {
                    Directory.CreateDirectory(netDrive + pub.relativeLocation + "\\" + backupDir);
                    string[] files = Directory.GetFiles(netDrive + pub.relativeLocation, "*.*", SearchOption.TopDirectoryOnly);
                    foreach (string file in files)
                    {
                        if (file.ToLower().Contains("log"))
                        {
                            continue;
                        }
                        try
                        {
                            File.Copy(file, netDrive + pub.relativeLocation + "\\" + backupDir + "\\" + Path.GetFileName(file));
                        }
                        catch (Exception ex)
                        {
                            Trace.WriteLine("Warning: Could not backup file " + Path.GetFileName(file) + "." + ex.Message);
                        }
                    }
                }
                else
                {
                    Trace.WriteLine("Warning: No files found to backup!");
                }
            }
            Trace.WriteLine("Copying files...");
            if (pub.files != null)
            {
                foreach (string pubFile in pub.files)
                {
                    string lpath    = settings.RepoRoot + pubFile;
                    string filename = Path.GetFileName(pubFile);
                    string rpath    = netDrive + pub.relativeLocation + "\\" + filename;
                    Directory.CreateDirectory(netDrive + pub.relativeLocation);
                    Trace.WriteLine("copying " + filename);
                    try
                    {
                        File.Copy(lpath, rpath, true);
                    }
                    catch (IOException ex)
                    {
                        Trace.WriteLine("Error Copying file: " + lpath + ". Detail: " + ex.Message);
                        NetworkDrive.zUnMapDrive(true, netDrive);
                        Trace.WriteLine("Published Failed!----------------------------------------");
                        completed(pub, new SendPublishEventArgs(false));
                        return;
                    }
                    catch (NotSupportedException ex)
                    {
                        Trace.WriteLine("Error Copying file: " + lpath + ". The file does not appear to be in the repository. Detail: " + ex.Message);
                        NetworkDrive.zUnMapDrive(true, netDrive);
                        Trace.WriteLine("Published Failed!----------------------------------------");
                        completed(pub, new SendPublishEventArgs(false));
                        return;
                    }
                }
            }
            try
            {
                File.Copy(Publish.FilenameFromPublishname(pub.name, pubRoot), netDrive + "\\" + pub.name + Publish.pubExt, true);
            }
            catch (IOException ex)
            {
                Trace.WriteLine("Error copying file " + Publish.FilenameFromPublishname(pub.name, pubRoot) + ".");
                Trace.WriteLine("Check the publish is stopped and that your definition of the publish is recent. Detail:" + ex.Message);
                NetworkDrive.zUnMapDrive(true, netDrive);
                completed(pub, new SendPublishEventArgs(false));
                Trace.WriteLine("Published Failed!----------------------------------------");
                return;
            }
            pub.lastPublish = DateTime.Now;
            pub.Save(pubRoot);
            if (publoc.removeShare)
            {
                NetworkDrive.zUnMapDrive(true, netDrive);
            }
            Trace.WriteLine("Published OK!----------------------------------------------");
            completed(pub, new SendPublishEventArgs(true));

            return;
        }