Exemple #1
0
 public void Upload(string filename, string sourcePath)
 {
     try
     {
         FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(string.Format("{0}/{1}", "ftp://" + Server, filename)));
         request.Method      = WebRequestMethods.Ftp.UploadFile;
         request.Credentials = new NetworkCredential(Username, Password);
         Stream     ftpStream = request.GetRequestStream();
         FileStream fs        = File.OpenRead(sourcePath);
         byte[]     buffer    = new byte[1024];
         double     total     = (double)fs.Length;
         int        byteRead  = 0;
         double     read      = 0;
         do
         {
             byteRead = fs.Read(buffer, 0, 1024);
             ftpStream.Write(buffer, 0, byteRead);
             read += (double)byteRead;
         } while (byteRead != 0);
         fs.Close();
         ftpStream.Close();
     }
     catch (WebException)
     {
         EventLogViewModel.AddNewRegistry("An error has occured during file uploading",
                                          DateTime.Now, this.GetType().Name, "ERROR");
     }
 }
Exemple #2
0
        public async static void SaveAES_KeyIV_ToFile()
        {
            string resultReturn = null;

            if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime)
            {
                SaveFileDialog saveFileDialog1 = new SaveFileDialog
                {
                    Title            = "Save AES key to file",
                    InitialFileName  = "core.key",
                    DefaultExtension = "key"
                };
                string result = await saveFileDialog1.ShowAsync(desktopLifetime.MainWindow);

                resultReturn = result;
                Debug.WriteLine(resultReturn);
            }

            if (!String.IsNullOrEmpty(resultReturn))
            {
                byte[] concat = new byte[48];
                AES256Key.CopyTo(concat, 0);
                AES256IV.CopyTo(concat, 32);
                File.WriteAllBytes(resultReturn, concat);
                EventLogViewModel.AddNewRegistry("AES Key and IV has been saved to external file",
                                                 DateTime.Now, "Encryption", "HIGH");
            }
        }
Exemple #3
0
 public static void GetAllInformationsAboutFiles(string ip, string username, string password,
                                                 ref List <FileInformation> listFiles)
 {
     ListFilesAndDirectories(ip, username, password);
     try
     {
         foreach (var entry in files)
         {
             FileInformation fileInfo         = new FileInformation();
             string[]        entrySplitted    = entry.Split("/");
             string          filename         = entrySplitted[entrySplitted.Length - 1];
             string[]        filenameSplitted = filename.Split(".");
             fileInfo.FullPath         = entry;
             fileInfo.RelativePath     = filenameSplitted[0];
             fileInfo.Extension        = filenameSplitted[1];
             fileInfo.ModificationTime = GetDateTimestamp(entry, username, password);
             fileInfo.Size             = GetFileSize(entry, username, password);
             fileInfo.LocalPath        = entry;
             listFiles.Add(fileInfo);
         }
     }
     catch (Exception e)
     {
         EventLogViewModel.AddNewRegistry("An error has occured during collecting files' infos",
                                          DateTime.Now, "FTP", "ERROR");
     }
 }
Exemple #4
0
        public void GetFileList()
        {
            try
            {
                FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create("ftp://" + Server);
                ftpRequest.Credentials = new NetworkCredential(Username, Password);
                ftpRequest.Method      = WebRequestMethods.Ftp.ListDirectory;
                FtpWebResponse response     = (FtpWebResponse)ftpRequest.GetResponse();
                StreamReader   streamReader = new StreamReader(response.GetResponseStream());

                directories = new List <string>();

                string line = streamReader.ReadLine();
                while (!string.IsNullOrEmpty(line))
                {
                    directories.Add(line);
                    line = streamReader.ReadLine();
                }
                streamReader.Close();
            }
            catch (WebException)
            {
                EventLogViewModel.AddNewRegistry("An error has occured during file listing",
                                                 DateTime.Now, this.GetType().Name, "ERROR");
            }
        }
Exemple #5
0
        public async static void LoadAES_KeyIV_FromFile()
        {
            string resultReturn;
            string fullPath;

            string[] result = null;
            if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime)
            {
                OpenFileDialog dialog = new OpenFileDialog();
                result = await dialog.ShowAsync(desktopLifetime.MainWindow);
            }
            try
            {
                if (result != null && result.Length != 0)
                {
                    resultReturn = result[0];
                    fullPath     = string.Join(" ", resultReturn);
                    Debug.WriteLine(fullPath);
                    byte[] buffer = File.ReadAllBytes(fullPath);
                    Debug.WriteLine(buffer.Length);
                    AES256Key   = buffer.Take(32).ToArray();
                    AES256IV    = buffer.Skip(32).Take(16).ToArray();
                    IsKeyLoaded = true;
                    IsKeySet    = true;
                    IsIVSet     = true;
                    EventLogViewModel.AddNewRegistry("AES Key and IV has been loaded from external file",
                                                     DateTime.Now, "Encryption", "HIGH");
                }
            } catch (IOException ex)
            {
                EventLogViewModel.AddNewRegistry("File that stores a key can not be opened",
                                                 DateTime.Now, "Encryption", "ERROR");
            }
        }
