public CommonItem(CommonItem item, bool transient, bool expired) // for cloning { SysProps = new NamedValueSet(); ItemKind = item.ItemKind; Transient = transient; Id = Guid.NewGuid(); AppScope = item.AppScope; NetScope = item.NetScope; Name = item.Name; AppProps = new NamedValueSet(item.AppProps); DataTypeName = item.DataTypeName; Created = DateTimeOffset.Now; StoreUSN = item.StoreUSN; if (expired) { Expires = Created; SysProps.Clear(); } else { Expires = Created.Add(item.Expires - item.Created); YData = item.YData; YDataHash = CalculateBufferHash(YData); YSign = item.YSign; SysProps = new NamedValueSet(item.SysProps); } }