Exemplo n.º 1
0
 public void WaveFile(AudioLog audioLog)
 {
     if (_waveSource == null)
     {
         throw new ArgumentException("wave source not set up");
     }
     lock (_lock)
     {
         _waveFile?.Dispose();
         _waveFile = new WaveFileWriter(audioLog.GetWav(), _waveSource.WaveFormat);
     }
 }
Exemplo n.º 2
0
        public IEnumerable <AudioLog> GetFilesOlderThan(DateTime date)
        {
            var webRequest = WebRequest.Create($"ftp://{_host}/{_targetDirectory}") as FtpWebRequest;

            if (webRequest == null)
            {
                throw new WebException("Failed to create a web request");
            }
            webRequest.Method      = WebRequestMethods.Ftp.ListDirectory;
            webRequest.Credentials = new NetworkCredential(_username, _password);

            var webResponse = webRequest.GetResponse() as FtpWebResponse;

            if (webResponse != null)
            {
                using (var stream = webResponse.GetResponseStream())
                {
                    if (stream != null)
                    {
                        using (var streamReader = new StreamReader(stream))
                        {
                            string line;
                            while ((line = streamReader.ReadLine()) != null)
                            {
                                var fullFileName = line.Split('/').Last();
                                var file         = fullFileName.Split('.').First();

                                DateTime fileTime;
                                if (!DateTime.TryParseExact(file, _format, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out fileTime))
                                {
                                    Logger.Warn($"Malformed file name {file}");
                                    continue;
                                }
                                if (fileTime.CompareTo(date) < 0)
                                {
                                    yield return(AudioLog.FromPath(line));
                                }
                            }
                        }
                    }
                    else
                    {
                        throw new WebException("Failed to get the response stream of directory listing");
                    }
                }
            }
            else
            {
                throw new WebException("Failed to get a response of directory listing");
            }
        }
 public bool TryUploadFile(AudioLog audioLog)
 {
     try
     {
         var fullpath = $"{GetFolder(audioLog.TimeOfLog)}\\{Path.GetFileName(audioLog.GetMp3())}";
         File.Copy(audioLog.GetMp3(), fullpath);
     }
     catch (Exception e)
     {
         Logger.Error(e.Message);
         return(false);
     }
     return(true);
 }
Exemplo n.º 4
0
 public bool TryUploadFile(AudioLog audioLog)
 {
     _client = new WebClient
     {
         Credentials = new NetworkCredential(_username, _password),
         Proxy       = null
     };
     try
     {
         var address = $"ftp://{_host}/{_targetDirectory}/{Path.GetFileName(audioLog.GetMp3())}";
         _client.UploadFile(address,
                            "STOR", audioLog.GetMp3());
     }
     catch (Exception exception)
     {
         Logger.Warn(exception.Message);
         return(false);
     }
     return(true);
 }
        public IEnumerable <AudioLog> GetFilesOlderThan(DateTime date)
        {
            if (_destinationDirectory == null)
            {
                throw new ArgumentException("Destination directory is not set");
            }
            var dirInfo  = new DirectoryInfo(_destinationDirectory);
            var allFiles = dirInfo.GetFiles("*.mp3", SearchOption.AllDirectories);

            foreach (var file in allFiles)
            {
                DateTime fileTime;
                if (!DateTime.TryParseExact(file.Name.Split(Char.Parse(".")).First(), _format, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out fileTime))
                {
                    Logger.Warn($"Malformed file name {file.Name}");
                    continue;
                }
                if (fileTime.CompareTo(date) < 0)
                {
                    yield return(AudioLog.FromPath(file.Name));
                }
            }
        }