Пример #1
0
        /// <summary>
        /// Apps the menu view model_ datasources loaded event.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The e.</param>
        void appMenuViewModel_DatasourcesLoadedEvent(object sender, SimpleMvvmToolkit.NotificationEventArgs <Exception> e)
        {
            appMenuViewModel = (AppMenuViewModel)sender;

            ApplicationViewModel.Instance.EwavDatasources = appMenuViewModel.Datasources2;

            if (appMenuViewModel.Datasources2.Count > 0)
            {
                List <EwavDatasourceDto> Datasources2 = new List <EwavDatasourceDto>();
                Datasources2.Insert(0, new EwavDatasourceDto()
                {
                    DatasourceNoCamelName = "Set Data Source"
                });
                Datasources2.InsertRange(1, appMenuViewModel.Datasources2);
                //appMenuViewModel.Datasources2 = Datasources2;
                this.cboDatasoures.ItemsSource       = Datasources2;
                this.cboDatasoures.SelectedValue     = "DatasourceID";
                this.cboDatasoures.DisplayMemberPath = "DatasourceNoCamelName";

                this.cboDatasoures.SelectedIndex = 0;
            }
            else
            {
                spMsg.Visibility   = System.Windows.Visibility.Visible;
                tbSaveError.Text   = "There are no data sources assigned to you. Please contact the Adminstrator for your organization.";
                btnSetDB.IsEnabled = false;
            }
            waitCursor.Visibility = System.Windows.Visibility.Collapsed;
        }
Пример #2
0
        void AppMenuView_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            try
            {
                tbVersion.Text = "Version " + applicationViewModel.AssemblyVersion;


                if (applicationViewModel.DemoMode)
                {
                    AppNameText2.Text = "Epi Info Cloud Data Analytics Administration (Demo Mode)";
                }
                else
                {
                    AppNameText2.Text = "Epi Info Cloud Data Analytics Administration ";
                }



                ManageOrg.Visibility         = System.Windows.Visibility.Collapsed;
                ManageUsers.Visibility       = System.Windows.Visibility.Collapsed;
                ManageDataSources.Visibility = System.Windows.Visibility.Collapsed;
                CopyDashboard.Visibility     = System.Windows.Visibility.Collapsed;


                AppMenuViewModel appMenuViewModel = (AppMenuViewModel)this.DataContext;
            }
            catch (System.Exception ex)
            {
                throw new Exception("aa");
            }
        }
Пример #3
0
        public void SetDatasourceDisplayText()
        {
            AppMenuViewModel appMenuViewModel = (AppMenuViewModel)this.DataContext;

            if (applicationViewModel.EwavDatafilters.Count > 0)
            {
                this.tbRecordCount.Text = "Calculatihg filtered record count...";
            }

            if (ApplicationViewModel.Instance.EwavSelectedDatasource != null &&
                ApplicationViewModel.Instance.EwavSelectedDatasource.DatasourceName != "Set Data Source")
            {
                DisplayControlButtons();
                this.tbDatasourceName.Text = ApplicationViewModel.Instance.EwavSelectedDatasource.DatasourceName;
                if (ApplicationViewModel.Instance.EwavSelectedDatasource.FilteredRecords > 0)
                {
                    this.tbRecordCount.Text = "Records: " + ApplicationViewModel.Instance.EwavSelectedDatasource.FilteredRecords.ToString() + " of " + ApplicationViewModel.Instance.EwavSelectedDatasource.TotalRecords.ToString();
                }
                else
                {
                    this.tbRecordCount.Text = "Records: " + ApplicationViewModel.Instance.EwavSelectedDatasource.TotalRecords.ToString() + " of " + ApplicationViewModel.Instance.EwavSelectedDatasource.TotalRecords.ToString();
                }
            }
            else
            {
                this.tbDatasourceName.Text = "";
                this.tbRecordCount.Text    = "";
            }
        }
