public async Task StartAsync() { _context.FullMenu = (await _terminalApi.GetMenus2(new MenuRequestDto())).Value.First(); IMenuCacheModel menuCache = CacheTree.Map <MenuCacheModel, Availability, CommonModifier, Language, MenuCategory, MenuItem, ModifierGroup, RelatedModifier, MenuCategory2Availability, MenuItem2Availability, ModifierGroup2MenuItem>(_context.FullMenu); _context.TreeMenu = CacheTree.CreateTree(menuCache, menuCache.Language.First().Key); }
public SessionImplObject GetTree(SessionQuery sessionQuery) { var ser = new JavaScriptSerializer(); string json; try { //string decimalCulture=TreeObj.Configuration.Locale; //TreeObj.Configuration.Locale = System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.ToUpper(); CacheTree ct = new CacheTree(ConnectionString, TreeObj.Configuration); //controlla il parametro CachedTree del webconfig se utilizzare o meno la cache bool UseWidgetCache = (WebClientSettings.Instance != null) ? WebClientSettings.Instance.CachedTree : false; string JsonTree = null; if (UseWidgetCache) { JsonTree = ct.GetCachedTree(); } if (!string.IsNullOrEmpty(JsonTree)) { return new SessionImplObject() { SavedTree = JsonTree } } ; //ISdmxObjects SdmxOBJ = GetSdmxObject(TreeObj.Configuration); ISdmxObjects SdmxOBJ = null; if (sessionQuery._IGetSDMXObject == null || TreeObj.Configuration.EndPoint != sessionQuery._endpointSettings.EndPoint) { SdmxOBJ = GetSdmxObject(TreeObj.Configuration, sessionQuery); sessionQuery._IGetSDMXObject = SdmxOBJ; } else { SdmxOBJ = sessionQuery._IGetSDMXObject; } //TreeObj.Configuration.Locale = decimalCulture; List <JsTreeNode> nodelist = BuildJSTree(SdmxOBJ, System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName); if (nodelist == null || nodelist.Count == 0) {//Invio Errore var x = new { error = true, dataflowError = true, message = ISTAT.WebClient.WidgetComplements.Model.App_GlobalResources.Messages.no_results_found }; throw new Exception(ser.Serialize(x)); } json = ser.Serialize(nodelist); JArray jobject = JArray.Parse(json); string appo = jobject.ToString(); ct.SaveCachedTree(json); return(new SessionImplObject() { SavedTree = json, SdmxObject = SdmxOBJ }); } catch (InvalidOperationException ex) { Logger.Warn(Resources.ErrorMaxJsonLength); Logger.Warn(ex.Message, ex); throw new Exception(ErrorOccured); } catch (ArgumentException ex) { Logger.Warn(Resources.ErrorRecursionLimit); Logger.Warn(ex.Message, ex); throw new Exception(ErrorOccured); } catch (Exception ex) { Logger.Warn(ex.Message, ex); throw new Exception(ErrorOccured); } }