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; }
/// <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; }
///// <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; }
/// <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)); }
/// <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); }
public AgentSessionHandleCollection(IServerContext context, IEnumerable <DomainAgentSessionHandle> agentSessions) { this.context = context; this.agentSessionList = agentSessions as DomainAgentSessionHandle[] ?? agentSessions?.ToArray() ?? throw new ArgumentNullException(nameof(agentSessions)); }
/// <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[] { }; }
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); } }
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; }
/// <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", "获取用户模块分类列表失败")); }
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); } }
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); } }
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); }
/// <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; }
/// <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); } }
/// <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); }
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(); }
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; }
/// <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", "判断是否重名")); }
/// <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); }
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 }); } }
/// <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); }
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; }
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); }
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); }
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(); }
///// <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); }
public override void Update(IServerEntity entity, IServerContext serverContext, IUpdateContext updateContext) { }
/// <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 }); } }
///// <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; }); }
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; }
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); }
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; }