Exemple #1
0
        public async Task <IViewComponentResult> InvokeAsync()
        {
            //TODO : Use Generic Proxy Handler
            var client = new HttpClient
            {
                BaseAddress = new System.Uri("http://localhost:60755")//TODO Use config
            };

            var response = await client.GetAsync("api/Menu/GetAllActiveMenus");

            if (response.IsSuccessStatusCode)
            {
                var result = await response.Content.ReadAsStringAsync();

                var data = JsonConvert.DeserializeObject <IEnumerable <MenuDto> >(result);
                var vm   = new MenuViewModel();

                var modules = data.ToList().Select(i => new
                {
                    Text = i.ModuleText,
                    Id   = i.ModuleId
                }).Distinct();
                foreach (var m in modules)
                {
                    var newModule   = vm.AddModule(m.Text);
                    var moduleViews = data.Where(i => i.ModuleId == m.Id && !i.ParentId.HasValue).ToList();
                    foreach (var v in moduleViews)
                    {
                        newModule.Views.Add(new MenuViewModel.View
                        {
                            Action     = v.Action,
                            Controller = v.Controller,
                            Area       = v.Area,
                            Text       = v.Text
                        });
                    }
                    //TODO : alt menüler eklenecek
                }
                return(View(vm));
            }
            await Task.CompletedTask;

            return(View());
        }