/// <summary> /// Get item for type and identifier. /// </summary> /// <param name="type">Type of item.</param> /// <param name="ident">Identifier of item.</param> /// <returns>Unspecified common item.</returns> public IItem get(ItemType type, Ident ident) { bool isFull = (ident.guid != null && ident.item != null); switch (type) { case ItemType.EW: { // check with part from identifier IItem item = itemEW.FirstOrDefault(i => (isFull && ident.guid.CompareGuids(i.Key.guid) && ident.item == i.Key.item) || (!isFull && ident.guid != null && ident.guid.CompareGuids(i.Key.guid)) || (!isFull && ident.item != null && ident.item == i.Key.item) ).Value; if (item == null && isFull) { itemEW[ident] = new ItemEW(); return(itemEW[ident]); } else if (item == null && ident.item == Settings._.DefaultOWPItem) //TODO: { return(new ItemEW()); } else if (item == null) { throw new NotFoundException(ident.item, $"OWP Items-EW: The '{ident.guid}:{ident.item}' is not found.", ident.guid); } return(item); } } throw new NotFoundException(type, $"OWP Items: Type '{type}' is not supported."); }
/// <summary> /// Get EW item for identifier. /// </summary> /// <param name="ident">Identifier of item.</param> /// <returns>EW item.</returns> public IItemEW getEW(Ident ident) { return((IItemEW)get(ItemType.EW, ident)); }