Esempio n. 1
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="options">下载器代理选项</param>
 /// <param name="spiderOptions"></param>
 /// <param name="eventBus">消息队列</param>
 /// <param name="networkCenter">网络中心</param>
 /// <param name="logger">日志接口</param>
 public LocalDownloaderAgent(DownloaderAgentOptions options, SpiderOptions spiderOptions,
                             IEventBus eventBus, NetworkCenter networkCenter,
                             ILogger <LocalDownloaderAgent> logger) : base(options, spiderOptions,
                                                                           eventBus, networkCenter, logger)
 {
     // ConfigureDownloader = downloader => downloader.Logger = null;
 }
Esempio n. 2
0
        public GeneralResponse AddCenter(IEnumerable <AddCenterRequest> requests, Guid CreateEmployeeID)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                foreach (var request in requests)
                {
                    Center center = new Center();
                    center.ID             = Guid.NewGuid();
                    center.CreateDate     = PersianDateTime.Now;
                    center.CreateEmployee = _employeeRepository.FindBy(CreateEmployeeID);
                    center.CenterName     = request.CenterName;
                    center.Note           = request.Note;
                    center.RowVersion     = 1;

                    _centerRepository.Add(center);

                    // be jaye Triggere After Insert. NetworkCenter-ha insert mishavad
                    IList <NetworkCenter> networkCenters = new List <NetworkCenter>();
                    foreach (Network network in _networkRepository.FindAll())
                    {
                        NetworkCenter networkCenter = new NetworkCenter();
                        networkCenter.Network        = network;
                        networkCenter.Center         = center;
                        networkCenter.CreateDate     = PersianDateTime.Now;
                        networkCenter.CreateEmployee = center.CreateEmployee;
                        networkCenter.Status         = NetworkCenterStatus.NotDefined;
                        networkCenter.RowVersion     = 1;

                        networkCenters.Add(networkCenter);
                    }

                    center.NetworkCenters = networkCenters;

                    #region Validation

                    if (center.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in center.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    #endregion

                    _centerRepository.Add(center);
                }
                _uow.Commit();
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
            }

            return(response);
        }
Esempio n. 3
0
        public GetNetworkCenterResponse GetNetworkCenter(GetRequest2 request)
        {
            GetNetworkCenterResponse response = new GetNetworkCenterResponse();

            try
            {
                NetworkCenter     networkCenter     = new NetworkCenter();
                NetworkCenterView networkCenterView = networkCenter.ConvertToNetworkCenterView();

                Infrastructure.Querying.Query query = new Infrastructure.Querying.Query();
                Criterion criteria1 = new Criterion("Network.ID", request.ID1, CriteriaOperator.Equal);
                Criterion criteria2 = new Criterion("Center.ID", request.ID2, CriteriaOperator.Equal);
                query.Add(criteria1); query.Add(criteria2);

                networkCenter = _networkCenterRepository.FindBy(query).FirstOrDefault();
                if (networkCenter != null)
                {
                    networkCenterView = networkCenter.ConvertToNetworkCenterView();
                }

                response.NetworkCenterView = networkCenterView;
            }
            catch (Exception ex)
            {
            }

            return(response);
        }
Esempio n. 4
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="options">下载器代理选项</param>
 /// <param name="eventBus">消息队列</param>
 /// <param name="networkCenter">网络中心</param>
 /// <param name="logger">日志接口</param>
 protected DownloaderAgentBase(
     DownloaderAgentOptions options,
     IEventBus eventBus,
     NetworkCenter networkCenter,
     ILogger logger)
 {
     _eventBus = eventBus;
     _options  = options;
     Framework.NetworkCenter = networkCenter;
     Logger = logger;
 }
Esempio n. 5
0
        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="options">下载器代理选项</param>
        /// <param name="spiderOptions"></param>
        /// <param name="eventBus">消息队列</param>
        /// <param name="networkCenter">网络中心</param>
        /// <param name="logger">日志接口</param>
        protected DownloaderAgentBase(
            DownloaderAgentOptions options,
            SpiderOptions spiderOptions,
            IMq eventBus,
            NetworkCenter networkCenter,
            ILogger logger)
        {
            _spiderOptions          = spiderOptions;
            _mq                     = eventBus;
            _options                = options;
            Framework.NetworkCenter = networkCenter;

            Logger = _mq is ThroughMessageQueue ? null : logger;
        }
        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="options">下载器代理选项</param>
        /// <param name="spiderOptions"></param>
        /// <param name="eventBus">消息队列</param>
        /// <param name="networkCenter">网络中心</param>
        /// <param name="logger">日志接口</param>
        protected DownloaderAgentBase(
            DownloaderAgentOptions options,
            SpiderOptions spiderOptions,
            IEventBus eventBus,
            NetworkCenter networkCenter,
            ILogger logger)
        {
            _spiderOptions          = spiderOptions;
            _eventBus               = eventBus;
            _options                = options;
            Framework.NetworkCenter = networkCenter;

            Logger = _eventBus is LocalEventBus ? null : logger;
        }
