public void GetAllFormsMetadata() { this.AllForms = new Dictionary <string, FormMetadata>(); var appPreference = new AppSharedPreference(Application.Context); this.MenuItems = new List <MenuItem>(); this.MyFormHandler.AllFormsMetadata = new Dictionary <string, FormMetadata>(); try { var result = Task.Run( () => UiMetadataHttpRequestHelper.GetAllFormsMetadata(this.UiMetadataWebApi.MetadataUrl, appPreference.GetSharedKey("Cookies"))); var metadata = JsonConvert.DeserializeObject <MyForms>(result.Result); var orderedMenu = metadata.Menus.OrderBy(a => a.OrderIndex); var orderedForms = metadata.Forms .OrderBy(a => a.CustomProperties != null ? a.CustomProperties?.GetCustomProperty <long>("menuOrderIndex") : 0) .ToList(); foreach (var menuItem in orderedMenu) { var existingForms = false; foreach (var form in orderedForms) { if (form.CustomProperties != null && this.MenuItems.All(a => a.FormMetadata != form)) { var menuName = form.CustomProperties.GetCustomProperty <string>("menu"); if (!string.IsNullOrEmpty(menuItem.Name)) { if (menuName != null && (menuName.Equals(menuItem.Name) || menuName == "")) { if (!existingForms && menuName != "") { this.MenuItems.Add(new MenuItem(menuItem.Name)); } existingForms = true; this.MenuItems.Add(new MenuItem("\t" + form.Label, form)); } } } if (!this.AllForms.ContainsKey(form.Id)) { this.AllForms.Add(form.Id, form); } if (!this.MyFormHandler.AllFormsMetadata.ContainsKey(form.Id)) { this.MyFormHandler.AllFormsMetadata.Add(form.Id, form); } } } } catch (System.Exception) { this.RunOnUiThread(() => { Toast.MakeText(Application.Context, "Server is not available in this moment", ToastLength.Long).Show(); }); } }
private void GetAllFormsMetadata() { this.AllForms = new Dictionary <string, FormMetadata>(); var userDefaults = NSUserDefaults.StandardUserDefaults; this.MenuItems = new List <FormMetadata>(); try { var result = Task.Run( () => UiMetadataHttpRequestHelper.GetAllFormsMetadata(this.UiMetadataWebApi.MetadataUrl, userDefaults.StringForKey("Cookies"))); var metadata = JsonConvert.DeserializeObject <MyForms>(result.Result); var orderedMenu = metadata.Menus.OrderBy(a => a.OrderIndex); var orderedForms = metadata.Forms .OrderBy(a => a.CustomProperties != null ? a.CustomProperties?.GetCustomProperty <long>("menuOrderIndex") : 0) .ToList(); var y = 50; foreach (var menuItem in orderedMenu) { var existingForms = false; foreach (var form in orderedForms) { if (form.CustomProperties != null && this.MenuItems.All(a => a != form)) { var menuName = form.CustomProperties.GetCustomProperty <string>("menu"); if (!string.IsNullOrEmpty(menuItem.Name)) { if (menuName != null && (menuName.Equals(menuItem.Name) || menuName == "")) { if (!existingForms && menuName != "") { var menuTitle = new UILabel(new RectangleF(15, y, 270, 20)) { Font = UIFont.SystemFontOfSize(18.0f), TextAlignment = UITextAlignment.Left, TextColor = UIColor.Black, Text = menuItem.Name }; this.ScrollView.Add(menuTitle); y += 55; } existingForms = true; this.MenuItems.Add(form); var contentButton = new UIButton(UIButtonType.System) { Frame = new RectangleF(30, y, 260, 20) }; contentButton.SetTitle(form.Label, UIControlState.Normal); contentButton.HorizontalAlignment = UIControlContentHorizontalAlignment.Left; contentButton.TouchUpInside += (o, e) => { this.Wrapper.UpdateView(this.MyFormHandler, new FormParameter(form)); this.SidebarController.CloseMenu(); // this.SidebarController.ChangeContentView(new IntroController()); }; this.ScrollView.Add(contentButton); y += 50; } } } if (!this.AllForms.ContainsKey(form.Id)) { this.AllForms.Add(form.Id, form); } if (!this.MyFormHandler.AllFormsMetadata.ContainsKey(form.Id)) { this.MyFormHandler.AllFormsMetadata.Add(form.Id, form); } } } var frame = this.ScrollView.Frame; frame.Height = y + 50; this.ScrollView.ContentSize = frame.Size; } catch (System.Exception) { this.MyFormHandler.ShowToast("Server is not available in this moment"); } }