Пример #4
0
        void applicationViewModel_ApplyDataFilterEvent(object o)
        {
            AppMenuViewModel appMenuViewModel = (AppMenuViewModel)this.DataContext;

            if (applicationViewModel.EwavDatafilters.Count > 0)
            {
                this.tbRecordCount.Text = "Calculatihg filtered record count...";
            }


            if (applicationViewModel.UseAdvancedFilter)
            {
                appMenuViewModel.GetRecordCount(this.applicationViewModel.EwavDefinedVariables,
                                                applicationViewModel.AdvancedDataFilterString,
                                                this.applicationViewModel.EwavSelectedDatasource.TableName,
                                                this.applicationViewModel.EwavSelectedDatasource.DatasourceName);
            }
            else
            {
                appMenuViewModel.GetRecordCount(applicationViewModel.EwavDatafilters,
                                                this.applicationViewModel.EwavDefinedVariables,
                                                this.applicationViewModel.EwavSelectedDatasource.TableName,
                                                this.applicationViewModel.EwavSelectedDatasource.DatasourceName);
                // appMenuViewModel.RecordcountRecievedEvent += new EventHandler<SimpleMvvmToolkit.NotificationEventArgs<Exception>>(appMenuViewModel_RecordcountRecievedEvent);
            }

            RefreshCountStatusOff();
        }
Пример #5
0
        void appMenuViewModel_RecordcountRecievedEvent(object sender, SimpleMvvmToolkit.NotificationEventArgs <Exception> e)
        {
            //    AppMenuViewModel appMenuViewModel = (AppMenuViewModel)this.DataContext;
            AppMenuViewModel appMenuViewModel = (AppMenuViewModel)sender;

            SetRecordCountText(appMenuViewModel);
        }
Пример #6
0
 /// <summary>
 /// Handles the Loaded event of the SetDB control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param>
 void SetDB_Loaded(object sender, RoutedEventArgs e)
 {
     appMenuViewModel = new AppMenuViewModel();
     appMenuViewModel.GetDatasourcesAsIEnumerable2();
     waitCursor.Visibility = System.Windows.Visibility.Visible;
     appMenuViewModel.DatasourcesLoadedEvent += new EventHandler <SimpleMvvmToolkit.NotificationEventArgs <Exception> >(appMenuViewModel_DatasourcesLoadedEvent);
 }