Esempio n. 7
0
        public GeneralResponse EditNetworkCenter(EditNetworkCenterRequest request)
        {
            GeneralResponse response      = new GeneralResponse();
            NetworkCenter   networkCenter = new NetworkCenter();

            Infrastructure.Querying.Query query = new Infrastructure.Querying.Query();
            Criterion criteria1 = new Criterion("Network.ID", request.NetworkID, CriteriaOperator.Equal);
            Criterion criteria2 = new Criterion("Center.ID", request.CenterID, CriteriaOperator.Equal);

            query.Add(criteria1); query.Add(criteria2);

            networkCenter = _networkCenterRepository.FindBy(query).FirstOrDefault();

            if (networkCenter != null)
            {
                try
                {
                    networkCenter.Status  = (NetworkCenterStatus)request.Status;
                    networkCenter.CanSale = request.CanSale;

                    if (networkCenter.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in networkCenter.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    _networkCenterRepository.Save(networkCenter);
                    _uow.Commit();

                    ////response.success = true;
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                }
            }
            else
            {
                response.ErrorMessages.Add("NoItemToEditKey");
            }
            return(response);
        }
Esempio n. 8
0
        static void threadFun(object ob)
        {
            param         o = ob as param;
            NetworkCenter c = o.c;

            c.recvCompleted += (arg) =>
            {
                NetworkIOArgs args = arg as NetworkIOArgs;
                if (args.State != NetworkState.Closed)
                {
                    Console.WriteLine(Encoding.UTF8.GetString(args.Data, 0, args.Count));
                    c.Recv();
                }
                else
                {
                    System.Diagnostics.Process.GetCurrentProcess().Kill();
                }
            };
            c.Recv();
        }
Esempio n. 9
0
        public GeneralResponse AddNetworkCenter(AddNetworkCenterRequest request)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                NetworkCenter networkCenter = new NetworkCenter();
                networkCenter.Network        = _networkRepository.FindBy(request.NetworkID);
                networkCenter.Center         = _centerRepository.FindBy(request.CenterID);
                networkCenter.CreateDate     = PersianDateTime.Now;
                networkCenter.CreateEmployee = _employeeRepository.FindBy(request.CreateEmployeeID);
                networkCenter.Status         = (NetworkCenterStatus)request.Status;
                networkCenter.CanSale        = request.CanSale;
                networkCenter.RowVersion     = 1;

                _networkCenterRepository.Add(networkCenter);
                _uow.Commit();

                ////response.success = true;

                // Validation
                if (networkCenter.GetBrokenRules().Count() > 0)
                {
                    foreach (BusinessRule businessRule in networkCenter.GetBrokenRules())
                    {
                        response.ErrorMessages.Add(businessRule.Rule);
                    }

                    return(response);
                }
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
            }

            return(response);
        }
Esempio n. 10
0
        public GeneralResponse EditCoverage(IEnumerable <NetworkCenterView> requests, Guid CenterID)
        {
            GeneralResponse response = new GeneralResponse();

            foreach (var request in requests)
            {
                try
                {
                    NetworkCenter networkCenter = new NetworkCenter();

                    Infrastructure.Querying.Query query = new Infrastructure.Querying.Query();
                    Criterion criteria = new Criterion("Network.ID", request.NetworkID, CriteriaOperator.Equal);
                    query.Add(criteria);
                    criteria = new Criterion("Center.ID", CenterID, CriteriaOperator.Equal);
                    query.Add(criteria);

                    networkCenter        = _networkCenterRepository.FindBy(query).FirstOrDefault();
                    networkCenter.Status = (NetworkCenterStatus)request.StatusInt;

                    _networkCenterRepository.Save(networkCenter);
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                    return(response);
                }
            }
            try
            {
                _uow.Commit();
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
                return(response);
            }
            return(response);
        }
