Exemple #1
0
            public MapElement(IReadOnlyItem item)
            {
                Type       = item.TypeName();
                Id         = item.Id();
                IsRelative = item.Property("segments").Exists;

                Position = new Point()
                {
                    X = item.Property("x").AsInt(0),
                    Y = item.Property("y").AsInt(0)
                };

                if (item.Property("segments").HasValue())
                {
                    Segments = item.Property("segments").Value
                               .Split('|')
                               .Select(p => p.Split(','))
                               .Select(p => new Point()
                    {
                        X = int.Parse(p[0]),
                        Y = int.Parse(p[1])
                    })
                               .ToArray();
                }
                else
                {
                    Segments = Enumerable.Empty <Point>();
                }

                _context = item.AmlContext.LocalizationContext;
            }
Exemple #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="config">Network configuration</param>
        /// <param name="aclLoader">ACL loader to define access</param>
        /// <param name="peerFactory">Factory to create peers from endpoints</param>
        /// <param name="peerListener">Listener to accept peer connections</param>
        /// <param name="peerMessageListener">PeerMessageListener</param>
        /// <param name="serverContext">Server context</param>
        /// <param name="serverProcesses">Server processes</param>
        /// <param name="logger">Logger</param>
        public Server(
            NetworkConfig config,
            INetworkAclLoader aclLoader,
            IPeerFactory peerFactory,
            IPeerListener peerListener,
            IPeerMessageListener peerMessageListener,
            IServerContext serverContext,
            IEnumerable <IServerProcess> serverProcesses,
            ILogger <Server> logger)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }
            _peerFactory  = peerFactory ?? throw new ArgumentNullException(nameof(peerFactory));
            _peerListener = peerListener ?? throw new ArgumentNullException(nameof(peerListener));

            if (aclLoader == null)
            {
                throw new ArgumentNullException(nameof(aclLoader));
            }
            _acl = aclLoader.Load(config.AclConfig) ?? NetworkAcl.Default;

            _logger = logger ?? throw new ArgumentNullException(nameof(logger));
            _peerMessageListener = peerMessageListener ?? throw new ArgumentNullException(nameof(peerMessageListener));
            _serverContext       = serverContext ?? throw new ArgumentNullException(nameof(serverContext));
            _serverProcesses     = serverProcesses ?? throw new ArgumentNullException(nameof(serverProcesses));

            _peerListener.OnPeerConnected += PeerConnected;

            // TODO #364: Change after port forwarding implementation
            _peerEndPoints = config.PeerEndPoints;
        }
Exemple #3
0
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="filter"></param>
        //public void AddFilter(IRpcServiceFilter filter)
        //{
        //	Filters.Add(filter);
        //}

        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="filter"></param>
        //public void RemoveFilter(IRpcServiceFilter filter)
        //{
        //	Filters.Remove(filter);
        //}

        /// <summary>
        ///
        /// </summary>
        /// <param name="serverContext"></param>
        /// <returns>if true process processed or else the path not a service path</returns>
        public Task <bool> ProcessAsync(IServerContext serverContext)
        {
            if (serverContext == null)
            {
                throw new ArgumentNullException(nameof(serverContext));
            }

            var serviceContext = new ServiceContext
            {
                Request = new ServiceRequest
                {
                    RequestStream = serverContext.RequestStream,
                    Path          = serverContext.RequestPath,
                    ContentType   = serverContext.RequestContentType,
                    ContentLength = serverContext.RequestContentLength,
                },
                Response = new ServiceResponse
                {
                    ResponseStream = serverContext.ResponseStream,
                },
                ExecutingContext = serverContext,
            };

            return(ProcessInternalAsync(serviceContext)
                   .ContinueWith(tsk =>
            {
                if (tsk.Exception == null)
                {
                    return tsk.Result;
                }

                LogHelper.Error(tsk.Exception.InnerException);
                return true;
            }));
        }
 public ODataVisitor(TextWriter writer, IQueryWriterSettings settings, IServerContext context, ODataVersion version = ODataVersion.All)
 {
     _writer   = writer;
     _settings = settings;
     _context  = context;
     _version  = version;
 }
Exemple #5
0
 /// <summary>
 /// Converts an AML node into a query which can be converted to other forms (e.g. SQL, OData, ...)
 /// </summary>
 /// <param name="node">XML data</param>
 /// <param name="context">Localization context for parsing and formating data</param>
 public static QueryItem FromXml(IAmlNode node, IServerContext context = null)
 {
     context = context
               ?? (node as IReadOnlyElement)?.AmlContext.LocalizationContext
               ?? ElementFactory.Local.LocalizationContext;
     return(FromXml(w => node.ToAml(w, new AmlWriterSettings()), context));
 }
