Exemplo n.º 1
0
        public void SaveExtendedStage(IUnitOfWork uow, ExtendedStage extendedStage, IObjectSaver<ExtendedStage> stageSaver)
        {
            if (extendedStage.Extender != null)
            {
                var extenderType = extendedStage.Extender.GetType().GetBaseObjectType();

                var exStageService = _serviceResolver.GetObjectService(extenderType);
                if (exStageService.GetType().GetInterfaces().Any(x =>
                    x.IsGenericType &&
                    x.GetGenericTypeDefinition() == typeof(IStageExtenderService<>)))
                {
                    var createMethod = stageSaver.GetType().GetMethod("Create").MakeGenericMethod(extenderType);
                    var extenderSaver = createMethod.Invoke(stageSaver, new[] { extendedStage.Extender, null });

                    var saveMethod = exStageService.GetType().GetMethod("ExternalSave");
                    if (saveMethod != null)
                        saveMethod.Invoke(exStageService, new[] { uow, extenderSaver });
                }
            }
        }
Exemplo n.º 2
0
        public void OnLeaveFromExtendedStage(ISecurityUser securityUser, ExtendedStage extendedStage, BaseObject baseObject)
        {
            var service = GetExtenderService(extendedStage);

            service.OnStageLeave(securityUser, extendedStage, extendedStage.Extender, baseObject);
        }
Exemplo n.º 3
0
        private IStageExtenderService GetExtenderService(ExtendedStage extendedStage)
        {
            if (extendedStage.Extender != null)
            {
                var extenderService =
                    _serviceResolver.GetObjectService(extendedStage.Extender.GetType().GetBaseObjectType()) as IStageExtenderService;

                if (extenderService != null)
                    return extenderService;
            }

            throw new Exception("Extender service not founded");
        }
Exemplo n.º 4
0
        public void OnEnterToExtendedStage(ISecurityUser securityUser, ExtendedStage extendedStage, BaseObject baseObject)
        {
            var service = GetExtenderService(extendedStage);

            service.OnStageEnter(securityUser, extendedStage, extendedStage.Extender, baseObject);
        }