Esempio n. 11
0
            // Gather current state and oldest known state and send to client(s)
            void SendResumeMessage(State currentState, State oldestState, string targetGuid = null)
            {
                byte[] currentStateData;
                byte[] oldestStateData;
                currentStateData = NetworkCenter.Instance.serializer.Serialize(currentState);
                oldestStateData  = NetworkCenter.Instance.serializer.Serialize(oldestState);
                float timeToResume;

                if (targetGuid == null)
                {
                    // send to all
                    timeToResume = NetworkSync.Instance.GetLagTime();
                    GetComponent <NetworkView>().RPC("ResumeGame", RPCMode.All, currentStateData, oldestStateData, timeToResume);
                }
                else
                {
                    NetworkPlayer player;
                    if (NetworkCenter.TryGetNetworkPlayerForGuid(targetGuid, out player))
                    {
                        timeToResume = NetworkSync.Instance.GetLagTime(targetGuid);
                        GetComponent <NetworkView>().RPC("ResumeGame", player, currentStateData, oldestStateData, timeToResume);
                    }
                }
            }
Esempio n. 12
0
 public static NetworkCenterView ConvertToNetworkCenterView(this NetworkCenter networkCenter)
 {
     return(Mapper.Map <NetworkCenter, NetworkCenterView>(networkCenter));
 }
Esempio n. 13
0
        public GeneralResponse AddNetwork(AddNetworkRequestOld request)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                Network network = new Network();
                network.ID                   = Guid.NewGuid();
                network.CreateDate           = PersianDateTime.Now;
                network.CreateEmployee       = _employeeRepository.FindBy(request.CreateEmployeeID);
                network.DeliverWhenCreditLow = request.DeliverWhenCreditLow;
                network.NetworkName          = request.NetworkName;
                network.Note                 = request.Note;

                network.RowVersion = 1;

                // Validation
                if (network.GetBrokenRules().Count() > 0)
                {
                    foreach (BusinessRule businessRule in network.GetBrokenRules())
                    {
                        response.ErrorMessages.Add(businessRule.Rule);
                    }

                    return(response);
                }

                // be jaye Triggere After Insert. NetworkCenter-ha insert mishavad
                IList <NetworkCenter> networkCenters = new List <NetworkCenter>();
                foreach (Center center in _centerRepository.FindAll())
                {
                    NetworkCenter networkCenter = new NetworkCenter();
                    networkCenter.Network        = network;
                    networkCenter.Center         = center;
                    networkCenter.CreateDate     = PersianDateTime.Now;
                    networkCenter.CreateEmployee = network.CreateEmployee;
                    networkCenter.Status         = NetworkCenterStatus.NotDefined;
                    networkCenter.RowVersion     = 1;

                    networkCenters.Add(networkCenter);
                }

                network.NetworkCenters = networkCenters;
                _networkRepository.Add(network);

                _uow.Commit();

                ////response.success = true;
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    response.ErrorMessages.Add("FIRST INNER EXPCEPTION: " + ex.InnerException.Message);
                    if (ex.InnerException.InnerException != null)
                    {
                        response.ErrorMessages.Add("SECOND INNER EXPCEPTION: " + ex.InnerException.InnerException.Message);
                    }
                }
            }

            return(response);
        }
Esempio n. 14
0
        public GeneralResponse AddNetworks(IEnumerable <AddNetworkRequest> requests, Guid CreateEmployeeID)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                foreach (AddNetworkRequest request in requests)
                {
                    Network network = new Network();
                    network.ID                   = Guid.NewGuid();
                    network.CreateDate           = PersianDateTime.Now;
                    network.CreateEmployee       = _employeeRepository.FindBy(CreateEmployeeID);
                    network.DeliverWhenCreditLow = request.DeliverWhenCreditLow;
                    network.NetworkName          = request.NetworkName;
                    network.Note                 = request.Note;
                    network.SortOrder            = GetSortOrder();
                    network.Discontinued         = request.Discontinued;
                    network.Alias                = request.Alias;
                    network.RowVersion           = 1;

                    // Validation
                    if (network.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in network.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    // be jaye Triggere After Insert. NetworkCenter-ha insert mishavad
                    IList <NetworkCenter> networkCenters = new List <NetworkCenter>();
                    foreach (Center center in _centerRepository.FindAll())
                    {
                        NetworkCenter networkCenter = new NetworkCenter();
                        networkCenter.Network        = network;
                        networkCenter.Center         = center;
                        networkCenter.CreateDate     = PersianDateTime.Now;
                        networkCenter.CreateEmployee = network.CreateEmployee;
                        networkCenter.Status         = NetworkCenterStatus.NotDefined;
                        networkCenter.RowVersion     = 1;

                        networkCenters.Add(networkCenter);
                    }

                    network.NetworkCenters = networkCenters;
                    _networkRepository.Add(network);
                }
                _uow.Commit();
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    response.ErrorMessages.Add(ex.InnerException.Message);
                }
            }

            return(response);
        }
