コード例 #1
0
 public EntityScreenItemViewModel(ICacheService cacheService, EntityScreenItem model, EntityScreen screen,
     ICommand actionCommand, bool isTicketSelected, bool userPermittedToMerge)
 {
     _cacheService = cacheService;
     _actionCommand = actionCommand;
     _screen = screen;
     _isTicketSelected = isTicketSelected;
     _userPermittedToMerge = userPermittedToMerge;
     Model = model;
 }
コード例 #2
0
 public void Refresh(EntityScreen entityScreen, OperationRequest<Entity> currentOperationRequest)
 {
     _entityService.UpdateEntityScreen(entityScreen);
     if (_currentEntityScreen != entityScreen || Widgets == null)
     {
         _currentEntityScreen = entityScreen;
         Widgets = new ObservableCollection<IDiagram>(entityScreen.Widgets.Select(x => WidgetCreatorRegistry.CreateWidgetViewModel(x, _applicationState)));
     }
     Widgets.Where(x => x.AutoRefresh).ToList().ForEach(x => x.Refresh());
     RaisePropertyChanged(() => Widgets);
     RaisePropertyChanged(() => SelectedEntityScreen);
 }
コード例 #3
0
ファイル: EntityService.cs プロジェクト: noromamai/SambaPOS-3
 public IEnumerable<EntityScreenItem> GetCurrentEntityScreenItems(EntityScreen entityScreen, int currentPageNo, string entityStateFilter)
 {
     UpdateEntityScreenItems(entityScreen, currentPageNo);
     if (entityScreen != null)
     {
         if (entityScreen.PageCount > 1)
         {
             return entityScreen.ScreenItems
                  .OrderBy(x => x.SortOrder)
                  .Where(x => string.IsNullOrEmpty(entityStateFilter) || x.EntityState == entityStateFilter)
                  .Skip(entityScreen.ItemCountPerPage * currentPageNo)
                  .Take(entityScreen.ItemCountPerPage);
         }
         return entityScreen.ScreenItems.Where(x => string.IsNullOrEmpty(entityStateFilter) || x.EntityState == entityStateFilter);
     }
     return new List<EntityScreenItem>();
 }
コード例 #4
0
ファイル: EntityDao.cs プロジェクト: shuxingliu/SambaPOS-3
        public void UpdateEntityScreenItems(EntityScreen entityScreen, int pageNo)
        {
            if (entityScreen == null) return;

            IEnumerable<int> set;
            if (entityScreen.PageCount > 1)
            {
                set = entityScreen.ScreenItems
                    .OrderBy(x => x.SortOrder)
                    .Skip(pageNo * entityScreen.ItemCountPerPage)
                    .Take(entityScreen.ItemCountPerPage)
                    .Select(x => x.EntityId);
            }
            else set = entityScreen.ScreenItems.OrderBy(x => x.SortOrder).Select(x => x.EntityId);
            using (var w = WorkspaceFactory.CreateReadOnly())
            {
                var result = w.Queryable<EntityStateValue>().Where(x => set.Contains(x.EntityId));
                result.ToList().ForEach(x =>
                {
                    var screeenItem = entityScreen.ScreenItems.Single(y => y.EntityId == x.EntityId);
                    screeenItem.EntityState = x.GetStateValue(entityScreen.DisplayState);
                });
            }
        }
コード例 #5
0
 private List<EntityScreenItem> GetEntityScreenItems(EntityScreen entityScreen, string stateFilter)
 {
     if (entityScreen.ScreenItems.Count > 0)
         return _entityService.GetCurrentEntityScreenItems(entityScreen, CurrentPageNo, stateFilter).OrderBy(x => x.SortOrder).ToList();
     return
         _entityService.GetEntitiesByState(stateFilter, entityScreen.EntityTypeId)
         .Select(x => new EntityScreenItem(_cacheService.GetEntityTypeById(entityScreen.EntityTypeId), x, stateFilter)).ToList();
 }
コード例 #6
0
        private void UpdateEntityScreenItems(EntityScreen entityScreen)
        {
            var entityData = GetEntityScreenItems(entityScreen, StateFilter);
            if (EntityScreenItems != null && (!EntityScreenItems.Any() || EntityScreenItems.Count != entityData.Count() || EntityScreenItems.First().Name != entityData.First().Name)) EntityScreenItems = null;

            UpdateEntityButtons(entityData);

            RaisePropertyChanged(() => EntityScreenItems);
            RaisePropertyChanged(() => SelectedEntityScreen);
            RaisePropertyChanged(() => IsPageNavigatorVisible);
            RaisePropertyChanged(() => ScreenVerticalAlignment);
        }
コード例 #7
0
 public EntitySwitcherButtonViewModel(EntityScreen model, IApplicationState applicationState, bool displayActiveScreen)
 {
     Model = model;
     _applicationState = applicationState;
     _displayActiveScreen = displayActiveScreen;
 }
