protected override void Provide(Action <IFileValue> pushFileValue, MailAdapterConnectionParameters connectionParameters, MailAdapterProviderParameters providerParameters, CancellationToken cancellationToken, IDependencyResolver resolver, IInvoker invoker) { var files = ActionRunner.TryExecute(connectionParameters.MaxAttempts, () => GetFileList(connectionParameters, providerParameters)); foreach (var item in files) { if (cancellationToken.IsCancellationRequested) { break; } pushFileValue(item); } }
protected override void Process(IFileValue fileValue, SftpAdapterConnectionParameters connectionParameters, SftpAdapterProcessorParameters processorParameters, Action <IFileValue> push, CancellationToken cancellationToken, IDependencyResolver resolver, IInvoker invoker) { var folder = string.IsNullOrWhiteSpace(connectionParameters.RootFolder) ? (processorParameters.SubFolder ?? "") : Path.Combine(connectionParameters.RootFolder, processorParameters.SubFolder ?? ""); var stream = fileValue.GetContent(); byte[] fileContents; stream.Position = 0; using (MemoryStream ms = new MemoryStream()) { stream.CopyTo(ms); fileContents = ms.ToArray(); } ActionRunner.TryExecute(connectionParameters.MaxAttempts, () => UploadSingleTime(connectionParameters, fileContents, Path.Combine(folder, fileValue.Name))); push(fileValue); }
protected override void Process(IFileValue fileValue, DropboxAdapterConnectionParameters connectionParameters, DropboxAdapterProcessorParameters processorParameters, Action <IFileValue> push, CancellationToken cancellationToken, IDependencyResolver resolver, IInvoker invoker) { var path = $"/{Path.Combine(connectionParameters.RootFolder ?? "", processorParameters.SubFolder ?? "", fileValue.Name)}".Replace("\\", "/").Replace("//", "/"); var stream = fileValue.GetContent(); byte[] fileContents; stream.Position = 0; using (MemoryStream ms = new MemoryStream()) { stream.CopyTo(ms); fileContents = ms.ToArray(); } ActionRunner.TryExecute(connectionParameters.MaxAttempts, () => UploadSingleTime(connectionParameters, fileContents, path)); push(fileValue); }
protected override void Process( IFileValue fileValue, MailAdapterConnectionParameters connectionParameters, MailAdapterProcessorParameters processorParameters, Action <IFileValue> push, CancellationToken cancellationToken, IDependencyResolver resolver, IInvoker invoker) { var portNumber = connectionParameters.PortNumber == 0 ? 25 : connectionParameters.PortNumber; var destinations = GetDestinations(processorParameters, fileValue.Metadata).ToList(); var stream = fileValue.GetContent(); MemoryStream ms = new MemoryStream(); stream.CopyTo(ms); foreach (var(destination, metadataJson) in destinations) { MailMessage mailMessage = new MailMessage(); mailMessage.To.Add(new MailAddress(destination.Email, destination.DisplayName)); mailMessage.From = new MailAddress(FormatText(processorParameters.From, metadataJson), FormatText(processorParameters.FromDisplayName, metadataJson)); mailMessage.Subject = FormatText(processorParameters.Subject, metadataJson); mailMessage.IsBodyHtml = true; ms.Seek(0, SeekOrigin.Begin); var fileExtension = Path.GetExtension(fileValue.Name); if (string.IsNullOrWhiteSpace(processorParameters.Body) && (string.Equals(fileExtension, ".html", StringComparison.InvariantCultureIgnoreCase) || string.Equals(fileExtension, ".htm", StringComparison.InvariantCultureIgnoreCase))) { var content = new StreamReader(ms).ReadToEnd(); mailMessage.Body = content; if (string.IsNullOrWhiteSpace(mailMessage.Subject)) { mailMessage.Subject = Path.GetFileNameWithoutExtension(fileValue.Name); } } else { mailMessage.Body = FormatText(processorParameters.Body, metadataJson); Attachment attachment = new Attachment(ms, fileValue.Name, MimeTypes.GetMimeType(fileValue.Name)); mailMessage.Attachments.Add(attachment); } ActionRunner.TryExecute(connectionParameters.MaxAttempts, () => SendSingleFile(connectionParameters, (MimeMessage)mailMessage, portNumber)); } push(fileValue); }
protected override void Provide(Action <IFileValue> pushFileValue, DropboxAdapterConnectionParameters connectionParameters, DropboxAdapterProviderParameters providerParameters, CancellationToken cancellationToken, IDependencyResolver resolver, IInvoker invoker) { var searchPattern = string.IsNullOrEmpty(providerParameters.FileNamePattern) ? "*" : providerParameters.FileNamePattern; var matcher = new Matcher().AddInclude(searchPattern); var folder = $"/{Path.Combine(connectionParameters.RootFolder ?? "", providerParameters.SubFolder ?? "")}".Replace("\\", "/").Replace("//", "/"); var files = ActionRunner.TryExecute(connectionParameters.MaxAttempts, () => GetFileList(connectionParameters, providerParameters)); foreach (var file in files.Entries.Where(i => i.IsFile && !i.IsDeleted)) { if (cancellationToken.IsCancellationRequested) { break; } if (matcher.Match(file.Name).HasMatches) { pushFileValue(new DropboxFileValue(connectionParameters, folder, file.Name, this.Code, this.Name, this.ConnectionName)); } } }
protected override void Provide(Action <IFileValue> pushFileValue, SftpAdapterConnectionParameters connectionParameters, SftpAdapterProviderParameters providerParameters, CancellationToken cancellationToken, IDependencyResolver resolver, IInvoker invoker) { var searchPattern = string.IsNullOrEmpty(providerParameters.FileNamePattern) ? "*" : providerParameters.FileNamePattern; var matcher = new Matcher().AddInclude(searchPattern); var folder = string.IsNullOrWhiteSpace(connectionParameters.RootFolder) ? (providerParameters.SubFolder ?? "") : Path.Combine(connectionParameters.RootFolder, providerParameters.SubFolder ?? ""); var files = ActionRunner.TryExecute(connectionParameters.MaxAttempts, () => GetFileList(connectionParameters, providerParameters)); foreach (var file in files) { if (cancellationToken.IsCancellationRequested) { break; } if (matcher.Match(file.Name).HasMatches) { pushFileValue(new SftpFileValue(connectionParameters, folder, file.Name, this.Code, this.Name, this.ConnectionName)); } } }
protected override void Provide(Action <IFileValue> pushFileValue, FtpAdapterConnectionParameters connectionParameters, FtpAdapterProviderParameters providerParameters, CancellationToken cancellationToken, IDependencyResolver resolver, IInvoker invoker) { var searchPattern = string.IsNullOrEmpty(providerParameters.FileNamePattern) ? "*" : providerParameters.FileNamePattern; var matcher = new Matcher().AddInclude(searchPattern); var files = ActionRunner.TryExecute(connectionParameters.MaxAttempts, () => GetFileList(connectionParameters, providerParameters)); foreach (var item in files) { if (cancellationToken.IsCancellationRequested) { break; } var fullPath = item.FullName; var fileName = Path.GetFileName(fullPath); fileName = Path.GetFileName(fileName); if (matcher.Match(fileName).HasMatches) { pushFileValue(new FtpFileValue(connectionParameters, Path.GetDirectoryName(fullPath), fileName, this.Code, this.Name, this.ConnectionName)); } } }