예제 #1
0
        /// <summary>
        /// Perform delete action on the current selected treeviewitem
        /// </summary>
        private void DoDelete()
        {
            var dataItem = (DataItemViewModel)FolderView.SelectedItem;

            if (dataItem != null)
            {
                DataItemViewModel itemToDelete = null;
                foreach (DataItemViewModel drive in Logic.Drives)
                {
                    foreach (DataItemViewModel item in drive.Children)
                    {
                        if (item != null && item.FullPath == dataItem.FullPath)
                        {
                            if (Delete(dataItem.FullPath))
                            {
                                itemToDelete = item;
                            }
                            break;
                        }
                    }

                    if (itemToDelete != null)
                    {
                        drive.Children.Remove(itemToDelete);
                        break;
                    }
                }
            }
        }
예제 #2
0
        public void ShowDataItem(DataItem dataItem)
        {
            var view      = new DataItemView();
            var viewModel = new DataItemViewModel(dataItem);

            view.DataContext           = viewModel;
            view.Owner                 = Application.Current.MainWindow;
            view.WindowStartupLocation = WindowStartupLocation.CenterOwner;
            view.ShowDialog();
        }
예제 #3
0
        // GET: DataManagement
        public ActionResult Edit(int id)
        {
            if (id == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var ann = dataItemService.GetDataItem(id);


            if (ann == null)
            {
                return(HttpNotFound());
            }
            var             adminRole = memberService.GetUserRoles().SingleOrDefault(r => r.Name == MemberRoles.Admin.ToString());
            ApplicationUser currUser  = memberService.GetUser(User.Identity.Name);
            // Get Countries


            // get submenu list

            IEnumerable <SubMenu> subMenus = null;

            if (currUser.Roles.Any(r => r.RoleId == adminRole.Id))
            {
                ViewBag.CountryId = new SelectList(categoryService.GetCountries(), "Code", "CodeName", ann.CountryID);
                subMenus          = categoryService.GetDataSubMenus().ToList();
            }
            else
            {
                List <SubCategory> country = new List <SubCategory>();
                country.Add(currUser.Country);
                ViewBag.CountryId = new SelectList(country, "Code", "CodeName", ann.CountryID);
                subMenus          = categoryService.GetSubMenus(currUser) as IEnumerable <SubMenu>;
            }
            List <SubMenu> subMenuFullNames = new List <SubMenu>();

            foreach (var subMenu in subMenus)
            {
                string  subMenuName      = subMenu.GetMainMenu().CodeName + " > " + subMenu.CodeName;
                SubMenu SubMenuViewModel = new SubMenu();
                SubMenuViewModel.Code     = subMenu.Code;
                SubMenuViewModel.CodeName = subMenuName;
                subMenuFullNames.Add(SubMenuViewModel);
            }
            ViewBag.SubCategoryID = new SelectList(subMenuFullNames, "Code", "CodeName", ann.SubCategoryID);
            DataItemViewModel viewModel = AutoMapper.Mapper.Map <DataItemViewModel>(ann);

            if (TempData["fromMenu"] != null)
            {
                viewModel.fromMenu = TempData["fromMenu"] as bool?;
                TempData.Keep("fromMenu");
            }
            return(View(viewModel));
        }
예제 #4
0
    public IActionResult Data(DateTime?start = null, DateTime?end = null)
    {
        start = start ?? DateTime.Now.StartOfWeek(DayOfWeek.Saturday);
        end   = end ?? DateTime.Now;

        var benchmarks = _repo.GetBenchmarks(start.Value, end.Value);

        var hosts = benchmarks.GroupBy(g => g.HostName)
                    .Select(s => new { HostName = s.Key, Count = s.Count() })
                    .OrderByDescending(x => x.Count)
                    .Select(s => s.HostName);

        var dates = benchmarks.Select(x => x.CreatedDate).Distinct().OrderBy(x => x);

        var hostData = new List <HostDataViewModel>();

        foreach (var h in hosts)
        {
            var item = new HostDataViewModel {
                HostName = h
            };
            hostData.Add(item);

            foreach (var d in dates)
            {
                var dataItem = new DataItemViewModel {
                    CreatedDate = d
                };
                item.DataItems.Add(dataItem);

                var benchmark = benchmarks.FirstOrDefault(x => x.HostName == h && x.CreatedDate == d);

                if (benchmark != null)
                {
                    dataItem.Duration        = benchmark.Duration / 1000;
                    dataItem.CpuDuration     = benchmark.TaskResults.FirstOrDefault(f => f.Task == "CPU")?.Duration / 1000;
                    dataItem.DiskDuration    = benchmark.TaskResults.FirstOrDefault(f => f.Task == "Disk[C:\\temp\\Benchmark]")?.Duration / 1000;
                    dataItem.NetworkDuration = benchmark.TaskResults.FirstOrDefault(f => f.Task == "Disk[\\\\dev-srvapp01\\Temporary Files\\Benchmark]")?.Duration / 1000;
                    dataItem.MemoryDuration  = benchmark.TaskResults.FirstOrDefault(f => f.Task == "Memory")?.Duration / 1000;
                }
            }
        }

        return(Json(hostData.ToArray()));
    }
예제 #5
0
        private void OnDataItemClosed(DataItem itemClosed)
        {
            DataItemViewModel existingViewModel = null;

            DataItemViewModel nextSelectedItem = null;

            for (int i = 0; i < this.DataItems.Count; i++)
            {
                existingViewModel = this.DataItems[i];
                if (existingViewModel.DataItem == itemClosed)
                {
                    if (i + 1 < this.DataItems.Count)
                    {
                        nextSelectedItem = this.DataItems[i + 1];
                    }
                    else if (i - 1 >= 0)
                    {
                        nextSelectedItem = this.DataItems[i - 1];
                    }
                    break;
                }
            }

            if (existingViewModel != null)
            {
                bool isRecordingSelected = this.CurrentDataItem == existingViewModel;
                this.DataItems.Remove(existingViewModel);

                this.DataItems.Remove(existingViewModel);

                if (isRecordingSelected)
                {
                    this.CurrentDataItem = nextSelectedItem;
                }
            }
        }
 public LandingPageViewModel()
 {
     Data = new DataItemViewModel();
 }     // end constructor
예제 #7
0
        /// <summary>
        /// 根据itemvalue 获取实体
        /// </summary>
        /// <param name="itemValue"></param>
        /// <returns></returns>
        public DataItemViewModel GetItemDetailByItemValue(string itemValue)
        {
            DataItemViewModel data = this.GetDataItemList().First(t => t.ItemValue == itemValue);

            return(data);
        }
예제 #8
0
        void OnCurrentDataItemViewModelChanged(DataItemViewModel oldItem, DataItemViewModel newItem)
        {
            this.Title = string.Empty;

            Part_Plotter.Children.Remove(m_selectedPeakGraph);
            Part_Plotter.Children.Remove(m_peaksGraph);
            Part_Plotter.Children.Remove(m_diffSignalGraph);
            Part_Plotter.Children.Remove(m_signalGraph);
            Part_Plotter.Children.Remove(m_cursorGraph);
            Part_Plotter.Children.Remove(m_peakThresholdGraph);
            Part_Plotter.Children.Remove(m_stimuliStartsGraph);
            Part_Plotter.Children.Remove(m_filteredSignalGraph);



            m_selectedPeakGraph   = null;
            m_peaksGraph          = null;
            m_diffSignalGraph     = null;
            m_signalGraph         = null;
            m_cursorGraph         = null;
            m_peakThresholdGraph  = null;
            m_stimuliStartsGraph  = null;
            m_filteredSignalGraph = null;

            if (oldItem != null)
            {
                oldItem.CurrentPeakIndexChanged      += OnCurrentPeakIndexChanged;
                oldItem.DataItem.LocatedPeaksUpdated -= OnData_LocatedPeaksUpdated;
                oldItem.DataItem.SweepsChanged       -= OnSweepsChangedChanged;
                oldItem.DataItem.PeakDetectionSettings.CalculatedThresholdChanged -= OnCalculatedThresholdChanged;
            }

            if (newItem == null)
            {
                return;
            }

            this.Title = System.IO.Path.GetFileNameWithoutExtension(newItem.DataItem.Recording.FilePath);

            newItem.CurrentPeakIndexChanged      += OnCurrentPeakIndexChanged;
            newItem.DataItem.LocatedPeaksUpdated += OnData_LocatedPeaksUpdated;
            newItem.DataItem.SweepsChanged       += OnSweepsChangedChanged;
            newItem.DataItem.PeakDetectionSettings.CalculatedThresholdChanged += OnCalculatedThresholdChanged;

            var points = newItem.DataItem.CreateContinuousSignal();

            {
                var xs = Enumerable.Range(0, points.Length).Select(item => item * newItem.DataItem.Recording.Xscale);
                CompositeDataSource origSignal = new CompositeDataSource(xs.AsXDataSource(), points.AsYDataSource());
                m_signalGraph = new DXLineGraph()
                {
                    DataSource = origSignal, LineColor = Colors.Blue
                };

                if (Settings.Settings.Instance.ViewSettings.IsSignalVisible)
                {
                    Part_Plotter.Children.Add(m_signalGraph);
                }

                double samplingPeriod  = 1.0 / (newItem.DataItem.Recording.SamplingFrequency * 1000);
                double cutoffFrequency = 300;
//                bool isLowPass = false;
                var filter = PeaksProcessing.Processing.FirFilter.Create(cutoffFrequency, samplingPeriod, FilterType.HighPass);

                var filteredPoints = newItem.DataItem.CreateContinuousSignal();

                filter.FilterInPlace(filteredPoints);

                //var mad = DataProcessor.MAD(filteredPoints);
                //double sigma = 1.4826 * mad.Value;

                //var curvatures = DataProcessor.CalculateCurvatures(points);
                CompositeDataSource curvaturesSignal = new CompositeDataSource(xs.AsXDataSource(), filteredPoints.AsYDataSource());
                m_filteredSignalGraph = new DXLineGraph()
                {
                    DataSource = curvaturesSignal, LineColor = Colors.Green
                };

                Part_Plotter.Children.Add(m_filteredSignalGraph);

                //m_curvaturesGraph = new DXLineGraph() { DataSource = curvaturesSignal, LineColor = Colors.Green };

                //Part_Plotter.Children.Add(m_curvaturesGraph);
            }

            {
                var xsDiff = Enumerable.Range(0, points.Length - 1).Select(item => item * newItem.DataItem.Recording.Xscale);
                CompositeDataSource diffSignal = new CompositeDataSource(xsDiff.AsXDataSource(), DataProcessor.ComputeDiff(points).AsYDataSource());
                m_diffSignalGraph = new DXLineGraph()
                {
                    DataSource = diffSignal, LineColor = Colors.Red
                };

                if (Settings.Settings.Instance.ViewSettings.IsDiffSignalVisible)
                {
                    Part_Plotter.Children.Add(m_diffSignalGraph);
                }
            }

            m_cursorGraph = new CursorCoordinateGraph()
            {
                CustomXFormat = "{0:F}", CustomYFormat = "{0:F}"
            };
            Part_Plotter.Children.Add(m_cursorGraph);

            Part_Plotter.FitToView();

            RefreshPeaksGraph();
            RefreshStimuliStartsGraph();
            OrderGraphs();
        }
예제 #9
0
        public ActionResult Edit(DataItemViewModel viewModel, int[] attachFileIds, int[] mainImageIds)
        {
            if (ModelState.IsValid)
            {
                DataItem model = dataItemService.GetDataItem(viewModel.ID);
                model = AutoMapper.Mapper.Map <DataItemViewModel, DataItem>(viewModel, model);
                if (mainImageIds != null && mainImageIds.Length > 0)
                {
                    foreach (int fileID in mainImageIds)
                    {
                        File file = fileService.getFile(fileID);
                        if (file != null)
                        {
                            if (model.Images == null)
                            {
                                model.Images = new List <File>();
                            }
                            if (model.Images.Count(i => i.FileId == fileID) == 0)
                            {
                                model.Images.Add(file);
                            }
                        }
                    }
                }
                if (attachFileIds != null && attachFileIds.Length > 0)
                {
                    foreach (int id in attachFileIds)
                    {
                        File file = fileService.getFile(id);
                        if (file != null)
                        {
                            model.AttachFiles.Add(file);
                        }
                    }
                }
                model.LastUpdatedDate = DateTime.UtcNow;
                var user = memberService.GetUser(User.Identity.Name);
                model.LastUpdatedUserID = user.Id;
                SubMenu subMenu = categoryService.GetCategory(model.SubCategoryID) as SubMenu;
                if (subMenu != null)
                {
                    model.MainMenuID = subMenu.GetMainMenu().Code;
                }
                dataItemService.SaveDataItem();
                if (viewModel.fromMenu != null && viewModel.fromMenu == true)
                {
                    return(RedirectToAction("View", new { id = model.ID, fromMenu = true }));
                }
                else
                {
                    TempData["ReloadData"] = true;
                    return(RedirectToAction("View", new { id = model.ID }));
                }
            }
            // get submenu list
            var                   adminRole = memberService.GetUserRoles().SingleOrDefault(r => r.Name == MemberRoles.Admin.ToString());
            ApplicationUser       currUser  = memberService.GetUser(User.Identity.Name);
            IEnumerable <SubMenu> subMenus  = null;

            if (currUser.Roles.Any(r => r.RoleId == adminRole.Id))
            {
                ViewBag.CountryId = new SelectList(categoryService.GetCountries(), "Code", "CodeName", viewModel.CountryID);
                subMenus          = categoryService.GetDataSubMenus().ToList();
            }
            else
            {
                List <SubCategory> country = new List <SubCategory>();
                country.Add(currUser.Country);
                ViewBag.CountryId = new SelectList(country, "Code", "CodeName");
                subMenus          = categoryService.GetSubMenus(currUser) as IEnumerable <SubMenu>;
            }
            List <SubMenu> subMenuFullNames = new List <SubMenu>();

            foreach (var subMenu in subMenus)
            {
                string  subMenuName      = subMenu.GetMainMenu().CodeName + " > " + subMenu.CodeName;
                SubMenu SubMenuViewModel = new SubMenu();
                SubMenuViewModel.Code     = subMenu.Code;
                SubMenuViewModel.CodeName = subMenuName;
                subMenuFullNames.Add(SubMenuViewModel);
            }
            ViewBag.SubCategoryID = new SelectList(subMenuFullNames, "Code", "CodeName", viewModel.SubCategoryID);
            if (mainImageIds != null)
            {
                if (viewModel.Images == null)
                {
                    viewModel.Images = new List <File>();
                }
                foreach (var id in mainImageIds)
                {
                    File file = fileService.getFile(id);
                    if (file != null)
                    {
                        viewModel.Images.Add(file);
                    }
                }
            }
            if (attachFileIds != null)
            {
                if (viewModel.AttachFiles == null)
                {
                    viewModel.AttachFiles = new List <File>();
                }
                foreach (var id in attachFileIds)
                {
                    File file = fileService.getFile(id);
                    if (file != null)
                    {
                        viewModel.AttachFiles.Add(file);
                    }
                }
            }
            viewModel.MainMenu = categoryService.GetCategory(viewModel.MainMenuID) as MainMenu;
            return(View(viewModel));
        }
예제 #10
0
        public ActionResult Create(DataItemViewModel viewModel, int[] attachFileIds, int[] mainImageIds)
        {
            if (ModelState.IsValid)
            {
                DataItem model = AutoMapper.Mapper.Map <DataItem>(viewModel);
                if (attachFileIds != null)
                {
                    model.AttachFiles = new List <File>();
                    foreach (int id in attachFileIds)
                    {
                        File file = fileService.getFile(id);
                        if (file != null)
                        {
                            model.AttachFiles.Add(file);
                        }
                    }
                }
                if (mainImageIds != null && mainImageIds.Length > 0)
                {
                    model.Images = new List <File>();
                    File file = fileService.getFile(mainImageIds[mainImageIds.Length - 1]);
                    if (file != null)
                    {
                        model.Images.Add(file);
                    }
                }
                model.LastUpdatedDate = DateTime.UtcNow;
                var user = memberService.GetUser(User.Identity.Name);
                model.LastUpdatedUserID = user.Id;
                model.CreatedDate       = model.LastUpdatedDate;
                model.CreatedUserID     = user.Id;
                dataItemService.CreateDataItem(model);
                SubMenu subMenu = categoryService.GetCategory(model.SubCategoryID) as SubMenu;
                if (subMenu != null)
                {
                    model.MainMenuID = subMenu.GetMainMenu().Code;
                }

                dataItemService.SaveDataItem();
                if (!string.IsNullOrEmpty(viewModel.ReturnedURL))
                {
                    string[] urls = viewModel.ReturnedURL.Split('/');
                    return(RedirectToAction(urls[1], urls[0]));
                }
                TempData["ReloadData"] = true;
                return(RedirectToAction("Index"));
            }

            // get submenu list
            var                   adminRole = memberService.GetUserRoles().SingleOrDefault(r => r.Name == MemberRoles.Admin.ToString());
            ApplicationUser       currUser  = memberService.GetUser(User.Identity.Name);
            IEnumerable <SubMenu> subMenus  = null;

            if (currUser.Roles.Any(r => r.RoleId == adminRole.Id))
            {
                subMenus          = categoryService.GetDataSubMenus().ToList();
                ViewBag.CountryId = new SelectList(categoryService.GetCountries(), "Code", "CodeName");
            }
            else
            {
                List <SubCategory> country = new List <SubCategory>();
                country.Add(currUser.Country);
                ViewBag.CountryId = new SelectList(country, "Code", "CodeName");
                subMenus          = categoryService.GetSubMenus(currUser) as IEnumerable <SubMenu>;
            }
            List <SubMenu> subMenuFullNames = new List <SubMenu>();

            foreach (var subMenu in subMenus)
            {
                string  subMenuName  = subMenu.GetMainMenu().CodeName + " > " + subMenu.CodeName;
                SubMenu SubViewModel = new SubMenu();
                SubViewModel.Code     = subMenu.Code;
                SubViewModel.CodeName = subMenuName;
                subMenuFullNames.Add(SubViewModel);
            }
            ViewBag.SubCategoryID = new SelectList(subMenuFullNames, "Code", "CodeName");
            if (mainImageIds != null)
            {
                viewModel.Images = new List <File>();
                foreach (var id in mainImageIds)
                {
                    File file = fileService.getFile(id);
                    if (file != null)
                    {
                        viewModel.Images.Add(file);
                    }
                }
            }
            if (attachFileIds != null)
            {
                viewModel.AttachFiles = new List <File>();
                foreach (var id in attachFileIds)
                {
                    File file = fileService.getFile(id);
                    if (file != null)
                    {
                        viewModel.AttachFiles.Add(file);
                    }
                }
            }
            return(View(viewModel));
        }
        public ActionResult Edit(DataItemViewModel viewModel, int[] attachFileIds, int[] mainImageIds)
        {
            if (ModelState.IsValid)
            {
                DataItem model = dataItemService.GetDataItem(viewModel.ID);
                model = AutoMapper.Mapper.Map<DataItemViewModel, DataItem>(viewModel, model);
                if (mainImageIds != null && mainImageIds.Length > 0)
                {
                    foreach( int fileID in mainImageIds)
                    {
                        File file = fileService.getFile(fileID);
                        if (file != null)
                        {
                            if (model.Images == null)
                            {
                                model.Images = new List<File>();
                            }
                            if(model.Images.Count(i => i.FileId == fileID) == 0)
                            {
                                model.Images.Add(file);
                            }
                        }
                    }
                }
                if (attachFileIds != null && attachFileIds.Length > 0)
                {
                    foreach (int id in attachFileIds)
                    {
                        File file = fileService.getFile(id);
                        if (file != null)
                        {
                            model.AttachFiles.Add(file);
                        }
                    }
                }
                model.LastUpdatedDate = DateTime.UtcNow;
                var user = memberService.GetUser(User.Identity.Name);
                model.LastUpdatedUserID = user.Id;
                SubMenu subMenu = categoryService.GetCategory(model.SubCategoryID) as SubMenu;
                if (subMenu != null)
                {
                    model.MainMenuID = subMenu.GetMainMenu().Code;
                }
                dataItemService.SaveDataItem();
                if(viewModel.fromMenu !=null && viewModel.fromMenu == true)
                {
                    return RedirectToAction("View", new { id = model.ID , fromMenu = true });
                }
                else
                {
                    TempData["ReloadData"] = true;
                    return RedirectToAction("View", new { id = model.ID});
                }

            }
            // get submenu list
            var adminRole = memberService.GetUserRoles().SingleOrDefault(r => r.Name == MemberRoles.Admin.ToString());
            ApplicationUser currUser = memberService.GetUser(User.Identity.Name);
            IEnumerable<SubMenu> subMenus = null;
            if (currUser.Roles.Any(r => r.RoleId == adminRole.Id))
            {
                ViewBag.CountryId = new SelectList(categoryService.GetCountries(), "Code", "CodeName", viewModel.CountryID);
                subMenus = categoryService.GetDataSubMenus().ToList();
            }
            else
            {
                List<SubCategory> country = new List<SubCategory>();
                country.Add(currUser.Country);
                ViewBag.CountryId = new SelectList(country, "Code", "CodeName");
                subMenus = categoryService.GetSubMenus(currUser) as IEnumerable<SubMenu>;
            }
            List<SubMenu> subMenuFullNames = new List<SubMenu>();
            foreach (var subMenu in subMenus)
            {
                string subMenuName = subMenu.GetMainMenu().CodeName + " > " + subMenu.CodeName;
                SubMenu SubMenuViewModel = new SubMenu();
                SubMenuViewModel.Code = subMenu.Code;
                SubMenuViewModel.CodeName = subMenuName;
                subMenuFullNames.Add(SubMenuViewModel);
            }
            ViewBag.SubCategoryID = new SelectList(subMenuFullNames, "Code", "CodeName", viewModel.SubCategoryID);
            if (mainImageIds != null)
            {
                if (viewModel.Images == null)
                    viewModel.Images = new List<File>();
                foreach (var id in mainImageIds)
                {
                    File file = fileService.getFile(id);
                    if (file != null)
                        viewModel.Images.Add(file);
                }
            }
            if (attachFileIds != null)
            {
                if(viewModel.AttachFiles == null)
                    viewModel.AttachFiles = new List<File>();
                foreach (var id in attachFileIds)
                {
                    File file = fileService.getFile(id);
                    if (file != null)
                        viewModel.AttachFiles.Add(file);
                }
            }
            viewModel.MainMenu = categoryService.GetCategory(viewModel.MainMenuID) as MainMenu;
            return View(viewModel);
        }
        public ActionResult Create(DataItemViewModel viewModel, int[] attachFileIds, int[]mainImageIds)
        {
            if (ModelState.IsValid)
            {
                DataItem model = AutoMapper.Mapper.Map<DataItem>(viewModel);
                if (attachFileIds != null)
                {
                    model.AttachFiles = new List<File>();
                    foreach (int id in attachFileIds)
                    {
                        File file = fileService.getFile(id);
                        if (file != null)
                        {
                            model.AttachFiles.Add(file);
                        }
                    }
                }
                if(mainImageIds != null && mainImageIds.Length > 0)
                {
                    model.Images = new List<File>();
                    File file = fileService.getFile(mainImageIds[mainImageIds.Length-1]);
                    if(file != null)
                    {
                        model.Images.Add(file);
                    }
                }
                model.LastUpdatedDate=DateTime.UtcNow;
                var user = memberService.GetUser(User.Identity.Name);
                model.LastUpdatedUserID = user.Id;
                model.CreatedDate = model.LastUpdatedDate;
                model.CreatedUserID = user.Id;
                dataItemService.CreateDataItem(model);
                SubMenu subMenu = categoryService.GetCategory(model.SubCategoryID) as SubMenu;
                if (subMenu != null)
                {
                    model.MainMenuID = subMenu.GetMainMenu().Code;
                }

                dataItemService.SaveDataItem();
                if (!string.IsNullOrEmpty(viewModel.ReturnedURL))
                {
                    string[] urls = viewModel.ReturnedURL.Split('/');
                    return RedirectToAction(urls[1], urls[0]);
                }
                TempData["ReloadData"] = true;
                return RedirectToAction("Index");
            }

            // get submenu list
            var adminRole = memberService.GetUserRoles().SingleOrDefault(r => r.Name == MemberRoles.Admin.ToString());
            ApplicationUser currUser = memberService.GetUser(User.Identity.Name);
            IEnumerable<SubMenu> subMenus = null;
            if (currUser.Roles.Any(r => r.RoleId == adminRole.Id))
            {
                subMenus = categoryService.GetDataSubMenus().ToList();
                ViewBag.CountryId = new SelectList(categoryService.GetCountries(), "Code", "CodeName");
            }
            else
            {
                List<SubCategory> country = new List<SubCategory>();
                country.Add(currUser.Country);
                ViewBag.CountryId = new SelectList(country, "Code", "CodeName");
                subMenus = categoryService.GetSubMenus(currUser) as IEnumerable<SubMenu>;
            }
            List<SubMenu> subMenuFullNames = new List<SubMenu>();
            foreach (var subMenu in subMenus)
            {
                string subMenuName = subMenu.GetMainMenu().CodeName + " > " + subMenu.CodeName;
                SubMenu SubViewModel = new SubMenu();
                SubViewModel.Code = subMenu.Code;
                SubViewModel.CodeName = subMenuName;
                subMenuFullNames.Add(SubViewModel);
            }
            ViewBag.SubCategoryID = new SelectList(subMenuFullNames, "Code", "CodeName");
            if (mainImageIds != null)
            {
                viewModel.Images = new List<File>();
                foreach (var id in mainImageIds)
                {
                    File file = fileService.getFile(id);
                    if (file != null)
                        viewModel.Images.Add(file);
                }
            }
            if (attachFileIds != null)
            {
                viewModel.AttachFiles = new List<File>();
                foreach (var id in attachFileIds)
                {
                    File file = fileService.getFile(id);
                    if (file != null)
                        viewModel.AttachFiles.Add(file);
                }
            }
            return View(viewModel);
        }