/// <summary>
    /// Configure the given container with the
    /// registrations provided by the funqlet.
    /// </summary>
    /// <param name="container">Container to register.</param>
    public override void Configure(Funq.Container container)
    {
        ServiceStack.OrmLite.OrmLiteConfig.CommandTimeout = 60;
        WebEas.Log.WebEasNLogLogger.Application           = "BDS";
        base.Configure(container);

        this.SetConfig(new HostConfig
        {
            WsdlServiceNamespace = "http://schemas.webeas.sk/office/esam/office/1.0",
            SoapServiceName      = "EsamOfficeBds",
#if DEBUG || DEVELOP || INT || ITP
            DebugMode      = true,
            EnableFeatures = Feature.All.Remove(this.disableFeaturesDebug),
#else
            DebugMode      = false,
            EnableFeatures = Feature.All.Remove(this.disableFeatures),
#endif
            DefaultContentType = MimeTypes.Json,
            AllowJsonpRequests = true
        });

        //JsConfig<List<FilesDto>>.DeSerializeFn = data => JsonSerializer.DeserializeFromString<List<FilesDto>>(data);

        //JsConfig.ThrowOnDeserializationError = true;
        //JsConfig.OnDeserializationError = (object instance, System.Type propertyType, string propertyName, string propertyValueStr, System.Exception ex) =>
        //{
        //    Console.WriteLine(ex.Message);
        //};

#if !DEBUG
        ConfigureMessageServiceForLongOperations <ServiceModel.Office.Bds.Dto.BdsLongOperationStartDto>(container);
#endif
        //Routes.Add<IsoMessageDto>("/AckMsg");
        container.AddScoped <IBdsRepository, BdsRepository>();
    }
    /// <summary>
    /// Configure the given container with the
    /// registrations provided by the funqlet.
    /// </summary>
    /// <param name="container">Container to register.</param>
    public override void Configure(Funq.Container container)
    {
        ServiceStack.OrmLite.OrmLiteConfig.CommandTimeout = 60;
        WebEas.Log.WebEasNLogLogger.Application           = "CFE";
        base.Configure(container);

        this.SetConfig(new HostConfig
        {
            WsdlServiceNamespace = "http://schemas.webeas.sk/office/esam/office/1.0",
            SoapServiceName      = "EsamOfficeCfe",
#if DEBUG || DEVELOP || INT || ITP
            DebugMode      = true,
            EnableFeatures = Feature.All.Remove(this.disableFeaturesDebug),
#else
            DebugMode      = false,
            EnableFeatures = Feature.All.Remove(this.disableFeatures),
#endif
            DefaultContentType = MimeTypes.Json,
            AllowJsonpRequests = true
        });

        container.RegisterAutoWiredAs <BdsRepository, IRepositoryBase>("bds").ReusedWithin(ReuseScope.Request);
        //container.RegisterAutoWiredAs<DapRepository, IRepositoryBase>("dap").ReusedWithin(ReuseScope.Request);
        //container.RegisterAutoWiredAs<DmsRepository, IRepositoryBase>("dms").ReusedWithin(ReuseScope.Request);
        //container.RegisterAutoWiredAs<FinRepository, IRepositoryBase>("fin").ReusedWithin(ReuseScope.Request);
        //container.RegisterAutoWiredAs<OsaRepository, IRepositoryBase>("osa").ReusedWithin(ReuseScope.Request);
        container.RegisterAutoWiredAs <RegRepository, IRepositoryBase>("reg").ReusedWithin(ReuseScope.Request);
        //container.RegisterAutoWiredAs<RzpRepository, IRepositoryBase>("rzp").ReusedWithin(ReuseScope.Request);
        //container.RegisterAutoWiredAs<UctRepository, IRepositoryBase>("uct").ReusedWithin(ReuseScope.Request);
        //container.RegisterAutoWiredAs<VykRepository, IRepositoryBase>("vyk").ReusedWithin(ReuseScope.Request);
        //container.RegisterAutoWiredAs<MajRepository, IRepositoryBase>("maj").ReusedWithin(ReuseScope.Request);
        container.RegisterAutoWiredAs <CfeRepository, IRepositoryBase>("cfe").ReusedWithin(ReuseScope.Request);
        container.AddScoped <ICfeRepository, CfeRepository>();
    }