Пример #7
0
        void AppMenuView_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            try
            {
                applicationViewModel.AppMenuView = this;

                DatasourceWatcher.Instance.DatasourceWatcherEvent += new EventHandler(datasourceWatcherEvent_DatasourceWatcherEvent);

                DatasourceWatcher.Instance.RefreshEvent += new EventHandler(datasourceWatcher_RefreshEvent);

                if (applicationViewModel.DemoMode)
                {
                    AppNameText.Text = "Epi Info Cloud Data Analytics (Demo Mode)";
                }
                else
                {
                    AppNameText.Text = "Epi Info Cloud Data Analytics ";
                }


                AppMenuViewModel appMenuViewModel = (AppMenuViewModel)this.DataContext;
                //appMenuViewModel.DatasourcesLoadedEvent +=
                //    new EventHandler<SimpleMvvmToolkit.NotificationEventArgs<Exception>>(appMenuViewModel_DatasourcesLoadedEvent);

                applicationViewModel.GadgetsReloaded += new EventHandler(applicationViewModel_GadgetsReloaded);

                //applicationViewModel.FilteredRecordCountUpdatedEvent -= new Client.Application.FilteredRecordcountUpdatedEventHandler(applicationViewModel_FilteredRecordCountUpdatedEvent);
                applicationViewModel.ApplyDataFilterEvent                -= new Client.Application.ApplyFilterEventHandler(applicationViewModel_ApplyDataFilterEvent);
                applicationViewModel.ReadFilterStringEvent               -= new Client.Application.ReadFilterStringEventHandler(applicationViewModel_ReadFilterStringEvent);
                applicationViewModel.DefinedVariableAddedEvent           -= new Client.Application.DefinedVariableAddedEventHandler(applicationViewModel_DefinedVariableAddedEvent);
                applicationViewModel.PreColumnChangedEvent               -= new Client.Application.PreColumnChangedEventHandler(applicationViewModel_PreColumnChangedEvent);
                applicationViewModel.DefinedVariableNotInUseDeletedEvent -= new Client.Application.DefinedVariableNotInUseDeletedEventHandler(applicationViewModel_DefinedVariableNotInUseDeletedEvent);
                applicationViewModel.DefinedVariableInUseDeletedEvent    -= new Client.Application.DefinedVariableInUseDeletedEventHandler(applicationViewModel_DefinedVariableInUseDeletedEvent);

                appMenuViewModel.ErrorNotice -= new EventHandler <SimpleMvvmToolkit.NotificationEventArgs <Exception> >(appMenuViewModel_ErrorNotice);

                //applicationViewModel.FilteredRecordCountUpdatedEvent += new Client.Application.FilteredRecordcountUpdatedEventHandler(applicationViewModel_FilteredRecordCountUpdatedEvent);
                applicationViewModel.ApplyDataFilterEvent                += new Client.Application.ApplyFilterEventHandler(applicationViewModel_ApplyDataFilterEvent);
                applicationViewModel.ReadFilterStringEvent               += new Client.Application.ReadFilterStringEventHandler(applicationViewModel_ReadFilterStringEvent);
                applicationViewModel.DefinedVariableAddedEvent           += new Client.Application.DefinedVariableAddedEventHandler(applicationViewModel_DefinedVariableAddedEvent);
                applicationViewModel.PreColumnChangedEvent               += new Client.Application.PreColumnChangedEventHandler(applicationViewModel_PreColumnChangedEvent);
                applicationViewModel.DefinedVariableNotInUseDeletedEvent += new Client.Application.DefinedVariableNotInUseDeletedEventHandler(applicationViewModel_DefinedVariableNotInUseDeletedEvent);
                applicationViewModel.DefinedVariableInUseDeletedEvent    += new Client.Application.DefinedVariableInUseDeletedEventHandler(applicationViewModel_DefinedVariableInUseDeletedEvent);

                applicationViewModel.DatasourceChangedEvent += ApplicationViewModel_DatasourceChangedEvent;

                appMenuViewModel.ErrorNotice += new EventHandler <SimpleMvvmToolkit.NotificationEventArgs <Exception> >(appMenuViewModel_ErrorNotice);

                //cboDatasoures.SelectionChanged += new SelectionChangedEventHandler(cboDatasoures_SelectionChanged);

                SetDatasourceDisplayText();

                AuthenticateUser();
            }
            catch (System.Exception)
            {
                throw new Exception("aa");
            }
        }
Пример #8
0
 public Shell(IEventAggregator eventAggregatorr, AppMenuViewModel viewModel)
 {
     InitializeComponent();
     //    SkinStorage.SetVisualStyle(this, "Metro");
     this.eventAgg = eventAggregatorr;
     //Subscribe to the skin changed event.
     this.DataContext = viewModel;
 }
Пример #9
0
        // GET: AppMenu/Create
        public async Task <ActionResult> Create()
        {
            var vm = new AppMenuViewModel();

            await Init(vm);

            return(View(vm));
        }
Пример #10
0
 public async Task Init(AppMenuViewModel vm)
 {
     vm.ParentAppMenus = (await _basicInfoServices.GetParentAppMenu())
                         .Select(a => new SelectListItem()
     {
         Text = a.Name, Value = a.Id.ToString()
     })
                         .ToList();
 }
