Exemplo n.º 1
0
        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(); });
            }
        }
Exemplo n.º 2
0
        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");
            }
        }