Пример #3
0
        /// <summary>
        /// Configure the given container with the
        /// registrations provided by the funqlet.
        /// </summary>
        /// <param name="container">Container to register.</param>
        public override void Configure(Funq.Container container)
        {
            ServiceStack.OrmLite.OrmLiteConfig.CommandTimeout = 60;
            WebEas.Log.WebEasNLogLogger.Application           = "PFE";
            base.Configure(container);

            // new EnumSerializerConfigurator().WithAssemblies(new List<Assembly> { typeof(HierarchyNode).Assembly }).WithNullableEnumSerializers().Configure();

            this.SetConfig(new HostConfig
            {
                WsdlServiceNamespace = "http://schemas.dcom.sk/private/Egov/pfe/1.0",
                SoapServiceName      = "EsamPfe",
#if DEBUG || DEVELOP || INT || ITP
                DebugMode      = true,
                EnableFeatures = Feature.All.Remove(this.disableFeaturesDebug),
#else
                DebugMode      = false,
                EnableFeatures = Feature.All.Remove(this.disableFeatures),
#endif
                DefaultContentType = MimeTypes.Json,
                AllowJsonpRequests = true,
#if DEVELOPCRM
                WebHostUrl = "https://esam-crm.datalan.sk/esam/api/pfe"
#endif
            });

#if !DEBUG
            container.Register <IMessageService>(c => new RedisMqServer(c.Resolve <IRedisClientsManager>()));
            container.Resolve <IMessageService>().RegisterHandler <WebEas.ServiceModel.Dto.LongOperationStatus>(m =>
            {
                using (var redisClient = base.Resolve <IRedisClientsManager>().GetClient())
                {
                    var longOperationStatus = m.GetBody();
                    ProcessLongOperationStatus(longOperationStatus, redisClient, base.Resolve <IServerEvents>());
                }
                return(null);
            });

            container.Resolve <IMessageService>().Start();
#endif
            container.RegisterAutoWiredAs <CfeRepository, IRepositoryBase>("cfe").ReusedWithin(ReuseScope.Request);
            container.RegisterAutoWiredAs <BdsRepository, IRepositoryBase>("bds").ReusedWithin(ReuseScope.Request);
            //container.RegisterAutoWiredAs<DapRepository, IRepositoryBase>("dap").ReusedWithin(ReuseScope.Request);
            //container.RegisterAutoWiredAs<DmsRepository, IRepositoryBase>("dms").ReusedWithin(ReuseScope.Request);
            //container.RegisterAutoWiredAs<FinRepository, IRepositoryBase>("fin").ReusedWithin(ReuseScope.Request);
            //container.RegisterAutoWiredAs<OsaRepository, IRepositoryBase>("osa").ReusedWithin(ReuseScope.Request);
            container.RegisterAutoWiredAs <RegRepository, IRepositoryBase>("reg").ReusedWithin(ReuseScope.Request);
            //container.RegisterAutoWiredAs<RzpRepository, IRepositoryBase>("rzp").ReusedWithin(ReuseScope.Request);
            //container.RegisterAutoWiredAs<UctRepository, IRepositoryBase>("uct").ReusedWithin(ReuseScope.Request);
            //container.RegisterAutoWiredAs<VykRepository, IRepositoryBase>("vyk").ReusedWithin(ReuseScope.Request);
            //container.RegisterAutoWiredAs<MajRepository, IRepositoryBase>("maj").ReusedWithin(ReuseScope.Request);
            container.AddScoped <IPfeRepository, PfeRepository>();

            var mse = new ServerEventsFeature()
            {
                LimitToAuthenticatedUsers    = true,
                NotifyChannelOfSubscriptions = false,
                OnCreated = (sub, req) => {
                    var session = req.SessionAs <EsamSession>();
                    if (!session.IsAuthenticated)
                    {
                        return;
                    }
                    if (session.Roles != null)
                    {
                        var key    = "SynchronizaciaDAPToast:" + session.TenantId + ":" + session.UserId;
                        var showed = GetCacheClient().Get <bool>(key);
                        if (!showed)
                        {
                            if (session.Roles.Any(x => x.StartsWith("DAP") || x.StartsWith("FIN") || x.StartsWith("UCT")))
                            {
                                var repository = HostContext.Resolve <IPfeRepository>();
                                repository.Session = session;
                                var eSAMRezim = repository.GetNastavenieI("cfe", "eSAMRezim");
                                var isoZdroj  = repository.GetNastavenieI("cfe", "ISOZdroj");

                                if (repository.GetNastavenieB("cfe", "PohladavkyDAP") && (eSAMRezim == 1 || isoZdroj > 0))
                                {
                                    var datumSynchro = repository.GetNastavenieT("dap", "SynchronizaciaDAP");
                                    if (datumSynchro.HasValue)
                                    {
                                        sub.ConnectArgs["SynchronizaciaDAP"] = datumSynchro.Value.ToString("o");
                                    }
                                    GetCacheClient().Set(key, true, DateTime.Today.AddDays(1));
                                }
                            }
                        }
                    }
                },

                /*
                 * TODO: Synchronizacia s ISO
                 * OnSubscribe = (sub) =>
                 * {
                 *  if (sub.UserId == "00000000-0000-0000-0000-000000000002")
                 *  {
                 *      var subSessionKey = SessionFeature.GetSessionKey(sub.SessionId);
                 *      var subSession = HostContext.Cache.Get<EsamSession>(subSessionKey);
                 *      var syncManager = new IsoSynchronizationManager(Resolve<IServerEvents>(), Resolve<IRedisClientsManager>());
                 *      syncManager.ProcessQueue(subSession.TenantId);
                 *  }
                 * }*/
            };

            Plugins.Add(mse);
        }