Пример #11
0
        /// <summary>
        /// Filter String Read Event
        /// </summary>
        /// <param name="o"></param>
        void applicationViewModel_ReadFilterStringEvent(object o)
        {
            AppMenuViewModel appMenuViewModel = (AppMenuViewModel)this.DataContext;

            appMenuViewModel.GetFilterString(applicationViewModel.EwavDatafilters,
                                             this.applicationViewModel.EwavDefinedVariables,
                                             this.applicationViewModel.EwavSelectedDatasource.TableName,
                                             this.applicationViewModel.EwavSelectedDatasource.DatasourceName);
        }
Пример #12
0
 public Shell(IEventAggregator eventAggregatorr, AppMenuViewModel viewModel)
 {
     InitializeComponent();
     SkinStorage.SetVisualStyle(this, "Blend");
     this.eventAgg = eventAggregatorr;
     //Subscribe to the skin changed event.
     this.DataContext = viewModel;
     this.eventAgg.GetEvent <SkinChangedEvent>().Subscribe(SkinChangedHandler);
 }
Пример #13
0
        /// <summary>
        /// Filter String Recieved Event.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void appMenuViewModel_FilterStringRecieved(object sender, SimpleMvvmToolkit.NotificationEventArgs <Exception> e)
        {
            AppMenuViewModel appMenuViewModel = (AppMenuViewModel)this.DataContext;

            if (appMenuViewModel.FilterString.Length > 0)
            {
                applicationViewModel.FilterString = appMenuViewModel.FilterString;
                //applicationViewModel.AdvancedDataFilterString = appMenuViewModel.FilterString;
            }
        }
Пример #14
0
        public void SetRecordCountText(AppMenuViewModel appMenuViewModel)
        {
            if (appMenuViewModel.RecordCountString != null && appMenuViewModel.RecordCountString.Length > 0)
            {
                applicationViewModel.EwavSelectedDatasource.FilteredRecords = Convert.ToInt64(appMenuViewModel.RecordCountString.Substring(appMenuViewModel.RecordCountString.IndexOf(",") + 1, appMenuViewModel.RecordCountString.Length - 1 - appMenuViewModel.RecordCountString.IndexOf(",")));

                string totalRecords = appMenuViewModel.RecordCountString.Substring(0, appMenuViewModel.RecordCountString.IndexOf(","));

                this.tbRecordCount.Text = string.Format("Records: {0} of {1}", applicationViewModel.EwavSelectedDatasource.FilteredRecords.ToString(), totalRecords);
                SetDatasourceDisplayText();
            }
        }
