Ejemplo n.º 1
0
		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
				}
		}
Ejemplo n.º 2
0
		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);
		}
Ejemplo n.º 3
0
		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;
		}
Ejemplo n.º 4
0
		private Stream GetContent(PulseArgs args)
		{
			var key = ContentKey.IsEmpty() ? "Content" : ContentKey;
			return args.ContainsKey(key) ?
				args[key] as Stream : null;
		}
Ejemplo n.º 5
0
 public override void Pulse(PulseArgs args)
 {
     Console.WriteLine("{0}: {1}", args.Sender.Name, args.Values.FirstOrDefault());
 }
Ejemplo n.º 6
0
        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);
                }
            }
        }
Ejemplo n.º 7
0
 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;
 }
Ejemplo n.º 8
0
 protected override void protectedPulse(PulseArgs args)
 {
     Echo("Пауза {0:0.##} секунд", (double)Value / 1000);
     Thread.Sleep(Math.Max(0, Value));
     base.protectedPulse(args);
 }
Ejemplo n.º 9
0
		private void OutPipe_OnPulse(PulseArgs subj)
		{
			buff.Add(subj);
		}
Ejemplo n.º 10
0
		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
		}
Ejemplo n.º 11
0
		/// <summary>
		/// Сквозная передача
		/// </summary>
		/// <param name="args"></param>
		protected void ThroughPulse(PulseArgs args)
		{
#if DEBUG
			//Echo("Передача {0}", args.Id);
#endif
	    
            base.Pulse(args);
		}
Ejemplo n.º 12
0
		protected virtual void protectedPulse(PulseArgs args)
		{
			ThroughPulse(args);
		}