public bool ItemStop(Item cItem) { bool bRetVal = false; Item cItemLocal = null; try { if (0 < Client.nID) { if (null != (cItemLocal = GarbageCollector.ItemGet(cItem))) { (new Logger()).WriteDebug2("stop: " + cItemLocal.ToString()); cItemLocal.Stop(); bRetVal = true; } else { (new Logger()).WriteError("item:stop: указанный элемент не зарегистрирован [item:" + cItem.GetHashCode() + "]"); } } else { (new Logger()).WriteError("item:stop: не инициирован механизм регистрации клиента"); } } catch (Exception ex) { if (null != cItemLocal) { cItemLocal.eStatus = Item.Status.Error; } (new Logger()).WriteError(ex); } return(bRetVal); }
public bool ItemDelete(Item cItem) { bool bRetVal = false; try { if (0 < Client.nID) { Item cItemLocal = GarbageCollector.ItemGet(cItem); if (null != cItemLocal) { (new Logger()).WriteDebug2("delete: " + cItemLocal.ToString()); GarbageCollector.ItemDelete(cItemLocal); bRetVal = true; } else { (new Logger()).WriteError("item:delete: указанный элемент не зарегистрирован [item:" + cItem.GetHashCode() + "]"); } } else { (new Logger()).WriteError("item:delete: не инициирован механизм регистрации клиента"); } } catch (Exception ex) { (new Logger()).WriteError(ex); } return(bRetVal); }
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); }
public bool AddTextToRoll(string sTemplateInfo, string sText) { Item cItem = GarbageCollector.ItemGet(sTemplateInfo); Template cTemplate; if (null != cItem && cItem is Template && (cTemplate = (Template)cItem).eStatus == Item.Status.Started) { return(((Template)cItem).AddTextToRoll(sText)); } return(false); }
public Item[] ItemsUpdate(Item[] aItems) { if (null == Session["ClientID"]) { (new Logger()).WriteError(new Exception("ItemsUpdate(): Попытка обращения с непроинициализированного клиента")); return(null); } Client.dtPing = DateTime.Now; List <Item> aRetVal = new List <Item>(); try { //if (DateTime.Now > _dtStatusGetLast.AddMinutes(1)) //{ // _dtStatusGetLast = DateTime.Now; // int nTemplCount = 0; // lock (_aItems) // nTemplCount = _aItems.Count(o => Client.nID == o.nClientID); // (new Logger()).WriteDebug2("ingenie.asmx.cs: MyPair[] EffectStatusGet: Вошли в StatusGet, aItemIDs.Length = {" + aItemIDs.Length + "}, _ahItems[nClientID].Keys.Count = {" + nTemplCount + "}"); //} if (null != aItems) { Item cItem; bool bGCRunning = GarbageCollector.IsRunning(); for (int nIndx = 0; aItems.Length > nIndx; nIndx++) { if (!bGCRunning || null == (cItem = GarbageCollector.ItemGet(aItems[nIndx]))) { (new Logger()).WriteError("items:update: указанный элемент не зарегистрирован [item:" + aItems[nIndx].GetHashCode() + "]"); cItem = aItems[nIndx]; cItem.eStatus = Item.Status.Error; } aRetVal.Add(cItem); } } } catch (Exception ex) { (new Logger()).WriteError(ex); } return(aRetVal.ToArray()); }