public Character(IFListClient client, string name, int id) { Client = client; Name = name; ID = id; if (Client != null && Name != null) { _Description = new ExpiringLazy <string>(() => { var task = Client.GetDescription(Name); task.Wait(); return(task.Result); }, TIMEOUT); _ProfileInfo = new ExpiringLazy <Info.ProfileInfo>(() => { var task = Client.GetInfo(Name); task.Wait(); return(task.Result); }, TIMEOUT); _Images = new ExpiringLazy <IReadOnlyCollection <Info.ImageInfo> >(() => { var task = Client.GetImages(Name); task.Wait(); return(task.Result); }, TIMEOUT); _Kinks = new ExpiringLazy <IReadOnlyDictionary <Info.KinkInfo, Info.KinkChoice> >(() => { var task = Client.GetKinks(Name); task.Wait(); return(task.Result); }, TIMEOUT); } else { _Description = new ExpiringLazy <string>(() => null, TimeSpan.MaxValue); _ProfileInfo = new ExpiringLazy <Info.ProfileInfo>(() => null, TimeSpan.MaxValue); _Images = new ExpiringLazy <IReadOnlyCollection <Info.ImageInfo> >(() => null, TimeSpan.MaxValue); _Kinks = new ExpiringLazy <IReadOnlyDictionary <Info.KinkInfo, Info.KinkChoice> >(() => null, TimeSpan.MaxValue); } }
public Character(IFListClient client, string name, int id) { Client = client; Name = name; ID = id; if (Client != null && Name != null) { _Description = new ExpiringLazy<string>(() => { var task = Client.GetDescription(Name); task.Wait(); return task.Result; }, TIMEOUT); _ProfileInfo = new ExpiringLazy<Info.ProfileInfo>(() => { var task = Client.GetInfo(Name); task.Wait(); return task.Result; }, TIMEOUT); _Images = new ExpiringLazy<List<Info.ImageInfo>>(() => { var task = Client.GetImages(Name); task.Wait(); return task.Result; }, TIMEOUT); _Kinks = new ExpiringLazy<Dictionary<Info.KinkInfo, Info.KinkChoice>>(() => { var task = Client.GetKinks(Name); task.Wait(); return task.Result; }, TIMEOUT); } else { _Description = new ExpiringLazy<string>(() => null, TimeSpan.MaxValue); _ProfileInfo = new ExpiringLazy<Info.ProfileInfo>(() => null, TimeSpan.MaxValue); _Images = new ExpiringLazy<List<Info.ImageInfo>>(() => null, TimeSpan.MaxValue); _Kinks = new ExpiringLazy<Dictionary<Info.KinkInfo, Info.KinkChoice>>(() => null, TimeSpan.MaxValue); } }