public ImportDataService()
        {
            _exportDataService = new ExportDataService();

            _crmRepository                     = new CRMRepository();
            _eventRepository                   = new EventRepository();
            _configurationRespository          = new ConfigurationRepository();
            _hostedControlRepository           = new HostedControlRepository();
            _entityTypeRepository              = new EntityTypeRepository();
            _scriptletRepository               = new ScriptletRepository();
            _importResults                     = new List <ImportResult>();
            _entitySearchRepository            = new EntitySearchRepository();
            _sessionLineRepository             = new SessionLineRepository();
            _optionRepository                  = new OptionRepository();
            _actionRepository                  = new ActionRepository();
            _actionCallrepository              = new ActionCallRepository();
            _subActionCallsRepository          = new SubActionCallsRepository();
            _eventActionCallRepository         = new EventActionCallRepository();
            _toolbarRepository                 = new ToolbarRepository();
            _toolbarButtonRepository           = new ToolbarButtonRepository();
            _toolbarButtonActionCallRepository = new ToolbarButtonActionCallRepository();
            _toolbarHostedControlRepository    = new ToolbarHostedControlRepository();
            _wnrRepository                     = new WNRRepository();
            _wnrActionCallrepository           = new WNRActionCallRepository();
            _agentScriptTaskRepository         = new AgentScriptTaskRepository();
            _taskActionCallRepository          = new TaskActionCallRepository();
            _taskAnswerRepository              = new TaskAnswerRepository();
            _agentScriptAnswerRepository       = new AgentScriptAnswerRepository();
            _answerActionCallRepository        = new AnswerActionCallrepository();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Возвращает список кнопок панели инструментов по коду действия
        /// </summary>
        /// <param name="actionCode">код действия</param>
        /// <returns>список кнопок панели инструментов</returns>
        public static IEnumerable <ToolbarButton> GetButtonListByActionCode(string actionCode, int entityId, int parentEntityId, bool?boundToExternal)
        {
            var id     = entityId == 0 ? parentEntityId : entityId;
            var action = BackendActionRepository.GetByCode(actionCode);

            var allButtons = ToolbarRepository.GetButtonListByActionCode(action.Code, entityId);


            // если неопределен id сущности, то нужно работать с родительским entity type
            var etypeCode = entityId != 0 ? action.EntityType.Code : action.EntityType.ParentCode;
            IEnumerable <string> legalActionCodes = CustomActionResolver.CanExecuteFilter(etypeCode, id, parentEntityId, allButtons.Select(b => b.ActionCode)).ToArray();

            // Только те кнопки, для которых разрешены Action
            IEnumerable <ToolbarButton> result = allButtons.Where(b => legalActionCodes.Contains(b.ActionCode)).ToArray();

            if (actionCode.Equals(ActionCode.Articles) || actionCode.Equals(ActionCode.EditArticle))
            {
                var content = ContentRepository.GetById(parentEntityId);

                if (actionCode.Equals(ActionCode.Articles) && (!content.WorkflowBinding.IsAssigned || !content.WorkflowBinding.CurrentUserCanRemoveArticles))
                {
                    result = result.Where(b => b.ActionCode != ActionCode.MultiplePublishArticles);
                }

                if (!content.IsArticleChangingActionsAllowed(boundToExternal))
                {
                    result = result.Where(b => ActionCode.ArticleNonChangingActionCodes.Contains(b.ActionCode, StringComparer.InvariantCultureIgnoreCase)).ToArray();
                }
            }
            else if (actionCode.Equals(ActionCode.ArticleVersions) || actionCode.Equals(ActionCode.PreviewArticleVersion))
            {
                var article = ArticleRepository.GetById(parentEntityId);
                if (!article.IsArticleChangingActionsAllowed(boundToExternal))
                {
                    result = result.Where(b => ActionCode.ArticleVersionsNonChangingActionCodes.Contains(b.ActionCode, StringComparer.InvariantCultureIgnoreCase)).ToArray();
                }
            }

            return(result);
        }