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; }
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; }