/// <summary> /// Wrap an IcdCode object into an IcdCodeItem object /// </summary> /// <param name="fromCode">IcdCode object to wrap</param> /// <param name="useProvider">Data Provider that additional information on the IcdCode will be retrieved from</param> /// <returns>New IcdCodeItem object wrapping the original IcdCode object</returns> public static IcdCodeItem ToIcdCodeItem(this IcdCode fromCode, DataProviders.IAppDataProvider useProvider) { return(new IcdCodeItem() { Code = fromCode, Comment = String.Empty, Enabled = false, Children = fromCode.DeferredOnceChildren(useProvider) }); }
/// <summary> /// Copy an IcdCode object to a new instance /// </summary> /// <param name="fromCode">Code to copy</param> /// <returns>A new exact copy of the original IcdCode object</returns> public static IcdCode Copy(this IcdCode fromCode) { return(new IcdCode() { ChildType = fromCode.ChildType, Code = fromCode.Code, CodeType = fromCode.CodeType, RetrievedFrom = fromCode.RetrievedFrom, Title = fromCode.Title }); }
/// <summary> /// Get the enumerator for the children /// On first run, it retrieves the children; all initial runs use the previously retrieved children /// </summary> /// <returns>Enumerator for IcdCodeItem collection</returns> public IEnumerator <IcdCodeItem> GetEnumerator() { if (items == null) { items = (from child in dataProvider.GetChildren(parent.Code, parent.CodeType) select child.ToIcdCodeItem(dataProvider)) .ToList(); parent = null; dataProvider = null; } return(items.GetEnumerator()); }
public IcdCode Save(IcdCode icdCode) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var entity = Mapper.Map <IcdCode, IcdCodesEntity>(icdCode); if (!adapter.SaveEntity(entity, true)) { throw new PersistenceFailureException(); } return(Mapper.Map <IcdCodesEntity, IcdCode>(entity)); } }
/// <summary> /// Initiate a new DeferredOnceChildren object with necessary data /// </summary> /// <param name="fromParent">Parent IcdCode object to get children from</param> /// <param name="useProvider">Data Provider to get the data from</param> public DeferredOnceChildren(IcdCode fromParent, DataProviders.IAppDataProvider useProvider) { items = null; parent = fromParent; dataProvider = useProvider; }
/// <summary> /// Get the Children of an IcdCode object with deferred once execution /// Does not execute retrieving the children until first enumeration; after, uses the first retrieved collection /// </summary> /// <param name="fromParent">Parent IcdCode to get the Children from</param> /// <param name="useProvider">Data Provider to get the Children from</param> /// <returns>Deferred Once Enumerable of IcdCodeItem objects representing the children</returns> public static IEnumerable <IcdCodeItem> DeferredOnceChildren(this IcdCode fromParent, DataProviders.IAppDataProvider useProvider) { return(new DeferredOnceChildren(fromParent, useProvider)); }