Ejemplo n.º 1
0
        public override void ExecuteJob(Job.MessageBack messageBack, Queue<Job> jobs)
        {
            string localFolder = Path.Combine(ClientServices.GetClientDir(), ClientServices.ConfigName);
            localFolder = Path.Combine(localFolder, "Support");
            string localFile = Path.Combine(localFolder, _file);
            string destinationFolder = Path.GetDirectoryName(localFile);

            try
            {
                Directory.CreateDirectory(localFolder);
                if (destinationFolder != null)
                    Directory.CreateDirectory(destinationFolder);

                FileInfo remote = Server.GetFileInfo(FileType.Support, _file);

                bool needToDownload = false;
                if (!File.Exists(localFile) || _force)
                    needToDownload = true;
                else
                {
                    FileInfo local = new FileInfo(localFile);
                    if (remote.LastWriteTimeUtc != local.LastWriteTimeUtc || remote.Length != local.Length)
                        needToDownload = true;
                }

                if (needToDownload)
                {
                    messageBack(0, "Downloading setup prog " + _file);
                    byte[] res = Server.GetFile(FileType.Support, _file);
                    Directory.CreateDirectory(Path.GetDirectoryName(localFile));
                    if (res.Length > 0)
                    {
                        FileStream stream = File.Create(localFile, res.Length);
                        stream.Write(res, 0, res.Length);
                        stream.Close();
                        stream.Dispose();
                    }
                    else
                    {
                        // Create empty file
                        FileStream stream = File.Create(localFile);
                        stream.Write(res, 0, res.Length);
                        stream.Close();
                        stream.Dispose();
                    }

                    FileInfo local = new FileInfo(localFile);
                    local.LastWriteTimeUtc = remote.LastWriteTimeUtc;
                    messageBack(0, "Saved at " + _file);
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Unable to download file: " + _file);
            }
        }
Ejemplo n.º 2
0
 public void AddJob(int id, Job job)
 {
     lock (_clients)
     {
         try
         {
             ReturnClient(id).Jobs.Add(job);
         }
         catch (Exception ex)
         {
             logger.Error(ex, "Error adding job");
         }
     }
 }
Ejemplo n.º 3
0
 public void AddPriorityJob(int clientId, Job j)
 {
     ServerServices.AddPriorityJob(clientId, j);
 }
Ejemplo n.º 4
0
 public static void AddPriorityJob(int id, Job job)
 {
     lock (_clients)
     {
         try
         {
             ReturnClient(id).PriorityJobs.Add(job);
         }
         catch (Exception ex)
         {
             logger.Error(ex, "Error adding priority job");
         }
     }
 }