Exemple #6
0
        public static void ListFilesAndDirectories(string ip, string username, string password)
        {
            try
            {
                files = new List <string>();
                Queue <String> folders = new Queue <String>();
                folders.Enqueue("ftp://" + ip + "/");

                while (folders.Count > 0)
                {
                    String        fld      = folders.Dequeue();
                    List <String> newFiles = new List <String>();

                    FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(fld);
                    ftp.Credentials = new NetworkCredential(username, password);
                    ftp.UsePassive  = false;
                    ftp.Method      = WebRequestMethods.Ftp.ListDirectory;
                    using (StreamReader resp = new StreamReader(ftp.GetResponse().GetResponseStream()))
                    {
                        String line = resp.ReadLine();
                        while (line != null)
                        {
                            newFiles.Add(line.Trim());
                            line = resp.ReadLine();
                        }
                    }

                    ftp             = (FtpWebRequest)FtpWebRequest.Create(fld);
                    ftp.Credentials = new NetworkCredential(username, password);
                    ftp.UsePassive  = false;
                    ftp.Method      = WebRequestMethods.Ftp.ListDirectoryDetails;
                    using (StreamReader resp = new StreamReader(ftp.GetResponse().GetResponseStream()))
                    {
                        String line = resp.ReadLine();
                        while (line != null)
                        {
                            if (line.Trim().ToLower().StartsWith("d") || line.Contains(" <DIR> "))
                            {
                                String dir = newFiles.First(x => line.EndsWith(x));
                                newFiles.Remove(dir);
                                folders.Enqueue(fld + dir + "/");
                            }
                            line = resp.ReadLine();
                        }
                    }
                    files.AddRange(from f in newFiles select fld + f);
                }

                foreach (var entry in files)
                {
                    Debug.WriteLine(entry.ToString());
                }
            }
            catch (Exception e)
            {
                EventLogViewModel.AddNewRegistry("An error has occured during files listing",
                                                 DateTime.Now, "FTP", "ERROR");
            }
        }
Exemple #7
0
        public void Download(string filename, string destinationPath)
        {
            try
            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(string.Format("{0}/{1}", "ftp://" + Server, filename)));
                request.Credentials = new NetworkCredential(Username, Password);
                request.Method      = WebRequestMethods.Ftp.DownloadFile;


                FtpWebRequest request1 = (FtpWebRequest)WebRequest.Create(new Uri(string.Format("{0}/{1}", "ftp://" + Server, filename)));
                request1.Credentials = new NetworkCredential(Username, Password);
                request1.Method      = WebRequestMethods.Ftp.GetFileSize;
                FtpWebResponse response = (FtpWebResponse)request1.GetResponse();
                double         total    = response.ContentLength;
                response.Close();

                FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create(new Uri(string.Format("{0}/{1}", "ftp://" + Server, filename)));
                request2.Credentials = new NetworkCredential(Username, Password);
                request2.Method      = WebRequestMethods.Ftp.GetDateTimestamp;
                FtpWebResponse response2 = (FtpWebResponse)request2.GetResponse();
                DateTime       modify    = response2.LastModified;
                response2.Close();


                Stream ftpstream = request.GetResponse().GetResponseStream();


                // Dodać rozwiązanie gdy wybrana scieżka to np. C:\ 


                FileStream fs = new FileStream(destinationPath + "\\" + filename, FileMode.Create);

                // Method to calculate and show the progress.
                byte[] buffer   = new byte[1024];
                int    byteRead = 0;
                double read     = 0;
                do
                {
                    byteRead = ftpstream.Read(buffer, 0, 1024);
                    fs.Write(buffer, 0, byteRead);
                    read += (double)byteRead;
                }while (byteRead != 0);
                ftpstream.Close();
                fs.Close();
            }
            catch (Exception e)
            {
                EventLogViewModel.AddNewRegistry("An error has occured during file downloading",
                                                 DateTime.Now, this.GetType().Name, "ERROR");
            }
        }
Exemple #8
0
 public override List <FileInformation> GetFiles()
 {
     try
     {
         var filesList = new List <FileInformation>();
         FTP.GetAllInformationsAboutFiles(Credentials["server"], Credentials["username"], Credentials["password"], ref filesList);
         return(filesList);
     }
     catch (Exception e)
     {
         EventLogViewModel.AddNewRegistry("An error has occured during remote file listing", DateTime.Now,
                                          "FTP" + Credentials["server"], "ERROR");
         throw;
     }
 }
Exemple #9
0
 public static bool UpdateTasksList(string name, bool status)
 {
     try
     {
         tasksList[name].IsActive = status;
         EventLogViewModel.AddNewRegistry("Updated " + name + " activity status",
                                          DateTime.Now, typeof(CoreTask).Name, "MEDIUM");
         return(true);
     }
     catch (Exception e)
     {
         EventLogViewModel.AddNewRegistry("Error during updating " + name + " activity status",
                                          DateTime.Now, typeof(CoreTask).Name, "ERROR");
         return(false);
     }
 }
Exemple #10
0
 public static bool UpdateTasksList(string oldName, string newName)
 {
     try
     {
         ConfigHub confValue = tasksList[oldName];
         tasksList.Remove(oldName);
         AddTaskEntry(newName, confValue);
         EventLogViewModel.AddNewRegistry("Updated " + oldName + " name",
                                          DateTime.Now, typeof(CoreTask).Name, "MEDIUM");
         return(true);
     }
     catch (Exception e)
     {
         EventLogViewModel.AddNewRegistry("Error during updating " + oldName + " name",
                                          DateTime.Now, typeof(CoreTask).Name, "ERROR");
         return(false);
     }
 }
Exemple #11
0
 public static void AddTaskEntry(string taskName, ConfigHub configuration)
 {
     try
     {
         tasksList.Add(taskName, configuration);
         EventLogViewModel.AddNewRegistry("Custom Configuration " + taskName + " has been Saved",
                                          DateTime.Now, "Config", "MEDIUM");
     }
     catch (ArgumentException)
     {
         EventLogViewModel.AddNewRegistry("Config " + taskName + " already exists",
                                          DateTime.Now, "Config", "HIGH");
     }
     catch (Exception)
     {
         EventLogViewModel.AddNewRegistry(taskName + " config can not be added ",
                                          DateTime.Now, "Config", "HIGH");
     }
 }