Ejemplo n.º 1
0
		virtual public string Init(ulong nClientBrowserID)
		{
			(new Logger()).WriteWarning("________________INIT   begin");
			string sRetVal = "";
			(new Logger()).WriteDebug2("init [browser:" + nClientBrowserID + "][client:" + Client.nID + "][last:" + Client.dtPing + "]");
#if DEBUG
			if (true)
#else
			if (DateTime.Now > Client.dtPing.AddSeconds(20) || IsClientCurrent(nClientBrowserID))
#endif
			{
				ClientInit(nClientBrowserID);
			}
			//else if (null == Session["ClientID"])
			//    Session["ClientID"] = Client.nID;
			//else if (!IsClientCurrent(nClientBrowserID))
			else
			{
				return (Session["ClientID"] ?? "null") + ":" + Client.nCurrentClientBrowserID + ":" + nClientBrowserID + ":" + " клиент управления автоматизацией аппаратно-студийного блока уже запущен в другом окне браузера или на другой рабочей станции";
			}

			if (!GarbageCollector.IsRunning())
			{
				try
				{
					(new Logger()).WriteDebug2("init:text");
					Template cText = new Template(""); // взмолаживание девайса
					cText.TextCreate(".");
					cText.Prepare();
					cText.Start();
					System.Threading.Thread.Sleep(1000);
					cText.Stop();

					(new Logger()).WriteDebug2("init:discom");
					(new userspace.Helper()).DisComInit(); // взмолаживание сридов для просчета чата.
				}
				catch (Exception ex)
				{
					sRetVal = "не пройдена инициализация сервиса";
					(new Logger()).WriteError(ex);
				}
				if ("" == sRetVal)
				{
					GarbageCollector.Run();
				}
			}
			(new Logger()).WriteWarning("________________INIT   end" + sRetVal);
			return sRetVal;
		}
Ejemplo n.º 2
0
		public Item ItemCreate(string sPreset, string sFile, UserReplacement[] aUserReplacements)  // aUserReplacements  может быть null, nAssetsID  может быть 0
		{
			Item cRetVal = null;
			try
			{
				if (0 < Client.nID)
				{
					string sInfo = "Template, " + sFile;
					if (null != (cRetVal = GarbageCollector.ItemGet(sInfo)) && cRetVal.eStatus != Item.Status.Stopped && cRetVal.eStatus != Item.Status.Error)
						return cRetVal;
					cRetVal = new Template(sFile, (null == aUserReplacements ? null : aUserReplacements.ToDictionary(row => row.sKey, row => row.sValue)));
					cRetVal.sPreset = sPreset;
					cRetVal.sInfo = sInfo;
					GarbageCollector.ItemAdd(cRetVal);
					(new Logger()).WriteDebug3("create: " + sInfo + " hash:[" + cRetVal.GetHashCode() + "]");
				}
				else
					(new Logger()).WriteError("create: не инициирован механизм регистрации клиента");
			}
			catch (Exception ex)
			{
				(new Logger()).WriteError(ex);
			}
			return cRetVal;
		}