コード例 #8
0
 public EntityScreen SetSelectedEntityScreen(EntityScreen entityScreen)
 {
     if (IsLocked && TempEntityScreen == null) TempEntityScreen = SelectedEntityScreen;
     else if (!IsLocked && TempEntityScreen != null)
     {
         entityScreen = TempEntityScreen;
         TempEntityScreen = null;
     }
     SelectedEntityScreen = entityScreen;
     SetLocalSetting("ENTITYSCREEN", entityScreen != null ? entityScreen.Name : "");
     return entityScreen;
 }
コード例 #9
0
 private void OnSelectEntityCategoryExecuted(EntityScreen obj)
 {
     ActivateEntityScreen(obj);
 }
コード例 #10
0
 private void ActivateEntitySearcher(EntityScreen entityScreen)
 {
     _entitySearchViewModel.Refresh(entityScreen.EntityTypeId, entityScreen.StateFilter, _currentOperationRequest);
     _regionManager.Regions[RegionNames.EntityScreenRegion].Activate(_entitySearchView);
 }
コード例 #11
0
ファイル: EntityService.cs プロジェクト: noromamai/SambaPOS-3
 public void UpdateEntityScreenItems(EntityScreen entityScreen, int pageNo)
 {
     _entityDao.UpdateEntityScreenItems(entityScreen, pageNo);
 }
コード例 #12
0
ファイル: ApplicationState.cs プロジェクト: basio/SambaPOS-3
 public EntityScreen SetSelectedEntityScreen(EntityScreen entityScreen)
 {
     if (IsLocked && TempEntityScreen == null) TempEntityScreen = SelectedEntityScreen;
     else if (!IsLocked && TempEntityScreen != null)
     {
         entityScreen = TempEntityScreen;
         TempEntityScreen = null;
     }
     SelectedEntityScreen = entityScreen;
     return entityScreen;
 }
コード例 #13
0
 private void ActivateButtonSelector(EntityScreen entityScreen)
 {
     _entitySelectorViewModel.Refresh(entityScreen, entityScreen.StateFilter, _currentOperationRequest);
     _regionManager.Regions[RegionNames.EntityScreenRegion].Activate(_entitySelectorView);
 }
コード例 #14
0
 protected override void BeforeEditSettings()
 {
     _entityScreen = null;
     Settings.StateFilterNameValue.UpdateValues(_cacheService.GetStates(0).Select(x => x.Name));
 }
コード例 #15
0
 private List<EntityScreenItem> GetEntityScreenItems(EntityScreen entityScreen, string stateFilter)
 {
     if (entityScreen.ScreenItems.Count > 0)
         return _entityService.GetCurrentEntityScreenItems(entityScreen, CurrentPageNo, stateFilter).OrderBy(x => x.SortOrder).ToList();
     return
         _entityService.GetEntitiesByState(stateFilter, entityScreen.EntityTypeId).Select(x => new EntityScreenItem { EntityId = x.Id, Name = x.Name, EntityState = stateFilter }).ToList();
 }
コード例 #16
0
 public EntityScreen SetSelectedEntityScreen(EntityScreen entityScreen)
 {
     if (IsLocked && ActiveEntityScreen == null) ActiveEntityScreen = SelectedEntityScreen;
     else if (!IsLocked && ActiveEntityScreen != null)
     {
         entityScreen = ActiveEntityScreen;
         ActiveEntityScreen = null;
     }
     SelectedEntityScreen = entityScreen;
     return entityScreen;
 }
コード例 #17
0
 public void Refresh(EntityScreen entityScreen, string stateFilter, OperationRequest<Entity> currentOperationRequest)
 {
     StateFilter = stateFilter;
     _currentOperationRequest = currentOperationRequest;
     UpdateEntityScreenItems(entityScreen);
 }
コード例 #18
0
        private void ActivateEntityScreen(EntityScreen entityScreen)
        {
            entityScreen = _applicationStateSetter.SetSelectedEntityScreen(entityScreen);
            _applicationStateSetter.SetCurrentTicketType(entityScreen != null ? _cacheService.GetTicketTypeById(entityScreen.TicketTypeId) : null);

            if (entityScreen != null)
            {
                if (entityScreen.DisplayMode == 1)
                    ActivateEntitySearcher(entityScreen);
                else if (entityScreen.DisplayMode == 2)
                    ActivateDashboard(entityScreen);
                else ActivateButtonSelector(entityScreen);
            }
            RaisePropertyChanged(() => EntitySwitcherButtons);
            EntitySwitcherButtons.ForEach(x => x.Refresh());
        }
コード例 #19
0
 private void ActivateDashboard(EntityScreen entityScreen)
 {
     _entityDashboardViewModel.Refresh(entityScreen, _currentOperationRequest);
     _regionManager.Regions[RegionNames.EntityScreenRegion].Activate(_entityDashboardView);
 }
コード例 #20
0
ファイル: EntityService.cs プロジェクト: noromamai/SambaPOS-3
 public void UpdateEntityScreen(EntityScreen entityScreen)
 {
     UpdateEntityScreenItems(entityScreen, 0);
 }