Exemple #6
0
 /// <summary>
 /// Converts an AML node into a query which can be converted to other forms (e.g. SQL, OData, ...)
 /// </summary>
 /// <param name="xml">XML data</param>
 /// <param name="context">Localization context for parsing and formating data</param>
 public static QueryItem FromXml(TextReader xml, IServerContext context = null)
 {
     using (var xmlReader = XmlReader.Create(xml))
     {
         return(FromXml(xmlReader, context));
     }
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="serverContext">Server context</param>
 /// <param name="blockchain">Blockchain</param>
 /// <param name="blockRepository">The Block Model.</param>
 /// <param name="transactionModel"></param>
 /// <param name="assetModel"></param>
 /// <param name="blockchainContext">The block chain context class.</param>
 /// <param name="blockPool">Block pool</param>
 /// <param name="blockSigner">Block signer</param>
 /// <param name="blockPersister">Block persister</param>
 /// <param name="transactionPool">Transaction Pool</param>
 /// <param name="consoleHandler">Console handler</param>
 public PromptBlockchainController(
     IServerContext serverContext,
     IBlockchain blockchain,
     IBlockRepository blockRepository,
     ITransactionRepository transactionModel,
     IAssetRepository assetModel,
     IBlockchainContext blockchainContext,
     IBlockPool blockPool,
     IBlockPersister blockPersister,
     ISigner <Block> blockSigner,
     ITransactionPool transactionPool,
     IConsoleHandler consoleHandler)
 {
     _serverContext     = serverContext;
     _blockchain        = blockchain;
     _blockRepository   = blockRepository;
     _blockSigner       = blockSigner;
     _blockPersister    = blockPersister;
     _transactionModel  = transactionModel;
     _assetModel        = assetModel;
     _blockchainContext = blockchainContext;
     _blockPool         = blockPool;
     _transactionPool   = transactionPool;
     _consoleHandler    = consoleHandler;
 }
        private QueryType InitializeSubstitute(string query, IServerContext context)
        {
            if (string.IsNullOrEmpty(query))
            {
                return(QueryType.Empty);
            }
            var i = 0;

            while (i < query.Length && char.IsWhiteSpace(query[i]))
            {
                i++;
            }
            if (i >= query.Length)
            {
                return(QueryType.Empty);
            }


            if (_context != context)
            {
                _context      = context;
                _sqlFormatter = new SqlFormatter();
            }

            return(query[i] == '<' && this.Mode == ParameterSubstitutionMode.Aml
        ? QueryType.Aml
        : QueryType.Sql);
        }
Exemple #9
0
        public AgentSessionHandleCollection(IServerContext context, IEnumerable <DomainAgentSessionHandle> agentSessions)
        {
            this.context = context;

            this.agentSessionList = agentSessions as DomainAgentSessionHandle[] ?? agentSessions?.ToArray()
                                    ?? throw new ArgumentNullException(nameof(agentSessions));
        }
Exemple #10
0
 /// <summary>
 /// Initializes a new instance of the class.
 /// </summary>
 public ModuleLogic(IServerContext serverContext)
 {
     ServerContext = serverContext ?? throw new ArgumentNullException(nameof(serverContext));
     AppDirs       = serverContext.AppDirs;
     Storage       = serverContext.Storage;
     Log           = serverContext.Log;
 }
 public StaticHttpServer(IServerContext sc, Action <Action> QueueUserWorkItem, int ReadBufferSize = 8 * 1024)
 {
     ServerContext          = sc;
     this.QueueUserWorkItem = QueueUserWorkItem;
     this.ReadBufferSize    = ReadBufferSize;
     this.Indices           = new String[] { };
 }
Exemple #12
0
        public void Update(IServerContext serverContext, IUpdateContext updateContext)
        {
            UpdateFrames();

            if (serverContext.World != _currentServerWorld || _shadowWorld == null)
            {
                if (_shadowWorld != null)
                {
                    _shadowWorld.Dispose();
                }

                _shadowWorld        = _networkFactory.CreateShadowWorld();
                _currentServerWorld = serverContext.World;

                _shadowWorld.OnMessageRecievedStatisticsAction += OnMessageRecievedStatisticsAction;
            }

            if (_serverDispatcherChanged.ContainsKey(serverContext.World) &&
                _serverDispatcherChanged[serverContext.World])
            {
                _shadowWorld.Dispatcher = _serverDispatchers[serverContext.World];
                _serverDispatcherChanged[serverContext.World] = false;
                _currentDispatchers[0] = _shadowWorld.Dispatcher;
            }

            using (_profiler.Measure("net-step"))
            {
                _shadowWorld.Update(serverContext, updateContext);
            }
        }
Exemple #13
0
    public bool joinTabletoFeatureLayer(IServerContext mapContext,
        ITable externalTable,
        IFeatureLayer featureLayer,
        string tableJoinField,
        string layerJoinField,
        esriJoinType joinType)
    {
        IDisplayTable pDispTable = featureLayer as IDisplayTable;

        IFeatureClass pFCLayer = pDispTable.DisplayTable as IFeatureClass;
        ITable pTLayer = (ITable)pFCLayer;

        string strJnFieldLayer = layerJoinField;
        string strJnFieldTable = tableJoinField;

        IMemoryRelationshipClassFactory pMemRelFact = (IMemoryRelationshipClassFactory)mapContext.CreateObject("esriGeoDatabase.MemoryRelationshipClassFactory");
        IRelationshipClass pRelClass = (IRelationshipClass)pMemRelFact.Open("Join",
                                                        (IObjectClass)externalTable, strJnFieldTable,
                                                        (IObjectClass)pTLayer, strJnFieldLayer,
                                                        "forward", "backward",
                                                        esriRelCardinality.esriRelCardinalityOneToOne);

        IDisplayRelationshipClass pDispRC = (IDisplayRelationshipClass)featureLayer;
        pDispRC.DisplayRelationshipClass(pRelClass, joinType);   //esriLeftOuterJoin
        IDisplayTable dt = (IDisplayTable)featureLayer;
        ITable jointable = dt.DisplayTable;

        bool retval = false;
        if (jointable is IRelQueryTable)
        {
            retval = true;
        }
        return retval;
    }
Exemple #14
0
        /// <summary>
        /// 获取分类列表
        /// </summary>
        /// <param name="sc"></param>
        /// <returns></returns>
        public List <ModelClass> GetUserClassList(IServerContext sc)
        {
            Func <ServerContextInfo, List <ModelClass> > func = (scinfo) =>
            {
                DbQuerySetting qs = new DbQuerySetting();
                //where条件
                DbQueryFieldGroupSetting where = new DbQueryFieldGroupSetting();
                where.FieldCondition           = new List <DbQueryFieldSetting>();
                //根据用户过滤
                where.FieldCondition.Add(new DbQueryFieldSetting()
                {
                    Name      = "CreateUserId",
                    Value     = scinfo.UserId,
                    DataType  = DbQueryFieldDataType.String,
                    QueryType = DbQueryType.Equal
                });
                List <DbQueryFieldGroupSetting> listWhere = new List <DbQueryFieldGroupSetting>();
                listWhere.Add(where);

                List <DbQueryOrderSetting> listOrder = new List <DbQueryOrderSetting>();
                //按创建时间排序
                listOrder.Add(new DbQueryOrderSetting()
                {
                    Name  = "CreateTime",
                    IsASC = true
                });

                qs.WhereCondition = listWhere;
                qs.OrderSetting   = listOrder;

                return(this.GetDAL <IModelClassDAL>(sc).LoadDatas(qs, sc));
            };

            return(this.CallFuncForContextInfo <List <ModelClass> >(func, sc, "GetUserClassList", "获取用户模块分类列表失败"));
        }
Exemple #15
0
        public void TestAsg()
        {
            IServerContext svrContxt = null;

            try
            {
                svrContxt = ServerUtility.GetServerContext(this.Page);
                //3.创建serverObjects
                IPoint pt = svrContxt.CreateObject(PublicConst.Lbl_GeoObjt_Point) as IPoint;
                pt.X             = 100;
                pt.Y             = 200;
                sCallBackFuncStr = JsMesage.ShowMessage(Map1, string.Format("x={0},y={1}", pt.X, pt.Y));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                System.Diagnostics.Debug.WriteLine(ex);
            }
            finally
            {
                if (svrContxt != null)
                {
                    svrContxt.ReleaseContext(); svrContxt = null;
                }
            }
        }
 public void Update(IServerContext serverContext, IUpdateContext updateContext)
 {
     if (_coroutineInstance == null || _coroutineInstance.IsCompleted)
     {
         _coroutineInstance = _coroutine.Run(RunLogShipping);
     }
 }
Exemple #17
0
 private static void BuildFragments(IServerContext serverContext, ICoinKernel coinKernel, Dictionary <string, string> parameters, out Dictionary <Guid, string> fileWriters, out Dictionary <Guid, string> fragments)
 {
     fileWriters = new Dictionary <Guid, string>();
     fragments   = new Dictionary <Guid, string>();
     try {
         if (coinKernel.FragmentWriterIds != null && coinKernel.FragmentWriterIds.Count != 0)
         {
             foreach (var writerId in coinKernel.FragmentWriterIds)
             {
                 if (serverContext.FragmentWriterSet.TryGetFragmentWriter(writerId, out IFragmentWriter writer))
                 {
                     BuildFragment(parameters, fileWriters, fragments, writer);
                 }
             }
         }
         if (coinKernel.FileWriterIds != null && coinKernel.FileWriterIds.Count != 0)
         {
             foreach (var writerId in coinKernel.FileWriterIds)
             {
                 if (serverContext.FileWriterSet.TryGetFileWriter(writerId, out IFileWriter writer))
                 {
                     BuildFragment(parameters, fileWriters, fragments, writer);
                 }
             }
         }
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
     }
 }
Exemple #18
0
        internal QueryItem GetOrAddTable(IServerContext context)
        {
            var join = Table.Joins.FirstOrDefault(j => j.Condition is EqualsOperator eq &&
                                                  new[] { eq.Left, eq.Right }.OfType <PropertyReference>()
                                                  .Any(p => p.Table == Table && p.Name == Name));

            if (join != null)
            {
                return(join.Right);
            }

            var newTable = new QueryItem(context)
            {
                TypeProvider = this
            };

            Table.Joins.Add(new Join()
            {
                Left      = Table,
                Right     = newTable,
                Condition = new EqualsOperator()
                {
                    Left  = this,
                    Right = new PropertyReference("id", newTable)
                },
                Type = JoinType.LeftOuter
            });
            return(newTable);
        }
Exemple #19
0
        /// <summary>
        /// 修改分类
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="sc"></param>
        /// <returns></returns>
        public ModelClass Update(ModelClass entity, IServerContext sc)
        {
            Func <ModelClass> func = () =>
            {
                if (entity == null)
                {
                    ThrowErrorCodeException("数据对象为空");
                }
                if (String.IsNullOrEmpty(entity.Name))
                {
                    ThrowArgException("分类名称不能为空");
                }
                if (String.IsNullOrEmpty(entity.Id))
                {
                    ThrowArgException("分类编码不能为空");
                }

                ServerContextInfo scInfo = GetServerContextInfo(sc);
                var serverModel          = this.GetDAL <IModelClassDAL>(sc).LoadData(entity.Id, sc);
                if (serverModel == null || string.IsNullOrEmpty(serverModel.Id))
                {
                    ThrowArgException("修改的分类不存在");
                }
                if (IsHasNameExcludeOneself(entity, sc))
                {
                    ThrowArgException("分类名称已经存在");
                }
                //赋值
                serverModel.Name = entity.Name;
                entity           = this.GetDAL <IModelClassDAL>(sc).SaveData(serverModel, sc);
                return(entity);
            };

            return(this.CallFunc <ModelClass>(func, sc, "Update", "修改分类失败"));
        }
 public NetworkCertificateController(
     IOptions <JwtVerifyingOptions> opts,
     IServerContext serverContext)
 {
     options = opts.Value;
     server  = serverContext;
 }
Exemple #21
0
        /// <summary>
        /// 判断分类明是否已经存在(按用户过滤,排除自己)
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="sc"></param>
        /// <returns></returns>
        private bool IsHasNameExcludeOneself(ModelClass entity, IServerContext sc)
        {
            Func <ServerContextInfo, bool> func = (scinfo) =>
            {
                var            oldEntity = this.GetDAL <IModelClassDAL>(sc).LoadData(entity.Id, sc);
                DbQuerySetting qs        = new DbQuerySetting();
                //where条件
                DbQueryFieldGroupSetting where = new DbQueryFieldGroupSetting();
                where.FieldCondition           = new List <DbQueryFieldSetting>();
                where.FieldCondition.Add(new DbQueryFieldSetting()
                {
                    Name      = "Name",
                    Value     = entity.Name,
                    DataType  = DbQueryFieldDataType.String,
                    QueryType = DbQueryType.Equal
                });
                //过滤当前
                where.FieldCondition.Add(new DbQueryFieldSetting()
                {
                    Name      = "Id",
                    DataType  = DbQueryFieldDataType.String,
                    Value     = entity.Id,
                    QueryType = DbQueryType.NotEqual
                });

                List <DbQueryFieldGroupSetting> listWhere = new List <DbQueryFieldGroupSetting>();
                listWhere.Add(where);
                qs.WhereCondition = listWhere;
                var result = this.GetDAL <IModelClassDAL>(sc).LoadDatas(qs, sc);
                int?count  = result?.Count;
                return(count != null && count > 0);
            };

            return(this.CallFuncForContextInfo <bool>(func, sc, "IsHasNameExcludeOneself", "判断是否重名"));
        }
 /// <summary>
 /// Substitutes the stored parameters into the specified query.
 /// </summary>
 /// <param name="query">The query.</param>
 /// <param name="context">The context.</param>
 /// <param name="builder"><see cref="StringBuilder"/> into which the new query is written</param>
 public void Substitute(string query, IServerContext context, StringBuilder builder)
 {
     using (var writer = new StringWriter(builder))
     {
         Substitute(query, context, writer);
     }
 }
Exemple #23
0
        /// <summary>
        /// 新增分类
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="sc"></param>
        /// <returns></returns>
        public ModelClass Add(ModelClass entity, IServerContext sc)
        {
            Func <ModelClass> func = () =>
            {
                if (entity == null)
                {
                    ThrowErrorCodeException("数据对象为空");
                }
                if (String.IsNullOrEmpty(entity.Name))
                {
                    ThrowArgException("分类名称不能为空");
                }
                if (String.IsNullOrEmpty(entity.Id))
                {
                    entity.Id = Guid.NewGuid().ToString();
                }


                ServerContextInfo scInfo = GetServerContextInfo(sc);

                if (IsHasName(entity.Name, sc))
                {
                    ThrowErrorCodeException("分类名称已经存在");
                }

                entity.CreateTime           = DateTime.Now;
                entity.CreateUserId         = scInfo.UserId;
                entity.CreateOrganizationId = scInfo.OrgId;

                entity = this.GetDAL <IModelClassDAL>(sc).SaveData(entity, sc);
                return(entity);
            };

            return(this.CallFunc <ModelClass>(func, sc, "Add", "保存分类失败"));
        }
 private void Init(SdeServerInfo sdeServerInfo, IServerContext context)
 {
     Init();
     _sdeServerInfo = sdeServerInfo;
     
     _serverContext = GetServerContext(_mapService);        
 }
Exemple #25
0
 public RequestContext(IServerContext context, Router router, Route route, ParameterDictionary routeparams)
 {
     Context=context;
     Router=router;
     Route=route;
     RouteParams=routeparams;
 }
 public AreaCreateWizard(IServerContext serverContext, IOptions <LoruleOptions> loruleOptions, EditorOptions editorOptions)
 {
     _serverContext = serverContext ?? throw new ArgumentNullException(nameof(serverContext));
     _loruleOptions = loruleOptions ?? throw new ArgumentNullException(nameof(loruleOptions));
     _editorOptions = editorOptions ?? throw new ArgumentNullException(nameof(editorOptions));
     InitializeComponent();
 }
Exemple #27
0
 public UdpServer(IServerContext sc, Func <ISessionContext, IBinaryTransformer, KeyValuePair <IServerImplementation, IStreamedVirtualTransportServer> > VirtualTransportServerFactory, Action <Action> QueueUserWorkItem, Action <Action> PurifierQueueUserWorkItem)
 {
     ServerContext = sc;
     this.VirtualTransportServerFactory = VirtualTransportServerFactory;
     this.QueueUserWorkItem             = QueueUserWorkItem;
     this.PurifierQueueUserWorkItem     = PurifierQueueUserWorkItem;
 }
Exemple #28
0
        /// <summary>
        /// 判断分类明是否已经存在(按用户过滤)
        /// </summary>
        /// <param name="name"></param>
        /// <param name="sc"></param>
        /// <returns></returns>

        private bool IsHasName(string name, IServerContext sc)
        {
            Func <ServerContextInfo, bool> func = (scinfo) =>
            {
                DbQuerySetting qs = new DbQuerySetting();
                //where条件
                DbQueryFieldGroupSetting where = new DbQueryFieldGroupSetting();
                where.FieldCondition           = new List <DbQueryFieldSetting>();
                //根据用户过滤
                where.FieldCondition.Add(new DbQueryFieldSetting()
                {
                    Name      = "Name",
                    Value     = name,
                    DataType  = DbQueryFieldDataType.String,
                    QueryType = DbQueryType.Equal
                });

                where.FieldCondition.Add(new DbQueryFieldSetting()
                {
                    Name      = "CreateUserId",
                    Value     = scinfo.UserId,
                    DataType  = DbQueryFieldDataType.String,
                    QueryType = DbQueryType.Equal
                });
                List <DbQueryFieldGroupSetting> listWhere = new List <DbQueryFieldGroupSetting>();
                listWhere.Add(where);
                qs.WhereCondition = listWhere;
                var result = this.GetDAL <IModelClassDAL>(sc).LoadDatas(qs, sc);
                int?count  = result?.Count;
                return(count != null && count > 0);
            };

            return(this.CallFuncForContextInfo <bool>(func, sc, "IsHasName", "判断是否重名"));
        }
Exemple #29
0
        /// <summary>
        /// 得到服务器上下文:AGSServer远程调用AO
        /// </summary>
        /// <returns></returns>
        private IServerContext GetServerContext()
        {
            string serverName = "localhost";    //服务器机器名称
            string mapSvrName = "china";        //空间数据服名称
            IServerObjectManager svrObjMgr = null;

            //获取SOM,并放入session变量中
            if (Session["SOM"] == null)
            {
                //用ADF connection库
                AGSServerConnection agsServerConnection = new AGSServerConnection();
                agsServerConnection.Host = serverName;
                //建立与服务器的连接
                agsServerConnection.Connect();
                svrObjMgr = agsServerConnection.ServerObjectManager;
            }
            else
            {
                svrObjMgr = Session["SOM"] as ServerObjectManager;
            }

            //根据服务名来创建上下文
            IServerContext svrContext = svrObjMgr.CreateServerContext(mapSvrName, "MapServer");

            return(svrContext);
        }
Exemple #30
0
 public ExternalHttpServer(IServerContext sc, Action <String, HttpListenerContext, IPEndPoint, Action, Action <Exception> > RequestHandler, Action <Action> QueueUserWorkItem, int ReadBufferSize = 8 * 1024)
 {
     ServerContext          = sc;
     this.RequestHandler    = RequestHandler;
     this.QueueUserWorkItem = QueueUserWorkItem;
     this.ReadBufferSize    = ReadBufferSize;
 }
        public void Update(IServerContext serverContext, IUpdateContext updateContext)
        {
            if (Dispatcher == null)
            {
                return;
            }

            Dispatcher.Update();

            while (_messagesRecieved.Count > 0)
            {
                var @event = _messagesRecieved.Dequeue();

                _networkEventEngine.Fire(
                    new DefaultNetworkEventContext(),
                    new NetworkMessageReceivedEvent
                {
                    Client        = @event.Client,
                    Dispatcher    = Dispatcher,
                    GameContext   = null,
                    ServerContext = serverContext,
                    UpdateContext = updateContext,
                    Payload       = @event.Payload,
                    ProtocolID    = @event.ProtocolID
                });
            }

            while (_clientsConnected.Count > 0)
            {
                var @event = _clientsConnected.Dequeue();

                _networkEventEngine.Fire(
                    new DefaultNetworkEventContext(),
                    new NetworkClientConnectedEvent
                {
                    Client        = @event.Client,
                    Dispatcher    = Dispatcher,
                    GameContext   = null,
                    ServerContext = serverContext,
                    UpdateContext = updateContext
                });
            }

            while (_clientsDisconnected.Count > 0)
            {
                var @event = _clientsDisconnected.Dequeue();

                _networkEventEngine.Fire(
                    new DefaultNetworkEventContext(),
                    new NetworkClientDisconnectedEvent
                {
                    Client        = @event.Client,
                    Dispatcher    = Dispatcher,
                    GameContext   = null,
                    ServerContext = serverContext,
                    UpdateContext = updateContext
                });
            }
        }
Exemple #32
0
 /// <summary>
 /// Called by the network engine when this entity is spawned with an <see cref="EntityPredictMessage"/>.
 /// </summary>
 /// <param name="serverContext"></param>
 /// <param name="updateContext"></param>
 /// <param name="client"></param>
 /// <param name="predictedIdentifier"></param>
 public virtual void ReceivePredictedNetworkIDFromClient(IServerContext serverContext, IUpdateContext updateContext, MxClient client,
                                                         int predictedIdentifier)
 {
     if (EnabledInterfaces.Contains(typeof(INetworkIdentifiable)))
     {
         _networkIdentifiableServer.Invoke(serverContext, updateContext, client, predictedIdentifier);
     }
 }
        /// <summary>
        /// 获取所有控件列表
        /// </summary>
        /// <param name="sc"></param>
        /// <returns></returns>
        public List <ControlEntity> GetControlList(IServerContext sc)
        {
            IMongoCollection <ControlEntity> collection = this.CreateMongoCollection <IMongoCollection <ControlEntity> >();
            FilterDefinition <ControlEntity> all        = Builders <ControlEntity> .Filter.Empty;
            var list = collection.Find(Builders <ControlEntity> .Filter.And(all)).ToList();

            return(list);
        }
Exemple #34
0
    public Classifier(IServerContext mapContext, double [] values, int [] counts, String classifierType, int breaks)
    {
        m_classifier = (IClassifyGEN)mapContext.CreateObject("esriSystem." + classifierType);
        int b = breaks;

        m_classifier.Classify(values, counts, ref b);
        m_breaks = b;
    }
 /// <summary>
 /// Initializes a new instance of a <see cref="PhysicsEvent"/>.  This constructor
 /// is intended to be used internally within the engine.
 /// </summary>
 /// <param name="gameContext">The current game context, or null if running on a server.</param>
 /// <param name="serverContext">The current server context, or null if running on a client.</param>
 /// <param name="updateContext">The current update context.</param>
 protected PhysicsEvent(
     IGameContext gameContext,
     IServerContext serverContext,
     IUpdateContext updateContext)
 {
     GameContext = gameContext;
     ServerContext = serverContext;
     UpdateContext = updateContext;
 }
Exemple #36
0
 public FSCAuth(IServerContext server, FSCAuthConfig config, IUserStore store, bool defaultbasic=false)
 {
     Server=server;
     Config=config;
     if(Config.HasherInvoker==null)
     {
         Config.HasherInvoker=DefaultHasher;
     }
     BasicByDefault=defaultbasic;
     UserStore=store;
 }
 /// <summary>
 /// Initializes a new instance of a <see cref="PhysicsCollisionEndEvent"/>.  This constructor
 /// is intended to be used internally within the framework.
 /// </summary>
 /// <param name="gameContext">The current game context, or null if running on a server.</param>
 /// <param name="serverContext">The current server context, or null if running on a client.</param>
 /// <param name="updateContext">The current update context.</param>
 /// <param name="body1">The first body involved in the collision.</param>
 /// <param name="body2">The second body involved in the collision.</param>
 /// <param name="owner1">The owner of the first body.</param>
 /// <param name="owner2">The owner of the second body.</param>
 public PhysicsCollisionEndEvent(
     IGameContext gameContext,
     IServerContext serverContext,
     IUpdateContext updateContext,
     RigidBody body1,
     RigidBody body2,
     object owner1,
     object owner2) : base(
         gameContext,
         serverContext,
         updateContext)
 {
     Body1 = body1;
     Body2 = body2;
     Owner1 = owner1;
     Owner2 = owner2;
 }
        public void Update(IServerContext serverContext, IUpdateContext updateContext)
        {
            if (serverContext.World != _currentServerWorld || _shadowWorld == null)
            {
                if (_shadowWorld != null)
                {
                    _shadowWorld.Dispose();
                }

                _shadowWorld = _physicsFactory.CreateShadowWorld();
                _currentServerWorld = serverContext.World;
            }

            using (_profiler.Measure("phys-step"))
            {
                _shadowWorld.Update(serverContext, updateContext);
            }
        }
        public static void Execute(this KeyPressedCommand command, IPEndPoint endPoint, IServerContext serverContext)
        {
            var character = GetCharacter(endPoint, command.Token, serverContext);
            if (character == null)
                return;
            var position = character.Data.Position;

            const float step = 2.2f;
            if (command.Keys.Contains(Key.Left))
                position.X -= step;
            if (command.Keys.Contains(Key.Right))
                position.X += step;
            if (command.Keys.Contains(Key.Up))
                position.Y -= step;
            if (command.Keys.Contains(Key.Down))
                position.Y += step;

            // Оповещаем клиентов о перемещении перса
            var positionChangedCommand = new PositionChangedCommand { CharacterId = character.Id, Position = position, Token = command.Token };
            SendToAll(() => positionChangedCommand, serverContext);
        }
        public static void Execute(this JoinCharacterCommand command, IPEndPoint endPoint, IServerContext serverContext)
        {
            var session = serverContext.PersonsDatabase.GetSession(command.SessionId);
            if (session == null)
                throw new NotImplementedException();		// TODO: обработать

            if (serverContext.CharactersDatabase.GetCharacters(session.PersonId).All(ch => ch.Id != command.CharacterId))
                throw new NotImplementedException();		// TODO: Попытка прислать Id другого перса

            var character = serverContext.CharactersDatabase.GetCharacter(command.CharacterId);
            if (character == null)
                throw new NotImplementedException();		// TODO: обработать

            // TODO: проверить что чар принадлежит пользователю сессии

            // TODO: достаём параметры чара из БД
            var characterData = serverContext.CharactersDatabase.GetData(command.CharacterId);
            //((Character)character).Position = new Position { X = serverContext.Random.Next(200), Y = serverContext.Random.Next(200) };

            var token = (ushort)serverContext.Random.Next(ushort.MaxValue);
            serverContext.CharacterSessions.Add(new CharacterSession
            {
                Character = character,
                CharacterData = characterData,
                EndPoint = endPoint,
                Token = token
            });

            // Подтверждаем подключение
            serverContext.Connector.Send(endPoint, new CharacterJoinedCommand { Token = token });

            // Оповещаем клиентов (кроме инициатора) о появлении нового перса
            var characterDetectedCommand = new CharacterDetectedCommand { Character = character };
            foreach (var charSession in serverContext.CharacterSessions.All.Where(cs => cs.Character.Id != character.Id))
                serverContext.Connector.Send(charSession.EndPoint, characterDetectedCommand);
        }
Exemple #41
0
    private void applyRenderer(IGeoFeatureLayer geoLayer, IServerContext mapContext, string fieldName, Classifier classifier)
    {
        IClassBreaksRenderer cbRenderer = (IClassBreaksRenderer)mapContext.CreateObject("esriCarto.ClassBreaksRenderer");
        cbRenderer.Field = fieldName;

        ILegendInfo legendInfo = (ILegendInfo)cbRenderer;
        ILegendGroup legendGroup = legendInfo.get_LegendGroup(0);
        legendGroup.Heading = "Counts";

        int breaks = classifier.getBreaks();
        IColor [] pColors = new IColor[breaks];
        ISimpleFillSymbol [] symbols = new ISimpleFillSymbol[breaks];

        double breakValue;
        cbRenderer.BreakCount = breaks;
        IAlgorithmicColorRamp colorRamp = (IAlgorithmicColorRamp)mapContext.CreateObject("esriDisplay.AlgorithmicColorRamp");
        IColor startColor, endColor;

        startColor = createRGBColor(mapContext, 255, 255, 0);
        endColor = createRGBColor(mapContext, 255, 0, 0);
        colorRamp.FromColor = startColor;
        colorRamp.ToColor = endColor;
        colorRamp.Algorithm = esriColorRampAlgorithm.esriCIELabAlgorithm;
        colorRamp.Size = breaks;
        bool created;
        try
        {
            colorRamp.CreateRamp(out created);
        }
        catch
        {
            this.Label2.Text = "There is not enough data associated with the current extents and attributes selected. A map was not generated. Please try selecting other attributes.";
            return;
        }
        IEnumColors iterColors = colorRamp.Colors;

        double[] classBreaksArray = (double[])classifier.getClassBreaksArray();

        for (int i = 0; i < breaks; i++)
        {
            pColors[i] = iterColors.Next();
            symbols[i] = (ISimpleFillSymbol)mapContext.CreateObject("esriDisplay.SimpleFillSymbol");
            symbols[i].Color = pColors[i];
            cbRenderer.set_Symbol(i, (ISymbol)symbols[i]);

            breakValue = classBreaksArray[i + 1];
            cbRenderer.set_Break(i, breakValue);
            string breakValueString = String.Format("{0:0.00}", breakValue);

            if (i == 0)
            {
                cbRenderer.set_Label(i, "<" + breakValueString);
            }
            else
            {
                string prevValueString = String.Format("{0:0.00}", classBreaksArray[i]);
                string label = prevValueString + " < " + breakValueString;
                cbRenderer.set_Label(i, label);
            }

        }

        geoLayer.Renderer = (IFeatureRenderer)cbRenderer;
        this.Toc1.ExpandDepth = 1;
        this.Toc1.Refresh();
    }
 /// <summary>
 /// Отправляет команду всем подключенным клиентам
 /// </summary>
 private static void SendToAll(Func<CommandBase> getCommand, IServerContext serverContext)
 {
     foreach (var charSession in serverContext.CharacterSessions.All)
         serverContext.Connector.Send(charSession.EndPoint, getCommand());
 }
 private static ICharacter GetCharacter(IPEndPoint endPoint, ushort token, IServerContext serverContext)
 {
     var session = serverContext.CharacterSessions.Get(endPoint, token);
     return session == null ? null : session.Character;
 }
 public void Update(IServerContext serverContext, IUpdateContext updateContext)
 {
     _networkEngine.Update(serverContext, updateContext);
 }
Exemple #45
0
 void MainWindow_Loaded(object sender, RoutedEventArgs e)
 {
     _serverContext = new ServerContext();
     _serverContext.Connector.DataReceived += OnDataReceived;
     _monitorControl.ServerContext = _serverContext;
 }
 public void Update(IServerContext serverContext, IUpdateContext updateContext)
 {
     _physicsEngine.Update(serverContext, updateContext);
 }
 public ElementFactory(IServerContext context)
 {
   _context = context;
 }
 public void Update(IServerContext serverContext, IUpdateContext updateContext)
 {
 }
 public void Update(ComponentizedEntity entity, IServerContext serverContext, IUpdateContext updateContext)
 {
     Update();
 }
Exemple #50
0
 ///// <summary>
 ///// 
 ///// </summary>
 ///// <param name="filter"></param>
 //private void RemoveFilter(IServiceFilter filter)
 //{
 //    if (filter == null)
 //        throw new ArgumentNullException(nameof(filter));
 //    ServiceFilters.Remove(filter);
 //}
 /// <summary>
 /// 
 /// </summary>
 /// <param name="serverContext"></param>
 /// <returns>if true process processed or else the path not a service path</returns>
 public Task<bool> ProcessAsync(IServerContext serverContext)
 {
     return ServiceHost.ProcessAsync(serverContext);
 }
Exemple #51
0
 public override void Update(IServerEntity entity, IServerContext serverContext, IUpdateContext updateContext)
 {
 }
Exemple #52
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="httpContext"></param>
 /// <returns>if true process processed or else the path not a service path</returns>
 public static Task<bool> ProcessAsync(IServerContext httpContext)
 {
     return AppHost.ProcessAsync(httpContext);
 }
        public void Update(IServerContext serverContext, IUpdateContext updateContext)
        {
            if (Dispatcher == null)
            {
                return;
            }

            Dispatcher.Update();

            while (_messagesRecieved.Count > 0)
            {
                var @event = _messagesRecieved.Dequeue();

                _networkEventEngine.Fire(
                    new DefaultNetworkEventContext(),
                    new NetworkMessageReceivedEvent
                    {
                        Client = @event.Client,
                        Dispatcher = Dispatcher,
                        GameContext = null,
                        ServerContext = serverContext,
                        UpdateContext = updateContext,
                        Payload = @event.Payload,
                        ProtocolID = @event.ProtocolID
                    });
            }

            while (_clientsConnected.Count > 0)
            {
                var @event = _clientsConnected.Dequeue();

                _networkEventEngine.Fire(
                    new DefaultNetworkEventContext(),
                    new NetworkClientConnectedEvent
                    {
                        Client = @event.Client,
                        Dispatcher = Dispatcher,
                        GameContext = null,
                        ServerContext = serverContext,
                        UpdateContext = updateContext
                    });
            }

            while (_clientsDisconnected.Count > 0)
            {
                var @event = _clientsDisconnected.Dequeue();

                _networkEventEngine.Fire(
                    new DefaultNetworkEventContext(),
                    new NetworkClientDisconnectedEvent
                    {
                        Client = @event.Client,
                        Dispatcher = Dispatcher,
                        GameContext = null,
                        ServerContext = serverContext,
                        UpdateContext = updateContext
                    });
            }
        }
Exemple #54
0
        ///// <summary>
        ///// 
        ///// </summary>
        ///// <param name="filter"></param>
        //public void AddFilter(IRpcServiceFilter filter)
        //{
        //    Filters.Add(filter);
        //}
        ///// <summary>
        ///// 
        ///// </summary>
        ///// <param name="filter"></param>
        //public void RemoveFilter(IRpcServiceFilter filter)
        //{
        //    Filters.Remove(filter);
        //}
        /// <summary>
        /// 
        /// </summary>
        /// <param name="serverContext"></param>
        /// <returns>if true process processed or else the path not a service path</returns>
        public Task<bool> ProcessAsync(IServerContext serverContext)
        {
            if (serverContext == null)
                throw new ArgumentNullException(nameof(serverContext));

            var serviceContext = new ServiceContext
            {
                Request = new ServiceRequest
                {
                    RequestStream = serverContext.RequestStream,
                    Path = serverContext.RequestPath,
                    ContentType = serverContext.RequestContentType,
                    ContentLength = serverContext.RequestContentLength,
                },
                Response = new ServiceResponse
                {
                    ResponseStream = serverContext.ResponseStream,
                },
                ExecutingContext = serverContext,
            };

            return ProcessInternalAsync(serviceContext)
                .ContinueWith(tsk =>
                {
                    if (tsk.Exception == null)
                        return tsk.Result;

                    LogHelper.Error(tsk.Exception.InnerException);
                    return true;
                });
        }
Exemple #55
0
    private IColor createRGBColor(IServerContext mapContext, int red, int green, int blue)
    {
        IColor retColor;
        RgbColor pColor;
        pColor = (RgbColor)mapContext.CreateObject("esriDisplay.RgbColor");
        pColor.Red = red;
        pColor.Green = green;
        pColor.Blue = blue;
        retColor = (IColor)pColor;

        return retColor;
    }
 public SqlFormatter(IServerContext context)
 {
   _context = context;
 }
Exemple #57
0
		public UserManager(IUser user, IServerContext server)
		{
			this.user = user as User;
			this.server = server;
		}
 public MultiPartFormWriter(bool async, IServerContext context)
 {
   _async = async;
   _context = context;
   _writer = new StreamWriter(_content);
 }
Exemple #59
0
		public LoginViewModel(IUserManager manager, INavigationService navService, ISettings settings, IServerContext context) : base(navService)
		{
			this.settings = settings;
			this.context = context;
			this.manager = manager;
		}
 public int SetHeader(string brline, Command cmd, IServerContext context)
 {
   var id = _id[0] == '@' ? cmd.Substitute(_id, context) : _id;
   var path = _path[0] == '@' ? cmd.Substitute(_path, context) : _path;
   _header = Encoding.UTF8.GetBytes(string.Format("{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{2}\"\r\n\r\n", brline, id, path));
   return _header.Length;
 }