Exemple #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        public MyBackupService(ConfigManager configManager, ScheduleManager scheduleManager)
        {
            managers.Add(configManager);
            managers.Add(scheduleManager);
            taskDispatcher = new TaskDispatcher();

            Init();
        }
Exemple #2
0
        public void LeastIntervalTest3()
        {
            var tasks          = new char[] { 'A', 'A', 'A', 'A', 'A', 'A', 'B', 'C', 'D', 'E', 'F', 'G' };
            var n              = 2;
            var expectedResult = 16;
            var actualResult   = new TaskDispatcher().LeastInterval(tasks, n);

            Assert.AreEqual(expectedResult, actualResult);
        }
Exemple #3
0
        public void LeastIntervalTest2()
        {
            var tasks          = new char[] { 'A', 'A', 'A', 'B', 'B', 'B' };
            var n              = 0;
            var expectedResult = 6;
            var actualResult   = new TaskDispatcher().LeastInterval(tasks, n);

            Assert.AreEqual(expectedResult, actualResult);
        }
Exemple #4
0
 /// <summary>
 ///
 /// </summary>
 public void Stop()
 {
     PreStop();
     if (_taskDispather != null)
     {
         _taskDispather.Stop();
         _taskDispather = null;
     }
 }
 private void AirdropTimer_Elapsed(object sender, ElapsedEventArgs e)
 {
     // Make sure it's executed on the main thread
     TaskDispatcher.QueueOnMainThread(() =>
     {
         CallAirdrop();
         AirdropTimerNext = DateTime.Now.AddSeconds(Configuration.Instance.AirdropInterval);
         Logger.Log("Airdrop has been sent by a timer!", ConsoleColor.Yellow);
     });
 }
        internal ForegroundValidationSynchronizer(TaskDispatcher dispatcher, Func <ValidationReason, CancellationToken, TValidationResult> validationWork, Action <TValidationResult> updateWork)
        {
            Fx.Assert(dispatcher != null, "dispatcher should not be null and is ensured by caller.");
            Fx.Assert(validationWork != null, "validationWork should not be null and is ensured by caller.");
            Fx.Assert(updateWork != null, "updateWork should not be null and is ensured by caller.");

            this.dispatcher     = dispatcher;
            this.validationWork = validationWork;
            this.updateWork     = updateWork;
        }
Exemple #7
0
        /// <summary>
        /// Safely destroys this buildable no matter which thread it is called from.
        /// </summary>
        public void SafeDestroy()
        {
            if (!Thread.CurrentThread.IsGameThread())
            {
                TaskDispatcher.QueueOnMainThread(UnsafeDestroy);
                return;
            }

            UnsafeDestroy();
        }
Exemple #8
0
        public void SafeDamage(ushort damage)
        {
            if (!Thread.CurrentThread.IsGameThread())
            {
                TaskDispatcher.QueueOnMainThread(() => UnsafeDamage(damage));
                return;
            }

            UnsafeDamage(damage);
        }
