コード例 #1
0
 public BaseCommand Create(EntityListViewModel <BoardViewModel, GetBoardModel> boardListVm, LoadEntityListEnum loadEntityType)
 {
     return(loadEntityType switch
     {
         LoadEntityListEnum.LoadAll => new LoadBoardsCommand(boardListVm, _boardApiClient, _boardViewModelFactory),
         _ => new LoadBoardsByIdsCommand(boardListVm, _boardApiClient, _boardViewModelFactory),
     });
コード例 #2
0
        public void CanExecuteDetailShouldBeFalse()
        {
            EntityListViewModel vm = new EntityListViewModel();

            vm.MyProperty = true;
            Assert.IsFalse(vm.DetailCommand.CanExecute());
        }
コード例 #3
0
 public BaseCommand Create(EntityListViewModel <ArticleViewModel, GetArticleModel> articleListVm, LoadEntityListEnum loadEntityType)
 {
     return(loadEntityType switch
     {
         LoadEntityListEnum.LoadAll => new LoadArticlesCommand(articleListVm, _articleApiClient, _articleViewModelFactory),
         _ => new LoadArticlesByIdsCommand(articleListVm, _articleApiClient, _articleViewModelFactory),
     });
コード例 #4
0
ファイル: MenuViewModel.cs プロジェクト: LiveFly/OSharp
        public void Select(RoutedPropertyChangedEventArgs <object> args)
        {
            if (args.NewValue is not MenuItem item)
            {
                return;
            }

            SelectModel = item.Screen;
            MainViewModel main = IoC.Get <MainViewModel>();

            main.ModuleList.IsShow   = SelectModel is ProjectViewModel;
            main.EntityList.IsShow   = SelectModel is ModuleViewModel;
            main.PropertyList.IsShow = SelectModel is EntityViewModel;
            switch (SelectModel)
            {
            case ProjectViewModel project:
                ModuleListViewModel list1 = IoC.Get <ModuleListViewModel>();
                list1.Project = project;
                list1.Init();
                break;

            case ModuleViewModel module:
                EntityListViewModel list2 = IoC.Get <EntityListViewModel>();
                list2.Module = module;
                list2.Init();
                break;

            case EntityViewModel entity:
                PropertyListViewModel list3 = IoC.Get <PropertyListViewModel>();
                list3.Entity = entity;
                list3.Init();
                break;
            }
        }
コード例 #5
0
        public ActionResult ForUser(int id, int page = 1)
        {
            int pageSize         = 3;
            var model            = new EntityListViewModel <ArticleViewModel>();
            var articles         = articleService.GetPagedArticles(page, pageSize, id);
            var articleViewModel = articles.Select(x => new ArticleViewModel()
            {
                ArticleId    = x.ArticleId,
                CreationDate = x.CreationDate,
                Title        = x.Title,
                Text         = x.Text
            });

            model.Items      = articleViewModel;
            model.PagingInfo = new PagingInfo()
            {
                CurrentPage  = page,
                ItemsPerPage = pageSize,
                TotalItems   = articleService.GetArticleCount(id)
            };
            TempData.Add("PagingInfo", model.PagingInfo);
            var user = userService.GetUserEntity(id);

            if (user != null)
            {
                ViewBag.UserEmail = user.Email;
            }
            return(PartialView("ArticleListPartial", model));
        }
コード例 #6
0
        private void InitializeViewModel()
        {
            _viewModel = new EntityListViewModel <DebtViewModel>()
            {
                AddCommand = new Command(
                    () => OpenDetails(_service.PrepareNew(new DebtViewModel()
                {
                    UserId = GlobalVariables.UserId
                }) as DebtViewModel, true)),

                EditCommand = new DataGridSelectedItemCommand <DebtViewModel>(GridDebts,
                                                                              (item) => OpenDetails(item), null, true),

                DeleteCommand = new DataGridSelectedItemsCommand <DebtViewModel>(GridDebts,
                                                                                 (items) => EntityViewHelper.ConfirmAndRemove(_service, items, () =>
                {
                    // remove in grid
                    foreach (var item in items.ToList())
                    {
                        _viewModel.Entities.Remove(item);
                    }
                    NotifyDataChanged();
                }),
                                                                                 debts => debts.All(x => x.IsRepaid || x.ValueToBePaid <= 0))
            };

            this.DataContext = _viewModel;
        }
コード例 #7
0
 public BaseCommand Create(EntityListViewModel <PublicUserViewModel, GetPublicUserModel> userListVm, LoadEntityListEnum loadEntityType)
 {
     return(loadEntityType switch
     {
         LoadEntityListEnum.LoadAll => new LoadUsersCommand(userListVm, _userApiClient, _publicUserViewModelFactory),
         _ => new LoadUsersByIdsCommand(userListVm, _userApiClient, _publicUserViewModelFactory),
     });
コード例 #8
0
        public ActionResult Index(int articleId, int page = 1)
        {
            int pageSize = 3;
            var model    = new EntityListViewModel <CommentViewModel>();
            var comments = commentService.GetPagedComments(page, pageSize, articleId);

            var commentViewModel = comments.Select(x => new CommentViewModel()
            {
                AuthorId     = x.Author.UserId,
                AuthorName   = x.Author.Name,
                AuthorEmail  = x.Author.Email,
                CreationDate = x.CreationDate,
                Id           = x.CommentId,
                Text         = x.Text
            });

            model.Items      = commentViewModel;
            model.PagingInfo = new PagingInfo()
            {
                CurrentPage  = page,
                ItemsPerPage = pageSize,
                TotalItems   = commentService.GetCommentCount(articleId)
            };

            ViewBag.ArticleId = articleId;

            return(PartialView("CommentsPartial", model));
        }
コード例 #9
0
 public LoadArticlesByIdsCommand(EntityListViewModel <ArticleViewModel, GetArticleModel> listVM,
                                 IArticleApiClient articleApiClient,
                                 IArticleViewModelFactory articleViewModelFactory) : base(listVM)
 {
     _articleApiClient        = articleApiClient;
     _articleViewModelFactory = articleViewModelFactory;
 }
コード例 #10
0
        /// <summary>
        /// Build pager view model from a non-paged list of items.
        /// </summary>
        /// <param name="posts"></param>
        /// <returns></returns>
        public static EntityListViewModel <T> ConvertToListViewModel <T>(System.Web.Mvc.UrlHelper urlhelper, IList <T> items, string controllerName, IDictionary conf) where T : IEntity
        {
            if (string.IsNullOrEmpty(controllerName))
            {
                controllerName = typeof(T).Name;
            }

            // Url for pager.
            // This List page uses a paged result by default.
            // Since we are getting ALL the posts with matching tags, just wrap them in a paged result.
            string url = string.Format("/{0}/index/{1}", controllerName, 1);

            // Check for empty.
            if (items == null)
            {
                var result = new EntityListViewModel <T>(PagedList <T> .Empty, url, false);
                result.ControlPath = "ModelList";
            }

            PagedList <T> pagedList = new PagedList <T>(1, items.Count + 1, items.Count, items);
            var           viewModel = new EntityListViewModel <T>(pagedList, url, false);

            ViewHelper.BuildViewModel <T>(urlhelper, viewModel, default(T), controllerName, "ModelList", false, conf);
            viewModel.Items          = pagedList;
            viewModel.PageIndex      = pagedList.PageIndex;
            viewModel.TotalPages     = pagedList.TotalPages;
            viewModel.ShowEditDelete = false;
            return(viewModel);
        }
コード例 #11
0
        public void CurrentItemPropertyChanged()
        {
            var itemChanged        = false;
            EntityListViewModel vm = new EntityListViewModel();

            vm.Items = new ObservableCollection <Entity>
            {
                new Entity
                {
                    MyDate   = DateTime.Now,
                    MyInt    = 1972,
                    MyString = "Victor"
                }
            };

            vm.CurrentItem = vm.Items.First();

            vm.CurrentItemPropertyChanged += (s, e) =>
            {
                itemChanged = true;
            };

            vm.CurrentItem.MyString = "Hugo";
            Assert.IsTrue(itemChanged);
        }
コード例 #12
0
        public void CanExecuteDetailShouldBeTrue()
        {
            EntityListViewModel vm = new EntityListViewModel();

            vm.MyProperty = true;
            vm.SelectedItems.Add(new Entity());
            Assert.IsTrue(vm.DetailCommand.CanExecute());
        }
コード例 #13
0
        public void ViewModelHasErrors()
        {
            EntityListViewModel vm = new EntityListViewModel();

            vm.MyProperty = true;
            vm.Validate();
            Assert.IsTrue(vm.HasErrors);
        }
コード例 #14
0
 public LoadBoardsCommand(EntityListViewModel <BoardViewModel, GetBoardModel> listVM,
                          IBoardApiClient boardApiClient,
                          IBoardViewModelFactory boardViewModelFactory
                          ) : base(listVM)
 {
     _boardApiClient        = boardApiClient;
     _boardViewModelFactory = boardViewModelFactory;
 }
コード例 #15
0
        public ActionResult Index()
        {
            var model = new EntityListViewModel();

            model.Entities    = Domain.Instance.Customers;
            model.EntityModel = new EntityModel(typeof(Customer));
            return(View(model));
        }
コード例 #16
0
 public LoadUsersCommand(EntityListViewModel <PublicUserViewModel, GetPublicUserModel> listVM,
                         IUserApiClient userApiClient,
                         IPublicUserViewModelFactory publicUserViewModelFactory
                         ) : base(listVM)
 {
     _userApiClient = userApiClient;
     _publicUserViewModelFactory = publicUserViewModelFactory;
 }
コード例 #17
0
        public ActionResult Index(string entity)
        {
            var viewModel = new EntityListViewModel();

            viewModel.Entities    = this.context.GetRepository(entity).GetObjects();
            viewModel.EntityModel = this.model.GetEntityModel(entity);
            return(View(viewModel));
        }
コード例 #18
0
        /// <summary>
        /// Build the form view model.
        /// </summary>
        /// <param name="result"></param>
        /// <param name="modelname"></param>
        /// <returns></returns>
        public static EntityListViewModel BuildViewModelForIndex <T>(EntityActionResult result, string modelname, string action, EntitySettingsHelper settings)
        {
            PagedList <T> items     = result.ItemAs <PagedList <T> >();
            var           viewmodel = new EntityListViewModel <T>(items, null, true);

            PopulateViewModel(viewmodel, modelname, "ModelList", settings);
            return(viewmodel);
        }
コード例 #19
0
 public EntityListPage()
 {
     _vm                 = new EntityListViewModel();
     BindingContext      = _vm;
     _vm.AddItemClicked += OnAddBtnClicked;
     _vm.ItemSelected   += OnItemSelected;
     InitializeComponent();
 }
コード例 #20
0
        public virtual IActionResult Index()
        {
            var model = new EntityListViewModel <TEntity>
            {
                Entities = GetEntities()
            };

            return(View(model));
        }
コード例 #21
0
        public LogViewModel(PagedList <LogEventEntity> items, string selectedLevel)
        {
            PagerView = new EntityListViewModel <LogEventEntity>(items, "/admin/log/index/", true);
            var levels = new List <string>()
            {
                "Debug", "Error", "Fatal", "Info", "Message", "Warn"
            };

            LogLevels = new SelectList(levels, selectedLevel);
        }
コード例 #22
0
        public void SelectedItemsShouldBeTrue()
        {
            EntityListViewModel vm = new EntityListViewModel();
            var entity             = new Entity();

            vm.CurrentItem = entity;
            Assert.IsTrue(vm.SelectedItems.Count == 1);
            vm.CurrentItem = entity;
            Assert.IsTrue(vm.SelectedItems.Count == 1);
        }
コード例 #23
0
        public void DetailCommandCurrentItem()
        {
            EntityListViewModel vm = new EntityListViewModel();
            var entity             = new Entity();

            vm.CurrentItem = entity;
            Assert.IsTrue(vm.DetailCommand.CanExecute());
            vm.CurrentItem = null;
            Assert.IsFalse(vm.DetailCommand.CanExecute());
        }
コード例 #24
0
        public AddEntityPage(EntityListViewModel entityListViewModel)
        {
            InitializeComponent();
            _entityListViewModel = entityListViewModel;
            var vm = new AddEntityViewModel();

            vm.ItemAdded    += _entityListViewModel.OnNewItemAdded;
            vm.ItemSaved    += OnBtnClicked;
            vm.ItemCanceled += OnBtnClicked;
            vm.ItemDeleted  += OnBtnClicked;
            BindingContext   = vm;
        }
コード例 #25
0
        public IActionResult List(int page = 1, string info = "")
        {
            EntityListViewModel EntityListViewModel = new EntityListViewModel();

            EntityListViewModel.Entities    = _entityManager.GetRange(nrOfItemsOnPage, page, info);
            EntityListViewModel.NrOfPages   = (int)Math.Ceiling((decimal)_entityManager.GetNumberOfEntities(info) / nrOfItemsOnPage);
            EntityListViewModel.CurrentPage = page;

            ViewBag.info = info;

            return(View(EntityListViewModel));
        }
コード例 #26
0
        public EditEntityViewPage(Guid id, EntityListViewModel entityListViewModel)
        {
            _entityListViewModel = entityListViewModel;
            InitializeComponent();
            var vm = new AddEntityViewModel(id, DependencyService.Get <IEntityService>());

            vm.ItemDeleted     += OnBtnClicked;
            vm.ItemEdited      += _entityListViewModel.OnItemEdited;
            vm.ItemSaved       += OnBtnClicked;
            vm.ItemCanceled    += OnBtnClicked;
            vm.WhatItemDeleted += _entityListViewModel.Delete;
            BindingContext      = vm;
        }
コード例 #27
0
        public ActionResult Index(int page = 1)
        {
            int pageSize = 3;

            var model = new EntityListViewModel <BllUser>();
            var users = userService.GetPagedUsers(page, pageSize);

            model.Items      = users;
            model.PagingInfo = new PagingInfo()
            {
                CurrentPage  = page,
                ItemsPerPage = pageSize,
                TotalItems   = userService.GetUserCount()
            };
            return(View(model));
        }
コード例 #28
0
        private EntityListViewModel <ArticleViewModel> FillSearchModel(IEnumerable <BllArticle> articles, int searchResultCount, int page)
        {
            var model = new EntityListViewModel <ArticleViewModel>();

            model.Items = articles.Select(x => new ArticleViewModel()
            {
                ArticleId    = x.ArticleId,
                CreationDate = x.CreationDate,
                Title        = x.Title,
                Text         = x.Text
            });
            model.PagingInfo = new PagingInfo()
            {
                CurrentPage  = page,
                ItemsPerPage = pageSize,
                TotalItems   = searchResultCount
            };

            return(model);
        }
コード例 #29
0
        public ActionResult Index(int page = 1)
        {
            int pageSize     = 3;
            var model        = new EntityListViewModel <ArticleViewModel>();
            var articles     = articleService.GetPagedArticles(page, pageSize);
            var articleCount = articleService.GetArticleCount();

            model.Items = articles.Select(
                x => new ArticleViewModel()
            {
                ArticleId    = x.ArticleId,
                AuthorId     = x.Author.UserId,
                Title        = x.Title,
                Text         = x.Text,
                CreationDate = x.CreationDate
            });
            model.PagingInfo = new PagingInfo()
            {
                CurrentPage  = page,
                ItemsPerPage = pageSize,
                TotalItems   = articleCount
            };
            return(View(model));
        }
コード例 #30
0
 public LoadCommentsCommand(EntityListViewModel <CommentViewModel, GetCommentModel> listVM,
                            ICommentApiClient commentApiClient) : base(listVM)
 {
     _commentApiClient = commentApiClient;
 }