Esempio n. 15
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="options">下载器代理选项</param>
 /// <param name="mq">消息队列</param>
 /// <param name="downloaderAllocator">分配下载器的接口</param>
 /// <param name="networkCenter">网络中心</param>
 /// <param name="logger">日志接口</param>
 public LocalDownloaderAgent(IDownloaderAgentOptions options, IDynamicMessageQueue dmq,
                             IMessageQueue mq, IDownloaderAllocator downloaderAllocator, NetworkCenter networkCenter,
                             ILogger <LocalDownloaderAgent> logger) : base(options, dmq,
                                                                           mq, downloaderAllocator, networkCenter, logger)
 {
     // ConfigureDownloader = downloader => downloader.Logger = null;
 }
Esempio n. 16
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="options">下载器代理选项</param>
 /// <param name="spiderOptions"></param>
 /// <param name="eventBus">消息队列</param>
 /// <param name="networkCenter">网络中心</param>
 /// <param name="logger">日志接口</param>
 public DefaultDownloaderAgent(DownloaderAgentOptions options,
                               SpiderOptions spiderOptions, IEventBus eventBus, NetworkCenter networkCenter,
                               ILogger <DefaultDownloaderAgent> logger) : base(options, spiderOptions, eventBus, networkCenter, logger)
 {
 }
Esempio n. 17
0
        static void Main(string[] args)
        {
            long          time  = DateTime.Now.ToFileTimeUtc();
            int           seed  = (int)(time ^ (time >> 32));
            Random        ran   = new Random(seed);
            NetworkCenter login = new NetworkCenter();

            login.Connect("192.168.224.129", 8081);
            login.loginCompleted += (ar) =>
            {
                NetworkIOArgs arg = ar as NetworkIOArgs;
                JObject       obj = (JObject)JsonConvert.DeserializeObject(Encoding.UTF8.GetString(arg.Data));

                if (obj["code"].ToString() == "200")
                {
                    JToken servers = obj["servers"];
                    JToken server  = servers.First;
                    int    port    = Convert.ToInt32(server.First["port"].ToString());
                    //string ip = server.First[""].ToString();
                    string uid = obj["uid"].ToString();
                    string sid = obj["sid"].ToString();

                    login.ReConnect("192.168.224.129", 8082);
                    login.connGameServerCompleted += (a) =>
                    {
                        int x = ran.Next(100);
                        int y = ran.Next(100);
                        // int z = ran.Next(100);
                        Thread t = new Thread(threadFun);
                        t.Start(new param()
                        {
                            c = login
                        });
                        //int x = 50;
                        //int y = 50;
                        int z = 0;
                        while (true)
                        {
                            string str = string.Format("{0}:{1}:{2}:45", x, y, z);
                            login.Send(2, Encoding.UTF8.GetBytes(str));
                            Thread.Sleep(1000);
                            if (ran.Next(1024) > (1024 >> 1))
                            {
                                if (x < 100)
                                {
                                    x++;
                                }
                            }
                            else
                            {
                                if (x > 0)
                                {
                                    x--;
                                }
                            }
                            if (ran.Next(1024) > (1024 >> 1))
                            {
                                if (y < 100)
                                {
                                    y++;
                                }
                            }
                            else
                            {
                                if (y > 0)
                                {
                                    y--;
                                }
                            }
                            //if (ran.Next(1024) > (1024 >> 1))
                            //{
                            //   if(z<100) z++;
                            //}
                            //else
                            //{
                            //    if (z > 0) z--;
                            //}
                        }
                    };
                    login.ConnectGameServer(uid, sid, "123");
                }
            };
            login.Login("koll:123");
            ManualResetEvent e = new ManualResetEvent(false);

            e.WaitOne();
        }
 public LocalDownloaderAgent(IDownloaderAgentOptions options,
                             IMessageQueue mq, IDownloaderAllocator downloaderAllocator, NetworkCenter networkCenter,
                             ILoggerFactory loggerFactory) : base(options,
                                                                  mq, downloaderAllocator, networkCenter, loggerFactory)
 {
     ConfigureDownloader = downloader => downloader.Logger = null;
 }