Exemple #9
0
        public void SafeHeal(ushort amount)
        {
            if (!Thread.CurrentThread.IsGameThread())
            {
                TaskDispatcher.QueueOnMainThread(() => UnsafeHeal(amount));
                return;
            }

            UnsafeHeal(amount);
        }
        public override void Load(AssetLoaded <T> callback = null)
        {
            try
            {
                if (!waiting)
                {
                    Logger.Log(String.Format("Updating WebXMLFileAsset {0} from {1}", typeof(T).Name, url));
                    waiting = true;

                    webclient.DownloadStringCompleted -= handler;
                    handler = (object sender, System.Net.DownloadStringCompletedEventArgs e) =>
                    {
                        if (e.Error != null)
                        {
                            Logger.Log(String.Format("Error retrieving WebXMLFileAsset {0} from {1}: {2}", typeof(T).Name, url, e.Error.Message));
                        }
                        else
                        {
                            try
                            {
                                using (StringReader reader = new StringReader(e.Result))
                                {
                                    XmlSerializer serializer = new XmlSerializer(typeof(T), attr);
                                    T             result     = (T)serializer.Deserialize(reader);
                                    if (result != null)
                                    {
                                        TaskDispatcher.QueueOnMainThread(() =>
                                        {
                                            instance = result;
                                            Logger.Log(String.Format("Successfully updated WebXMLFileAsset {0} from {1}", typeof(T).Name, url));
                                        });
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                Logger.Log(String.Format("Error retrieving WebXMLFileAsset {0} from {1}: {2}", typeof(T).Name, url, ex.Message));
                            }
                        }

                        TaskDispatcher.QueueOnMainThread(() =>
                        {
                            callback?.Invoke(this);
                            waiting = false;
                        });
                    };
                    webclient.DownloadStringCompleted += handler;
                    webclient.DownloadStringAsync(url);
                }
            }
            catch (Exception ex)
            {
                Logger.Log(String.Format("Error retrieving WebXMLFileAsset {0} from {1}: {2}", typeof(T).Name, url, ex.Message));
            }
        }
Exemple #11
0
        public TaskWorker Start()
        {
            if (isStarted) throw new Exception("already running");

            dispatcher = new TaskDispatcher(queue);

            dispatcher.Start();

            isStarted = true;
            return this;
        }
 private static void RunAsync(Action action)
 {
     ThreadPool.QueueUserWorkItem((_) =>
     {
         try
         {
             action.Invoke();
         } catch (Exception e)
         {
             TaskDispatcher.QueueOnMainThread(() => Logger.LogException(e, $"YA'LL WANNA SINGLE SAY"));
         }
     });
 }
Exemple #13
0
        public void Execute(IRocketPlayer caller, string[] command)
        {
            PlayerHome     home;
            UnturnedPlayer player = (UnturnedPlayer)caller;

            home = HomesHelper.GetPlayerHome(player.CSteamID, command.ElementAtOrDefault(0));

            if (home == null)
            {
                UnturnedChat.Say(caller, pluginInstance.Translate("NoHome"), pluginInstance.MessageColor);
                return;
            }

            if (!ValidateTeleportation(player, home))
            {
                return;
            }

            if (pluginInstance.PlayerCooldowns.TryGetValue(caller.Id, out DateTime cooldownExpire) && cooldownExpire > DateTime.Now)
            {
                UnturnedChat.Say(caller, pluginInstance.Translate("HomeCooldown", System.Math.Round((cooldownExpire - DateTime.Now).TotalSeconds)),
                                 pluginInstance.MessageColor);
                return;
            }

            pluginInstance.PlayerCooldowns[caller.Id] = DateTime.Now.AddSeconds(VipHelper.GetPlayerHomeCooldown(caller.Id));

            float delay = VipHelper.GetPlayerHomeDelay(player.Id);

            if (delay > 0)
            {
                UnturnedChat.Say(caller, pluginInstance.Translate("HomeDelayWarn", delay), pluginInstance.MessageColor);
            }

            TaskDispatcher.QueueOnMainThread(() =>
            {
                if (!ValidateTeleportation(player, home))
                {
                    pluginInstance.PlayerCooldowns.Remove(caller.Id);
                    return;
                }

                if (!player.Player.teleportToLocation(home.LivePosition + new Vector3(0f, pluginInstance.Configuration.Instance.TeleportHeight, 0f), player.Rotation))
                {
                    UnturnedChat.Say(caller, pluginInstance.Translate("HomeTeleportationFailed", home.Name), pluginInstance.MessageColor);
                    pluginInstance.PlayerCooldowns.Remove(caller.Id);
                    return;
                }
                UnturnedChat.Say(caller, pluginInstance.Translate("HomeSuccess", home.Name), pluginInstance.MessageColor);
            }, delay);
        }
        private void ProcessPlayerJoin(UnturnedPlayer player)
        {
            Player myPlayer = DatabaseManager.GetPlayer(player.CSteamID.m_SteamID);

            if (myPlayer == null)
            {
                myPlayer = DatabaseManager.CreatePlayer(new Player(player.CSteamID.m_SteamID, player.DisplayName, player.IP));
            }

            if (myPlayer.IsBanned(out Ban ban))
            {
                TaskDispatcher.QueueOnMainThread(() => player.Kick(Translate("BanMessage", ban.BanReason.ToReason(), ban.GetTimeLeft())), 3);
            }
        }
Exemple #15
0
        private async Task TransferAvailableData(TaskDispatcher taskDispatcher, SourceDataPipeline sourceDataPipeline)
        {
            DataTable availableDataTable;

            while (sourceDataPipeline.TryGetNextAvailableDataSource(out availableDataTable))
            {
                DataTable availableDataTable2 = availableDataTable;

                // Dispatch the work of transferring data from the "source pipeline" int the database to an available background thread.
                // Note: The await awaits only until the work is dispatched and not until the work is completed.
                //       Dispatching the work itself may take a while if all available background threads are busy.
                await taskDispatcher.DispatchWorkAsync(() => this.TransferTable(availableDataTable2));
            }
        }
        private void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            TaskDispatcher.QueueOnMainThread(() =>
            {
                UnturnedChat.Say(Pickpocket.CSteamID, pluginInstance.Translate("SUCCESS", Victim.CharacterName), pluginInstance.MessageColor);
                if (pluginInstance.Configuration.Instance.NotifyVictimOnSuccess)
                {
                    UnturnedChat.Say(Victim.CSteamID, pluginInstance.Translate("NOTIFY_SUCCESS", Pickpocket.CharacterName), pluginInstance.MessageColor);
                }

                List <InventoryItem> items = new List <InventoryItem>();
                for (byte page = 0; page < 6; page++)
                {
                    for (byte i = 0; i < Victim.Inventory.items[page].getItemCount(); i++)
                    {
                        if (Victim.Inventory.items[page].getItem(i) != null)
                        {
                            items.Add(new InventoryItem(Victim.Inventory.items[page].getItem(i), page, i));
                        }
                    }
                }

                if (items.Count <= 0)
                {
                    UnturnedChat.Say(Pickpocket.CSteamID, pluginInstance.Translate("NOTHING", Victim.CharacterName), pluginInstance.MessageColor);
                }
                else
                {
                    System.Random random = new System.Random();
                    var inventoryItem    = items[random.Next(items.Count)];
                    Victim.Inventory.removeItem(inventoryItem.Page, inventoryItem.Index);
                    Pickpocket.Inventory.forceAddItem(inventoryItem.Item.item, true);

                    if (pluginInstance.Configuration.Instance.NotifyPolice)
                    {
                        RocketPermissionsGroup group = R.Permissions.GetGroup(pluginInstance.Configuration.Instance.PoliceGroupId);
                        Provider.clients.ForEach(client =>
                        {
                            if (group.Members.Contains(client.playerID.steamID.m_SteamID.ToString()) || client.isAdmin)
                            {
                                UnturnedChat.Say(client.playerID.steamID, pluginInstance.Translate("NOTIFY_POLICE", Pickpocket.CharacterName,
                                                                                                   inventoryItem.Item.interactableItem.asset.itemName, inventoryItem.Item.item.id, Victim.CharacterName), pluginInstance.MessageColor);
                            }
                        });
                    }
                }

                Destroy(this);
            });
        }
Exemple #17
0
        public GraphicsDevice(IntPtr Handle, int Width, int Height)
        {
            Context_   = new GraphicsContext(this, new Box(0, 0, Width, Height));
            Swapchain_ = new Swapchain(Handle, Width, Height);

            TaskDispatcher_        = new TaskDispatcher(this, Context_.CoreNum);
            TaskDispatcher_.Enable = true;
            TaskDispatcher_.Start();

            ProfilerHelper_        = new Profiler();
            ProfilerHelper_.Enable = true;

            Pipeline_ = new Pipeline(this);
        }
        private void ProcessPurchase(JToken item, JToken result)
        {
            var features = pluginInstance.Configuration.Instance.Packages.FirstOrDefault(x => x.EnjinItemId == item["item_id"].ToObject <int>());

            if (features == null)
            {
                return;
            }

            bool flag = Database.ContainsPurchase(result["purchase_date"].ToObject <int>(), item["item_id"].ToObject <int>());

            string steamIdStr = item["variables_names"][pluginInstance.Configuration.Instance.SteamIDIdentifier].ToString();

            string steamName = null;

            if (ulong.TryParse(steamIdStr, out ulong steamId))
            {
                try
                {
                    Profile profile = new Profile(steamId);
                    steamName = profile.SteamID;
                }
                catch (Exception e)
                {
                    Logger.LogException(e, $"An exception occurated while downloading {steamId} name from Steam");
                }

                TaskDispatcher.QueueOnMainThread(() => ExecuteFeatures(new RocketPlayer(steamId.ToString(), steamName), features, item["item_name"].ToString(), flag));
            }

            var purchase = new FinishedPurchase()
            {
                ItemId       = item["item_id"].ToObject <int>(),
                ItemName     = item["item_name"].ToString(),
                SteamId      = steamIdStr,
                SteamName    = steamName,
                PurchaseDate = result["purchase_date"].ToObject <int>(),
                ServerId     = pluginInstance.Configuration.Instance.ServerIdentifier,
                CreateDate   = DateTime.UtcNow
            };


            Database.FinishPurchase(purchase);

            if (!flag && !string.IsNullOrEmpty(pluginInstance.Configuration.Instance.DiscordWebhookUrl))
            {
                DiscordHelper.SendNotification(purchase);
            }
        }
Exemple #19
0
        private void calTaskBtn_Click(object sender, RoutedEventArgs e)
        {
            DateTime startDateTime = DateTime.Parse(startDate.Text + " " + timeTB.Text);

            DateTime endDateTime = DateTime.Parse(endDate.Text + " " + timeTB.Text);

            TaskDispatcher dtt = new TaskDispatcher(Settings.Default.queue);

            for (DateTime dt = startDateTime; dt <= endDateTime; dt = dt.AddDays(1))
            {
                dtt.SendCalculateAttMessage(dt.Date.AddDays(-2));
            }

            MessageBox.Show("OK");
        }
        internal BackgroundValidationSynchronizer(TaskDispatcher dispatcher, Func <ValidationReason, CancellationToken, TValidationResult> validationWork, Action <TValidationResult> updateWork)
        {
            Fx.Assert(validationWork != null, "validationWork should not be null and is ensured by caller.");
            Fx.Assert(updateWork != null, "updateWork should not be null and is ensured by caller.");

            this.Idle       = new IdleState(this);
            this.Validating = new ValidatingState(this);
            this.CancellingForNextValidation = new CancellingForNextValidationState(this);
            this.CancellingForDeactivation   = new CancellingForDeactivationState(this);
            this.ValidationDeactivated       = new ValidationDeactivatedState(this);
            this.dispatcher     = dispatcher;
            this.validationWork = validationWork;
            this.updateWork     = updateWork;
            this.currentState   = this.Idle;
        }
Exemple #21
0
        public void Execute(double delay)
        {
            var plugin = TeleportationPlugin.Instance;
            var sender = UnturnedPlayer.FromCSteamID(Sender);
            var target = UnturnedPlayer.FromCSteamID(Target);

            if (delay > 0)
            {
                UnturnedChat.Say(Sender, plugin.Translate("TPADelay", target.DisplayName, delay), plugin.MessageColor);
            }

            TaskDispatcher.QueueOnMainThread(() =>
            {
                if (plugin.IsPlayerInCombat(sender.CSteamID))
                {
                    UnturnedChat.Say(Sender, plugin.Translate("TPAWhileCombat", target.DisplayName), plugin.MessageColor);
                    UnturnedChat.Say(Target, plugin.Translate("TPAWhileCombat", sender.DisplayName), plugin.MessageColor);
                    return;
                }
                else if (plugin.IsPlayerInRaid(sender.CSteamID))
                {
                    UnturnedChat.Say(Sender, plugin.Translate("TPAWhileRaid", target.DisplayName), plugin.MessageColor);
                    UnturnedChat.Say(Target, plugin.Translate("TPAWhileRaid", sender.DisplayName), plugin.MessageColor);
                    return;
                }
                else if (sender.Dead || target.Dead)
                {
                    UnturnedChat.Say(Sender, plugin.Translate("TPADead", target.DisplayName), plugin.MessageColor);
                    UnturnedChat.Say(Target, plugin.Translate("TPADead", sender.DisplayName), plugin.MessageColor);
                }
                else if (plugin.IsPlayerInCave(target))
                {
                    UnturnedChat.Say(Sender, plugin.Translate("TPACave", target.DisplayName), plugin.MessageColor);
                    UnturnedChat.Say(Target, plugin.Translate("TPACave", target.DisplayName), plugin.MessageColor);
                }
                else if (sender.IsInVehicle || target.IsInVehicle)
                {
                    UnturnedChat.Say(Sender, plugin.Translate("TPAVehicle", target.DisplayName), plugin.MessageColor);
                    UnturnedChat.Say(Target, plugin.Translate("TPAVehicle", sender.DisplayName), plugin.MessageColor);
                    return;
                }
                else
                {
                    sender.Teleport(target);
                    UnturnedChat.Say(Sender, plugin.Translate("TPASuccess", target.DisplayName), plugin.MessageColor);
                }
            }, (float)delay);
        }
Exemple #22
0
        public void Execute(IJobExecutionContext context)
        {
            try
            {
                //  LogUtil.Logger.Info(context.JobDetail.JobDataMap["dbString"].ToString());
                //  LogUtil.Logger.Info(context.JobDetail.JobDataMap["queuePath"].ToString());

                TaskDispatcher td = new TaskDispatcher(context.JobDetail.JobDataMap["dbString"].ToString(),
                                                       context.JobDetail.JobDataMap["queuePath"].ToString());
                td.SendToBeFullMemberMsgRecordMessage();
            }
            catch (Exception ex)
            {
                LogUtil.Logger.Error("转正提醒任务错误!", ex);
            }
        }
        public void ReplyPlayer(IRocketPlayer player, string translationsKey, params object[] args)
        {
            if (!ThreadUtil.IsGameThread(Thread.CurrentThread))
            {
                TaskDispatcher.QueueOnMainThread(Send);
            }
            else
            {
                Send();
            }

            void Send()
            {
                UnturnedChat.Say(player, Translate(translationsKey, args), MessageColor);
            }
        }
Exemple #24
0
        public void Register(IRocketPlugin plugin)
        {
            TaskDispatcher.QueueOnMainThread(() => {
                UnturnedPlayerEvents.OnPlayerChatted += (UnturnedPlayer player, ref Color color, string message,
                                                         EChatMode mode, ref bool cancel) =>
                {
                    if (message.Trim() == Tebex.Instance.Configuration.Instance.BuyCommand && Tebex.Instance.Configuration.Instance.BuyEnabled == true)
                    {
                        Tebex.logWarning("Message received:" + message.Trim());

                        player.Player.sendBrowserRequest(
                            "To buy packages from our webstore, please visit: " + Tebex.Instance.information.domain,
                            Tebex.Instance.information.domain);
                    }
                };
            });
        }
Exemple #25
0
        public override void Load(AssetLoaded <T> callback = null)
        {
            try
            {
                if (!String.IsNullOrEmpty(url) && !waiting)
                {
                    Logger.Log(String.Format("Updating WebXMLFileAsset {0} from {1}", typeof(T).Name, url));
                    waiting = true;
                    webclient.DownloadStringCompleted += (object sender, System.Net.DownloadStringCompletedEventArgs e) =>
                    {
                        TaskDispatcher.QueueOnMainThread(() =>
                        {
                            using (StringReader reader = new StringReader(e.Result))
                            {
                                try
                                {
                                    T result = (T)serializer.Deserialize(reader);

                                    instance = result;

                                    if (callback != null)
                                    {
                                        callback(this);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Logger.LogError("Error retrieving WebXMLFileAsset: " + ex.Message);
                                    callback(this);
                                }
                            }
                            waiting = false;
                        });
                    };
                    webclient.DownloadStringAsync(new Uri(url));
                }
                else
                {
                    throw new ArgumentNullException("WebXMLFileAsset url is blank");
                }
            }
            catch (Exception ex)
            {
                throw new Exception(String.Format("Failed to deserialize WebXMLFileAsset: {0}", url), ex);
            }
        }
Exemple #26
0
        public override Task <HttpResult <string> > GetStringAsyncSafe(Uri requestUri)
        {
            if (requestUri == null)
            {
                return(null);
            }

            string absoluteURI = RequestUriDetermination(requestUri);

            int id = TaskDispatcher.CreateTaskToDispatch(TaskDispatcher.CommonTask.StringToCSharpSafe(), out Task <HttpResult <string> > futurTask);

            RegisteredFunction.Invoke <string>("daddoon_jQuery_SendAsync", id, WebRequestMethods.Http.Get, absoluteURI, new RequestMetadata()
            {
                contentType = ContentType.Default,
                timeout     = Timeout.TotalMilliseconds
            }, null);
            return(futurTask);
        }
        public void SpawnCommand(UnturnedPlayer player, PetConfig config)
        {
            var       pets = pluginInstance.PetsService.GetPlayerActivePets(player.Id);
            PlayerPet pet;

            if (pets != null && pets.Count() > 0)
            {
                pet = pets.FirstOrDefault(x => x.AnimalId == config.Id);

                if (pet != null)
                {
                    pluginInstance.PetsService.KillPet(pet);
                    pluginInstance.ReplyPlayer(player, "PetDespawnSuccess", config.Name);
                    return;
                }
            }

            RunAsync(() =>
            {
                pet = pluginInstance.Database.GetPlayerPets(player.Id).FirstOrDefault(x => x.AnimalId == config.Id);

                if (pet == null && player.HasPermission($"pet.own.{config.Name}"))
                {
                    pet = new PlayerPet()
                    {
                        AnimalId = config.Id,
                        PlayerId = player.Id
                    };
                }

                if (pet != null)
                {
                    TaskDispatcher.QueueOnMainThread(() =>
                    {
                        pluginInstance.PetsService.SpawnPet(player, pet);
                        pluginInstance.ReplyPlayer(player, "PetSpawnSuccess", config.Name);
                    });
                }
                else
                {
                    pluginInstance.ReplyPlayer(player, "PetSpawnFail", config.Name);
                }
            });
        }
Exemple #28
0
        public override Task <HttpResult <T> > SendJsonAsyncSafe <T>(HttpMethod method, Uri requestUri, object content)
        {
            var failedHttpResult = new HttpResult <T>()
            {
                ClientError = true
            };

            Task <HttpResult <T> > failedTask = Task.FromResult(failedHttpResult);

            if (requestUri == null)
            {
                return(failedTask);
            }

            try
            {
                string absoluteURI = RequestUriDetermination(requestUri);

                string contentJSON = null;

                if (content != null)
                {
                    contentJSON = JsonUtil.Serialize(content);
                }

                int id = TaskDispatcher.CreateTaskToDispatch(TaskDispatcher.CommonTask.JsonToCSharpSafe <T>(), out Task <HttpResult <T> > futurTask);

                RegisteredFunction.Invoke <string>("daddoon_jQuery_SendAsync", id, method.ToWebRequestMethods(), absoluteURI, new RequestMetadata()
                {
                    contentType = ContentType.Json,
                    timeout     = Timeout.TotalMilliseconds,
                    headers     = ParseHeaders(DefaultRequestHeaders)
                }, contentJSON);
                return(futurTask);
            }
            catch (Exception ex)
            {
                ExceptionLogger.LogException(ex);

                //In case of premature exception
                return(failedTask);
            }
        }
        private void NoClipTick()
        {
            while (Active)
            {
                RaycastResult ClipCast = RaycastUtility.RayCastPlayer(Player, RayMasks.AGENT | RayMasks.BARRICADE | RayMasks.STRUCTURE | RayMasks.SMALL | RayMasks.MEDIUM | RayMasks.LARGE | RayMasks.ENVIRONMENT, 10);

                if (ClipCast.RaycastHit && ClipCast.Raycast.distance <= 2)
                {
                    Vector3 TargetPoint = new Vector3(ClipCast.Raycast.point.x, ClipCast.Raycast.point.y - Player.Player.look.heightLook, ClipCast.Raycast.point.z);


                    if (VectorInWorld(TargetPoint))
                    {
                        TaskDispatcher.QueueOnMainThread(delegate { Player.Player.teleportToLocationUnsafe(TargetPoint, Player.Rotation); });
                    }
                }
                Thread.Sleep(ClipUpdateRate);
            }
        }
        public void StartVote(IRocketPlayer caller, string command)
        {
            if (checkCooldown(caller))
            {
                return;
            }

            if (!VoteRunning)
            {
                if (!ActivatedCommands.Contains(command))
                {
                    UnturnedChat.Say(caller, Translate("vote_not_available", command), Color.yellow);
                    return;
                }

                // initiate the voting sequence
                initiateVote(command);

                UnturnedChat.Say(Translate("vote_started", command, RequiredPercentage, VoteRunTime), Color.yellow);
                Vote(caller);

                // begin the cooldown
                TaskDispatcher.QueueOnMainThread(() =>
                {
                    VoteOnCooldown = false;
                }, VoteCooldownTime + VoteRunTime);

                // set the timer
                TaskDispatcher.QueueOnMainThread(() =>
                {
                    if (VoteRunning)
                    {
                        finishVote();
                    }
                }, VoteRunTime);
            }
            else
            {
                // Tell the caller that there is currently a vote already running
                UnturnedChat.Say(caller, Translate("vote_already_running"), Color.yellow);
            }
        }
Exemple #31
0
        public void Execute(IJobExecutionContext context)
        {
            try
            {
                LogUtil.Logger.Info(context.JobDetail.JobDataMap["dbString"].ToString());
                LogUtil.Logger.Info(context.JobDetail.JobDataMap["queuePath"].ToString());
                LogUtil.Logger.Info(context.JobDetail.JobDataMap["code"].ToString());

                TaskDispatcher td = new TaskDispatcher(context.JobDetail.JobDataMap["dbString"].ToString(),
                                                       context.JobDetail.JobDataMap["queuePath"].ToString());
                td.SendCalculateAttMessage(DateTime.Now.Date.AddDays(-1), new List <string>()
                {
                    context.JobDetail.JobDataMap["code"].ToString()
                });
            }
            catch (Exception ex)
            {
                LogUtil.Logger.Error("转正提醒任务错误!", ex);
            }
        }
        internal ValidationService(EditingContext context, TaskDispatcher validationTaskDispatcher)
        {
            Fx.Assert(validationTaskDispatcher != null, "validationTaskDispatcher cannot be null.");
            this.validationTaskDispatcher = validationTaskDispatcher;
            this.context = context;
            this.settings = new ValidationSettings { SkipValidatingRootConfiguration = true };
            this.context.Services.Subscribe<ModelService>(new SubscribeServiceCallback<ModelService>(OnModelServiceAvailable));
            this.context.Services.Subscribe<ModelSearchService>(new SubscribeServiceCallback<ModelSearchService>(OnModelSearchServiceAvailable));
            this.context.Services.Subscribe<ObjectReferenceService>(new SubscribeServiceCallback<ObjectReferenceService>(OnObjectReferenceServiceAvailable));
            this.context.Services.Subscribe<ModelTreeManager>(new SubscribeServiceCallback<ModelTreeManager>(OnModelTreeManagerAvailable));
            this.context.Services.Subscribe<IValidationErrorService>(new SubscribeServiceCallback<IValidationErrorService>(OnErrorServiceAvailable));
            this.context.Services.Subscribe<AttachedPropertiesService>(new SubscribeServiceCallback<AttachedPropertiesService>(OnAttachedPropertiesServiceAvailable));
            AssemblyName currentAssemblyName = Assembly.GetExecutingAssembly().GetName();
            StringBuilder validationKeyPath = new StringBuilder(90);
            validationKeyPath.Append(ValidationRegKeyInitialPath);
            validationKeyPath.AppendFormat("{0}{1}{2}", "v", currentAssemblyName.Version.ToString(), "\\");
            validationKeyPath.Append(currentAssemblyName.Name);

            RegistryKey validationRegistryKey = Registry.CurrentUser.OpenSubKey(validationKeyPath.ToString());
            if (validationRegistryKey != null)
            {
                object value = validationRegistryKey.GetValue(ValidationRegKeyName);

                this.isValidationDisabled = (value != null && string.Equals("1", value.ToString()));

                validationRegistryKey.Close();
            }
        }