Пример #15
0
        public async Task <ActionResult> Create(AppMenuViewModel vm)
        {
            try
            {
                var result = await _appMenuServices.Create(vm);

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
Пример #16
0
        void CopyDash_Loaded(object sender, RoutedEventArgs e)
        {
            applicationViewModel.CanvasDtoListForLoggedUser = new System.Collections.Generic.List <CanvasDto>();
            applicationViewModel.CanvasListLoadedEvent     -= new Client.Application.CanvasListLoadedEventHandler(applicationViewModel_CanvasListLoadedEvent);
            applicationViewModel.CanvasListLoadedEvent     += new Client.Application.CanvasListLoadedEventHandler(applicationViewModel_CanvasListLoadedEvent);

            applicationViewModel.LoadCanvasUserList(applicationViewModel.LoggedInUser.UserDto.UserID);

            appMenuViewModel = new AppMenuViewModel();
            appMenuViewModel.GetDatasourcesAsIEnumerable2();
            appMenuViewModel.DatasourcesLoadedEvent += new EventHandler <SimpleMvvmToolkit.NotificationEventArgs <Exception> >(appMenuViewModel_DatasourcesLoadedEvent);

            waitCursor.Visibility = System.Windows.Visibility.Visible;
        }
Пример #17
0
        private void appMenuViewModel_DatasourcesLoadedEvent(object sender, SimpleMvvmToolkit.NotificationEventArgs <Exception> e)
        {
            appMenuViewModel = (AppMenuViewModel)sender;

            applicationViewModel.EwavDatasources = appMenuViewModel.Datasources2;


            if (applicationViewModel.CanvasGUIDFromUrl.ToString() != "00000000-0000-0000-0000-000000000000")
            {
                canvasViewModel.GetCanvasSharedStatusWithGuid(applicationViewModel.CanvasGUIDFromUrl.ToString());

                canvasViewModel.CanvasShareStatusDtoLoaded +=
                    new EventHandler <NotificationEventArgs <Exception> >(canvasViewModel_CanvasShareStatusDtoLoaded);
            }
        }
        public async Task <ServiceResponseBase> Update(AppMenuViewModel vm)
        {
            try
            {
                var isExist = await _accessManagementContext.AppMenu.AnyAsync(o => o.Code == vm.Code &&
                                                                              o.Id != vm.Id);

                if (isExist)
                {
                    return(new ServiceResponseBase()
                    {
                        Status = Status.error, Message = "存在重复编码!"
                    });
                }
                var query = await _accessManagementContext.AppMenu.FirstOrDefaultAsync(o => o.Id == vm.Id);

                if (query.Code != vm.Code)
                {
                    var reSetFunction = await _accessManagementContext.ReSetFunction.FirstOrDefaultAsync(o => o.Code == query.Code);

                    if (reSetFunction != null)
                    {
                        reSetFunction.Code = vm.Code;
                    }
                    var functions = await _accessManagementContext.Function.Where(o => o.Code == query.Code).ToListAsync();

                    foreach (var function in functions)
                    {
                        function.Code = vm.Code;
                    }
                }
                Mapper.Map(vm, query);
                _accessManagementContext.Entry(query).State = EntityState.Modified;
                await _accessManagementContext.SaveChangesAsync();

                return(new ServiceResponseBase()
                {
                    Status = Status.ok
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResponseBase()
                {
                    Status = Status.error, Message = ex.Message
                });
            }
        }
Пример #19
0
        private void ReadDatasources()
        {
            //  if  quesrys then change datasource amd load cancas
            ///////////////////////////////////////
            AppMenuViewModel appMenuViewModel = (AppMenuViewModel)this.DataContext;

            appMenuViewModel.DatasourcesLoadedEvent +=
                new EventHandler <SimpleMvvmToolkit.NotificationEventArgs <Exception> >(appMenuViewModel_DatasourcesLoadedEvent);

            appMenuViewModel.RecordcountRecievedEvent -= new EventHandler <SimpleMvvmToolkit.NotificationEventArgs <Exception> >(appMenuViewModel_RecordcountRecievedEvent);
            appMenuViewModel.FilterStringRecieved     -= new EventHandler <SimpleMvvmToolkit.NotificationEventArgs <Exception> >(appMenuViewModel_FilterStringRecieved);

            appMenuViewModel.RecordcountRecievedEvent += new EventHandler <SimpleMvvmToolkit.NotificationEventArgs <Exception> >(appMenuViewModel_RecordcountRecievedEvent);
            appMenuViewModel.FilterStringRecieved     += new EventHandler <SimpleMvvmToolkit.NotificationEventArgs <Exception> >(appMenuViewModel_FilterStringRecieved);

            appMenuViewModel.GetDatasourcesAsIEnumerable2();
        }
Пример #20
0
        private static List <AppMenuViewModel> GetAppMenuUnder(AppMenu parent, List <AppMenu> appMenus, int level = 0)
        {
            List <AppMenuViewModel> result = new List <AppMenuViewModel>();
            ResourceManager         rm     = new ResourceManager(typeof(ResourceText));

            try
            {
                var newLevel         = level + 1;
                var appMenuUnderList = appMenus.Where(m => m.ParentMenuCode == parent.MenuCode).ToList();
                if (appMenuUnderList.Count > 0)
                {
                    appMenuUnderList = appMenuUnderList.OrderBy(m => m.Sequence).ToList();
                    foreach (var appMenuUnder in appMenuUnderList)
                    {
                        AppMenuViewModel appMenu = new AppMenuViewModel();
                        MVMMappingService.MoveData(appMenuUnder, appMenu);
                        appMenu.Level    = newLevel;
                        appMenu.MenuText = rm.GetString(appMenu.ResourceName);

                        if (!string.IsNullOrEmpty(appMenuUnder.RoleForManage) || appMenuUnder.MenuType.Equals("GROUP", StringComparison.OrdinalIgnoreCase))
                        {
                            appMenu.IsRoleForManage = true;
                        }

                        if (!string.IsNullOrEmpty(appMenuUnder.RoleForDisplay) || appMenuUnder.MenuType.Equals("GROUP", StringComparison.OrdinalIgnoreCase))
                        {
                            appMenu.IsRoleForDisplay = true;
                        }
                        result.Add(appMenu);

                        var appMenuNextUnderList = GetAppMenuUnder(appMenuUnder, appMenus, newLevel);
                        if (appMenuNextUnderList.Count > 0)
                        {
                            result.AddRange(appMenuNextUnderList);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(result);
        }
Пример #21
0
        void datasourceWatcher_RefreshEvent(object sender, EventArgs e)
        {
            AppMenuViewModel datasourceWatcher_AppMenuViewModel = ((DatasourceWatcher)sender).appMenuViewModel;

            //    AppMenuViewModel datasourceWatcher_AppMenuViewModel = (AppMenuViewModel)sender;

            if (datasourceWatcher_AppMenuViewModel.RecordCountString != null &&
                datasourceWatcher_AppMenuViewModel.RecordCountString.Length > 0)
            {
                applicationViewModel.EwavSelectedDatasource.FilteredRecords =
                    Convert.ToInt64(datasourceWatcher_AppMenuViewModel.RecordCountString.Substring(
                                        datasourceWatcher_AppMenuViewModel.RecordCountString.IndexOf(",") + 1,
                                        datasourceWatcher_AppMenuViewModel.RecordCountString.Length - 1 -
                                        datasourceWatcher_AppMenuViewModel.RecordCountString.IndexOf(",")));

                string totalRecords = datasourceWatcher_AppMenuViewModel.RecordCountString.Substring(
                    0, datasourceWatcher_AppMenuViewModel.RecordCountString.IndexOf(","));

                this.tbRecordCount.Text = string.Format("Records: {0} of {1}", applicationViewModel.EwavSelectedDatasource.FilteredRecords.ToString(), totalRecords);
            }
        }
        public async Task <ServiceResponseBase> Create(AppMenuViewModel vm)
        {
            try
            {
                var strategy = _accessManagementContext.Database.CreateExecutionStrategy();
                var isExist  = await _accessManagementContext.AppMenu.AnyAsync(o => o.Code == vm.Code);

                if (isExist)
                {
                    return(new ServiceResponseBase()
                    {
                        Status = Status.error, Message = "存在重复编码!"
                    });
                }
                var appMenu = Mapper.Map <AppMenu>(vm);
                await _accessManagementContext.AppMenu.AddAsync(appMenu);

                var reSetFunction = new ReSetFunction()
                {
                    Name = appMenu.Name,
                    Code = appMenu.Code
                };
                await _accessManagementContext.ReSetFunction.AddAsync(reSetFunction);

                await _accessManagementContext.SaveChangesAsync();

                return(new ServiceResponseBase()
                {
                    Status = Status.ok
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResponseBase()
                {
                    Status = Status.error, Message = ex.Message
                });
            }
        }
Пример #23
0
        /// <summary>
        /// Apps the menu view model_ datasources loaded event.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The e.</param>
        void appMenuViewModel_DatasourcesLoadedEvent(object sender, SimpleMvvmToolkit.NotificationEventArgs <Exception> e)
        {
            appMenuViewModel = (AppMenuViewModel)sender;

            ApplicationViewModel.Instance.EwavDatasources = appMenuViewModel.Datasources2;

            if (appMenuViewModel.Datasources2.Count > 1)
            {
                this.cmbDataSource.ItemsSource       = appMenuViewModel.Datasources2;
                this.cmbDataSource.SelectedValue     = "DatasourceID";
                this.cmbDataSource.DisplayMemberPath = "DatasourceNoCamelName";

                this.cmbDataSource.SelectedIndex = -1;
            }
            else
            {
                spMsg.Visibility      = System.Windows.Visibility.Visible;
                errMsg.Text           = "There are no data sources assigned to you. Please contact the Adminstrator for your organization.";
                btnCopyDash.IsEnabled = false;
            }
            waitCursor.Visibility = System.Windows.Visibility.Collapsed;
        }
Пример #24
0
        private void cboDatasoures_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            AppMenuViewModel appMenuViewModel = (AppMenuViewModel)this.DataContext;

            applicationViewModel.ReadAllUsersInMyOrg();
        }
Пример #25
0
        public ActionResult GetMenus()
        {
            var lstMenu = new List <AppMenuViewModel>();

            lstMenu.Add(new AppMenuViewModel
            {
                Icon = "fa fa-dashboard fa-fw",
                Text = "Dashboard",
                Url  = "/admin/home/dashboard",
            });
            var exampleMenu = new AppMenuViewModel
            {
                Icon = "fa fa-tags fa-fw",
                Text = "Example"
            };

            foreach (FileInfo file in new DirectoryInfo(Server.MapPath("~/Areas/Admin/Views/Example")).GetFiles("*.cshtml", SearchOption.TopDirectoryOnly))
            {
                exampleMenu.Children.Add(new WebApp.Models.AppMenuViewModel
                {
                    Icon = "fa fa-tag fa-fw",
                    Text = file.Name.Split('.')[0],
                    Url  = Url.Action(file.Name.Split('.')[0], "Example"),
                });
            }
            lstMenu.Add(exampleMenu);
            // level1
            for (var i = 1; i <= 10; i++)
            {
                var menuLevel1 = new AppMenuViewModel()
                {
                    Id   = i.ToString(),
                    Text = "MENU " + i,
                    Icon = "fa fa-fw fa-users text-aqua",
                };
                menuLevel1.Url = "#" + menuLevel1.Id;

                // level2
                if (i % 4 == 0)
                {
                    for (var x = 1; x <= 5; x++)
                    {
                        var menuLevel2 = new AppMenuViewModel()
                        {
                            Id   = string.Format("{0} - {1}", i, x),
                            Text = "Level 2-" + x,
                            Icon = "fa fa-fw fa-users text-aqua",
                            Url  = "#" + i,
                        };
                        menuLevel2.Url = "#" + menuLevel2.Id;

                        // level3
                        if (x % 2 == 0)
                        {
                            for (var y = 1; y <= 3; y++)
                            {
                                var menuLevel3 = new AppMenuViewModel()
                                {
                                    Id   = string.Format("{0} - {1} - {2}", i, x, y),
                                    Text = "Level 3-" + y,
                                    Icon = "fa fa-fw fa-users text-aqua",
                                };
                                menuLevel3.Url = "#" + menuLevel3.Id;

                                menuLevel2.Children.Add(menuLevel3);
                            }
                        }

                        menuLevel1.Children.Add(menuLevel2);
                    }
                }
                else
                {
                    menuLevel1.Label      = i.ToString();
                    menuLevel1.LabelClass = i % 2 == 0 ? "label-primary" : "label-default";
                }

                lstMenu.Add(menuLevel1);
            }

            return(JsonNet(lstMenu, JsonRequestBehavior.AllowGet));
        }