Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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));
                }
            }
        }
Exemplo n.º 6
0
        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));
                }
            }
        }
Exemplo n.º 7
0
        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));
                }
            }
        }