protected override void protectedPulse(PulseArgs args) { foreach (var item in sws.Values.Where(s => s.IsActive).Reverse()) item.Activate(); if (State == State.InWork) foreach (var item in Frames .Where(s => s.IsEnabled && s.IsActive).Reverse()) { item.Activate(); #if DEBUG //Console.ReadLine(); #endif } }
protected override void protectedPulse(PulseArgs args) { Stream stream; if ((stream = GetContent(args)) != null) { string fn; using (var fs = new FileStream(fn = PathExtension.GetAlternativeFilePath( GetFullPath(args)), FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)) { var buff = new byte[1024]; int readed; while ((readed = stream.Read(buff, 0, buff.Length)) > 0) fs.Write(buff, 0, readed); Log("Сохранен: {0}", fn); } } base.protectedPulse(args); }
private string GetFullPath(PulseArgs args) { string dir = Path.Combine(PathExtension.CorrectPath(Directory), PathExtension.CorrectPath(args[SubDirKey].GoString())), fn; dir = Path.Combine(dir, PathExtension.CorrectPath(args[FileNameKey].GoString() + '.' + (ExtensionKey ?? "xml"))); if (!(fn = Path.GetDirectoryName(dir)).IsEmpty() && !System.IO.Directory.Exists(fn)) System.IO.Directory.CreateDirectory(fn); return dir; }
private Stream GetContent(PulseArgs args) { var key = ContentKey.IsEmpty() ? "Content" : ContentKey; return args.ContainsKey(key) ? args[key] as Stream : null; }
public override void Pulse(PulseArgs args) { Console.WriteLine("{0}: {1}", args.Sender.Name, args.Values.FirstOrDefault()); }
public override void Pulse(PulseArgs args) { if (Condition.GetResult()) { try { if (_Client != null) { Echo("Аутентификация..."); Client.Authenticate(); Echo("Чтение списка сообщений..."); Client.Stat(); var itm = Client.List(); WaitingMessages = itm.Count; Echo("Ожидающих сообщений: {0}", WaitingMessages); MailMessageEx mme; MemoryStream mem; byte[] buffer = new byte[1024]; int readed = 0; int mailcount = Math.Min(itm.Count, MailWindow); for (int i = 0; i < mailcount; i++) { Echo("Получение писем {0} из {1}.", i + 1, mailcount); mme = Client.RetrMailMessageEx(itm[i]); Log("Получено сообщение от {0}. Тема:{1}. Вложений:{2}", mme.From.Address, mme.Subject, mme.Attachments.Count); foreach (var item in mme.Attachments) { mem = new MemoryStream(); while ((readed = item.ContentStream.Read(buffer, 0, buffer.Length)) > 0) mem.Write(buffer, 0, readed); mem.Position = 0; getAttach(mem, mme.From.Address, (string.IsNullOrEmpty(item.Name)) ? mme.Subject : item.Name); } Client.Dele(itm[i]); } Client.Quit(); } else { Log("POP-клиент не настроен. Фрейм деактивируется."); IsEnabled = false; } } catch (Exception ex) { ThrowException(ex); } } }
protected override void protectedPulse(PulseArgs args) { string dir, backupdir; CreateDirectoriesIfNeeded(out dir, out backupdir); CheckOpenedStreams(backupdir); UpdateOrder(dir); if (orderLoad.Count > 0) { var item = orderLoad.First(); var a2 = args.Clone(); var fn = Path.GetFileName(item); a2[GetKeyOrDefault(FileNameKey, "FileName")] = IsExludeExtensionInName ? Path.GetFileNameWithoutExtension(item) : fn; if (IsReadToMemory) { var buff = new byte[2048]; int readed; var ms = new MemoryStream(); using (var fs = new FileStream(item, FileMode.Open, FileAccess.Read)) while ((readed = fs.Read(buff, 0, buff.Length)) > 0) ms.Write(buff, 0, readed); //Thread.Sleep(100); Log("Загружен файл '{0}' в память.", item); MoveFile(backupdir, item); a2[GetKeyOrDefault(ContentKey, "Content")] = ms; } else { var fs = new FileStream(item, FileMode.Open, FileAccess.Read, FileShare.None); AddOpenedStreams(item, fs); a2[GetKeyOrDefault(ContentKey, "Content")] = fs; } base.protectedPulse(a2); } if (orderLoad.Count == 0 && openedStreams.Count == 0 && IsDeactivateIfEmpty && WaitCounterFile <= 0) IsActive = false; }
protected override void protectedPulse(PulseArgs args) { Echo("Пауза {0:0.##} секунд", (double)Value / 1000); Thread.Sleep(Math.Max(0, Value)); base.protectedPulse(args); }
private void OutPipe_OnPulse(PulseArgs subj) { buff.Add(subj); }
public override void Pulse(PulseArgs args) { #if !DEBUG try { #endif if (IsEnabled) protectedPulse(args); else if (IsPulseIfDisabled) ThroughPulse(args); #if !DEBUG } catch (Exception ex) { ThrowException(ex); } #endif }
/// <summary> /// Сквозная передача /// </summary> /// <param name="args"></param> protected void ThroughPulse(PulseArgs args) { #if DEBUG //Echo("Передача {0}", args.Id); #endif base.Pulse(args); }
protected virtual void protectedPulse(PulseArgs args) { ThroughPulse(args); }