Ejemplo n.º 1
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Indexes content within the given time farame
        /// </summary>
        /// -----------------------------------------------------------------------------
        internal void IndexContent()
        {
            //Index TAB META-DATA
            var tabIndexer                 = new TabIndexer();
            var searchDocsCount            = GetAndStoreSearchDocuments(tabIndexer);
            var indexedSearchDocumentCount = searchDocsCount;

            AddIdexingResults("Tabs Indexed", searchDocsCount);

            //Index MODULE META-DATA from modules that inherit from ModuleSearchBase
            var moduleIndexer = new ModuleIndexer(true);

            searchDocsCount             = GetAndStoreModuleMetaData(moduleIndexer);
            indexedSearchDocumentCount += searchDocsCount;
            AddIdexingResults("Modules (Metadata) Indexed", searchDocsCount);

            //Index MODULE CONTENT from modules that inherit from ModuleSearchBase
            searchDocsCount             = GetAndStoreSearchDocuments(moduleIndexer);
            indexedSearchDocumentCount += searchDocsCount;

            //Both ModuleSearchBase and ISearchable module content count
            AddIdexingResults("Modules (Content) Indexed", searchDocsCount);

            if (!HostController.Instance.GetBoolean("DisableUserCrawling", false))
            {
                //Index User data
                var userIndexer = new UserIndexer();
                var userIndexed = GetAndStoreSearchDocuments(userIndexer);
                indexedSearchDocumentCount += userIndexed;
                AddIdexingResults("Users", userIndexed);
            }

            SchedulerItem.AddLogNote("<br/><b>Total Items Indexed: " + indexedSearchDocumentCount + "</b>");
        }
 public bool Charge(UUID agentID, int amount, string text, int daysUntilNextCharge, TransactionType type, string identifer, bool chargeImmediately)
 {
     IMoneyModule moneyModule = m_registry.RequestModuleInterface<IMoneyModule>();
     if (moneyModule != null)
     {
         if (chargeImmediately)
         {
             bool success = moneyModule.Charge(agentID, amount, text, type);
             if (!success)
                 return false;
         }
         IScheduleService scheduler = m_registry.RequestModuleInterface<IScheduleService>();
         if (scheduler != null)
         {
             OSDMap itemInfo = new OSDMap();
             itemInfo.Add("AgentID", agentID);
             itemInfo.Add("Amount", amount);
             itemInfo.Add("Text", text);
             itemInfo.Add("Type", (int)type);
             SchedulerItem item = new SchedulerItem("ScheduledPayment" + identifer,
                                                    OSDParser.SerializeJsonString(itemInfo), false,
                                                    DateTime.UtcNow, daysUntilNextCharge, RepeatType.days, agentID);
             itemInfo.Add("SchedulerID", item.id);
             scheduler.Save(item);
         }
     }
     return true;
 }
Ejemplo n.º 3
0
 public void SaveScheduler(SchedulerItem schedulerItem)
 {
     if (schedulerItem.ProfileId == 0)
     {
         throw new Exception("bad Email setting - is null");
     }
     using (var cmd = GetCommand("PriceSender_SaveScheduler"))
     {
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.AddParameter("id", schedulerItem.Id);
         cmd.AddParameter("groupId", schedulerItem.GroupId);
         cmd.AddParameter("clientId", schedulerItem.ClientId);
         cmd.AddParameter("email", schedulerItem.Email);
         cmd.AddParameter("daysSend", schedulerItem.DaysSend);
         cmd.AddParameter("timeSend", schedulerItem.TimesSend);
         cmd.AddParameter("fileName", schedulerItem.FileName);
         cmd.AddParameter("fileConfig", schedulerItem.FileConfig);
         cmd.AddParameter("fileType", schedulerItem.FileType);
         cmd.AddParameter("isEnabled", schedulerItem.IsEnabled);
         cmd.AddParameter("mailSubject", schedulerItem.Subject);
         cmd.AddParameter("mailBody", schedulerItem.Body);
         cmd.AddParameter("profileId", schedulerItem.ProfileId);
         var newId = (cmd.ExecuteValue() as int?) ?? 0;
         if (newId != 0)
         {
             schedulerItem.Id = newId;
         }
     }
 }
Ejemplo n.º 4
0
        public bool Charge(UUID agentID, int amount, string text, int daysUntilNextCharge, TransactionType type, string identifer, bool chargeImmediately)
        {
            IMoneyModule moneyModule = m_registry.RequestModuleInterface <IMoneyModule>();

            if (moneyModule != null)
            {
                if (chargeImmediately)
                {
                    bool success = moneyModule.Charge(agentID, amount, text, type);
                    if (!success)
                    {
                        return(false);
                    }
                }
                IScheduleService scheduler = m_registry.RequestModuleInterface <IScheduleService>();
                if (scheduler != null)
                {
                    OSDMap itemInfo = new OSDMap();
                    itemInfo.Add("AgentID", agentID);
                    itemInfo.Add("Amount", amount);
                    itemInfo.Add("Text", text);
                    itemInfo.Add("Type", (int)type);
                    SchedulerItem item = new SchedulerItem("ScheduledPayment" + identifer,
                                                           OSDParser.SerializeJsonString(itemInfo), false,
                                                           DateTime.UtcNow, daysUntilNextCharge, RepeatType.days, agentID);
                    itemInfo.Add("SchedulerID", item.id);
                    scheduler.Save(item);
                }
            }
            return(true);
        }
Ejemplo n.º 5
0
        private void TimerElasped(object sender, ElapsedEventArgs elapsedEventArgs)
        {
            taskTimer.Enabled = false;
            IUserAccountService userService = m_registry.RequestModuleInterface <IUserAccountService>();
            List <UserAccount>  users       = new List <UserAccount>();

            users = userService.GetUserAccounts(new List <UUID> {
                UUID.Zero
            }, 0, m_options.StipendsPremiumOnly ? 600 : 0);
            foreach (UserAccount user in users)
            {
                SchedulerItem i = m_scheduler.Get(user.PrincipalID.ToString(), "StipendsPayout");
                if (i != null)
                {
                    continue;
                }
                RepeatType runevertype = (RepeatType)Enum.Parse(typeof(RepeatType), m_options.StipendsEveryType);
                int        runevery    = m_options.StipendsEvery;
                m_scheduler.Save(new SchedulerItem("StipendsPayout",
                                                   OSDParser.SerializeJsonString(
                                                       new StipendsInfo()
                {
                    AgentID = user.PrincipalID
                }.ToOSD()),
                                                   false, UnixTimeStampToDateTime(user.Created), runevery,
                                                   runevertype, user.PrincipalID)
                {
                    HisotryKeep = true, HistoryReciept = true
                });
            }
        }
 public void HistoryDeleteOld(SchedulerItem I)
 {
     if ((I.id != "") && (I.HistoryLastID != ""))
     {
         m_Gd.Delete("scheduler_history", "WHERE id != '" + I.HistoryLastID + "' AND scheduler_id = '" + I.id + "'");
     }
 }
 public SchedulerItem SaveHistoryComplete(SchedulerItem I)
 {
     m_Gd.Update("scheduler_history", new object[] { 1, Util.ToUnixTime(I.TimeToRun), "" },
                 new[] { "is_complete", "complete_time", "reciept" }, new[] { "id" },
                 new object[] { I.HistoryLastID });
     return(I);
 }
Ejemplo n.º 8
0
 private Action SendStatisticSchedulerAction(SchedulerItem scheduler) => () =>
 {
     foreach (var recipient in recipients)
     {
         //mailManager.SendEmailAsync(recipient.UserInformation.FirstName, recipient.UserInformation.Email, scheduler.Message);
     }
 };
        public bool Charge(UUID agentID, int amount, string text, int daysUntilNextCharge)
        {
            IMoneyModule moneyModule = m_registry.RequestModuleInterface <IMoneyModule>();

            if (moneyModule != null)
            {
                bool success = moneyModule.Charge(agentID, amount, text);
                if (!success)
                {
                    return(false);
                }
                IScheduleService scheduler = m_registry.RequestModuleInterface <IScheduleService>();
                if (scheduler != null)
                {
                    OSDMap itemInfo = new OSDMap();
                    itemInfo.Add("AgentID", agentID);
                    itemInfo.Add("Amount", amount);
                    itemInfo.Add("Text", text);
                    SchedulerItem item = new SchedulerItem("ScheduledPayment",
                                                           OSDParser.SerializeJsonString(itemInfo), false,
                                                           DateTime.Now.AddDays(daysUntilNextCharge) - DateTime.Now);
                    itemInfo.Add("SchedulerID", item.id);
                    scheduler.Save(item);
                }
            }
            return(true);
        }
Ejemplo n.º 10
0
 public string Save(SchedulerItem I)
 {
     if (m_doRemoteCalls)
     {
         return((string)DoRemote(I));
     }
     return(m_database.SchedulerSave(I));
 }
 private object[] GetDBValues(SchedulerItem I)
 {
     return(new object[]
     {
         I.id, I.FireFunction, I.FireParams, (I.RunOnce)?1:0, I.RunEvery, Util.ToUnixTime(I.TimeToRun),
         (I.HisotryKeep)?1:0, (I.HistoryReciept)?1:0, I.HistoryLastID, Util.ToUnixTime(I.CreateTime),
         (I.Enabled)?1:0
     });
 }
Ejemplo n.º 12
0
 public bool Register(SchedulerItem I, OnGenericEventHandler handler)
 {
     if (m_doRemoteCalls)
     {
         return(false);
     }
     EventManager.RegisterEventHandler(I.FireFunction, handler);
     return(true);
 }
 public void HistoryDeleteOld(SchedulerItem itm)
 {
     if ((itm.id != "") && (itm.HistoryLastID != ""))
     {
         QueryFilter filter = new QueryFilter();
         filter.andNotFilters["id"]        = itm.HistoryLastID;
         filter.andFilters["scheduler_id"] = itm.id;
         GD.Delete("scheduler_history", filter);
     }
 }
Ejemplo n.º 14
0
 public void HistoryDeleteOld(SchedulerItem I)
 {
     if ((I.id != "") && (I.HistoryLastID != ""))
     {
         QueryFilter filter = new QueryFilter();
         filter.andNotFilters["id"]        = I.HistoryLastID;
         filter.andFilters["scheduler_id"] = I.id;
         m_Gd.Delete("scheduler_history", filter);
     }
 }
Ejemplo n.º 15
0
        public bool IsScheduling()
        {
            SchedulerItem item = _homegenie.ProgramEngine.SchedulerService.Get(_schedulename);

            if (item != null)
            {
                return(_homegenie.ProgramEngine.SchedulerService.IsScheduling(item.CronExpression));
            }
            return(false);
        }
Ejemplo n.º 16
0
        private object DeleteUserInformation(string functionname, object parameters)
        {
            UUID          user = (UUID)parameters;
            SchedulerItem i    = m_scheduler.Get(user.ToString(), "StipendsPayout");

            if (i != null)
            {
                m_scheduler.Remove(i.id);
            }
            return(null);
        }
Ejemplo n.º 17
0
        private static bool IsTimeCome(DateTime time, SchedulerItem item)
        {
            var isNextSend = (item.NextSend - time) <= _offset;
            var isLastSend = ((time + _offsetLastSend) >= item.LastSend);

            if (isLastSend && isNextSend)
            {
                return(true);
            }
            return(false);
        }
 public string SchedulerSave(SchedulerItem I)
 {
     if (SchedulerExist(I.id))
     {
         m_Gd.Update("scheduler", GetDBValues(I), theFields, new[] { "id" }, new object[] { I.id });
     }
     else
     {
         m_Gd.Insert("scheduler", theFields, GetDBValues(I));
     }
     return I.id;
 }
 public string SchedulerSave(SchedulerItem I)
 {
     if (SchedulerExist(I.id))
     {
         m_Gd.Update("scheduler", GetDBValues(I), theFields, new[] { "id" }, new object[] { I.id });
     }
     else
     {
         m_Gd.Insert("scheduler", theFields, GetDBValues(I));
     }
     return(I.id);
 }
Ejemplo n.º 20
0
        private void FireEvent(SchedulerItem I)
        {
            try
            {
                // save chagnes before it fires in case its chagned during the fire
                I = m_database.SaveHistory(I);

                if (I.RunOnce)
                {
                    I.Enabled = false;
                }
                if (I.Enabled)
                {
                    I.CalculateNextRunTime(I.TimeToRun);
                }

                if (!I.HisotryKeep)
                {
                    m_database.HistoryDeleteOld(I);
                }
                m_database.SchedulerSave(I);

                // now fire
                List <Object> reciept = EventManager.FireGenericEventHandler(I.FireFunction, I.FireParams);
                if (!I.HistoryReciept)
                {
                    I = m_database.SaveHistoryComplete(I);
                }
                else
                {
#if (!ISWIN)
                    foreach (Object o in reciept)
                    {
                        string results = (string)o;
                        if (results != "")
                        {
                            m_database.SaveHistoryCompleteReciept(I.HistoryLastID, results);
                        }
                    }
#else
                    foreach (string results in reciept.Cast <string>().Where(results => results != ""))
                    {
                        m_database.SaveHistoryCompleteReciept(I.HistoryLastID, results);
                    }
#endif
                }
            }
            catch (Exception e)
            {
                MainConsole.Instance.Error("[Scheduler] FireEvent Error " + I.id, e);
            }
        }
        public SchedulerItem SaveHistory(SchedulerItem I)
        {
            string his_id = UUID.Random().ToString();

            m_Gd.Insert("scheduler_history",
                        new[]
                        { "id", "scheduler_id", "ran_time", "run_time", "is_complete", "complete_time", "reciept" },
                        new object[]
                        { his_id, I.id, Util.ToUnixTime(DateTime.UtcNow), Util.ToUnixTime(I.TimeToRun), 0, 0, "" }
                        );
            I.HistoryLastID = his_id;
            return(I);
        }
Ejemplo n.º 22
0
        public SchedulerItem SaveHistoryComplete(SchedulerItem I)
        {
            Dictionary <string, object> values = new Dictionary <string, object>(3);

            values["is_complete"]   = true;
            values["complete_time"] = DateTime.UtcNow;
            values["reciept"]       = "";

            QueryFilter filter = new QueryFilter();

            filter.andFilters["id"] = I.HistoryLastID;

            m_Gd.Update("scheduler_history", values, null, filter, null, null);

            return(I);
        }
 private object[] GetDBValues(SchedulerItem I)
 {
     return(new object[] {
         I.id,
         I.FireFunction,
         I.FireParams,
         I.RunOnce,
         I.RunEvery,
         I.TimeToRun,
         I.HisotryKeep,
         I.HistoryReciept,
         I.HistoryLastID,
         I.CreateTime,
         I.StartTime,
         (int)I.RunEveryType,
         I.Enabled
     });
 }
Ejemplo n.º 24
0
        public SchedulerItem SaveHistory(SchedulerItem I)
        {
            string his_id = UUID.Random().ToString();

            Dictionary <string, object> row = new Dictionary <string, object>(7);

            row["id"]            = his_id;
            row["scheduler_id"]  = I.id;
            row["ran_time"]      = DateTime.UtcNow;
            row["run_time"]      = I.TimeToRun;
            row["is_complete"]   = 0;
            row["complete_time"] = DateTime.UtcNow;
            row["reciept"]       = "";
            m_Gd.Insert("scheduler_history", row);

            I.HistoryLastID = his_id;
            return(I);
        }
Ejemplo n.º 25
0
        private object CreateUserInformation(string functionname, object parameters)
        {
            UUID userid = (UUID)parameters;
            IUserAccountService userService = m_registry.RequestModuleInterface <IUserAccountService>();
            UserAccount         user        = userService.GetUserAccount(null, userid);

            if (user == null)
            {
                return(null);
            }
            if ((m_options.StipendsPremiumOnly) && ((user.UserFlags & Constants.USER_FLAG_MEMBER) != Constants.USER_FLAG_MEMBER))
            {
                return(null);
            }

            // Don't set a StipendPayment for System Users
            if (Utilities.IsSystemUser(user.PrincipalID))
            {
                return(null);
            }

            SchedulerItem i = m_scheduler.Get(user.PrincipalID.ToString(), "StipendsPayout");

            if (i != null)
            {
                return(null);
            }
            // Scheduler needs to get 1 date/time to set for "PayDay" - Fly 17/11/2014
            RepeatType runevertype = (RepeatType)Enum.Parse(typeof(RepeatType), m_options.StipendsEveryType);
            int        runevery    = m_options.StipendsEvery;

            m_scheduler.Save(new SchedulerItem("StipendsPayout",
                                               OSDParser.SerializeJsonString(
                                                   new StipendsInfo()
            {
                AgentID = user.PrincipalID
            }.ToOSD()),
                                               false, UnixTimeStampToDateTime(user.Created), runevery,
                                               runevertype, user.PrincipalID)
            {
                HistoryKeep = true, HistoryReceipt = true
            });
            return(null);
        }
Ejemplo n.º 26
0
        private void FireEvent(SchedulerItem I)
        {
            try
            {
                I = m_database.SaveHistory(I);
                List <Object> reciept = EventManager.FireGenericEventHandler(I.FireFunction, I.FireParams);
                if (!I.HistoryReciept)
                {
                    I = m_database.SaveHistoryComplete(I);
                }
                else
                {
                    foreach (Object o in reciept)
                    {
                        string results = (string)o;
                        if (results != "")
                        {
                            m_database.SaveHistoryCompleteReciept(I.HistoryLastID, results);
                        }
                    }
                }

                if (I.RunOnce)
                {
                    I.Enabled = false;
                }
                if (I.Enabled)
                {
                    I.TimeToRun = I.TimeToRun.AddSeconds(I.RunEvery);
                }

                if (!I.HisotryKeep)
                {
                    m_database.HistoryDeleteOld(I);
                }

                m_database.SchedulerSave(I);
            }
            catch (Exception e)
            {
                MainConsole.Instance.Error("[Scheduler] FireEvent Error " + I.id, e);
            }
        }
 object[] GetDBValues(SchedulerItem itm)
 {
     return(new object[]
     {
         itm.id,
         itm.FireFunction,
         itm.FireParams,
         itm.RunOnce,
         itm.RunEvery,
         itm.TimeToRun,                    // "run_next" field in db
         itm.HistoryKeep,
         itm.HistoryReceipt,
         itm.HistoryLastID,
         itm.CreateTime,
         itm.StartTime,
         (int)itm.RunEveryType,
         itm.Enabled,
         itm.ScheduleFor
     });
 }
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Indexes content within the given time farame
        /// </summary>
        /// -----------------------------------------------------------------------------
        internal void IndexContent()
        {
            //Index TAB META-DATA
            TabIndexer tabIndexer                 = new TabIndexer();
            int        searchDocsCount            = GetAndStoreSearchDocuments(tabIndexer);
            int        indexedSearchDocumentCount = searchDocsCount;

            AddIdexingResults("Tabs Indexed", searchDocsCount);

            //Index MODULE META-DATA from modules that inherit from ModuleSearchBase
            ModuleIndexer moduleIndexer = new ModuleIndexer(true);

            searchDocsCount             = GetAndStoreModuleMetaData(moduleIndexer);
            indexedSearchDocumentCount += searchDocsCount;
            AddIdexingResults("Modules (Metadata) Indexed", searchDocsCount);

            //Index MODULE CONTENT from modules that inherit from ModuleSearchBase
            searchDocsCount             = GetAndStoreSearchDocuments(moduleIndexer);
            indexedSearchDocumentCount += searchDocsCount;

            //Index all Defunct ISearchable module content
#pragma warning disable 0618
            SearchItemInfoCollection searchItems = GetContent(moduleIndexer);
            SearchDataStoreProvider.Instance().StoreSearchItems(searchItems);
#pragma warning restore 0618
            indexedSearchDocumentCount += searchItems.Count;

            //Both ModuleSearchBase and ISearchable module content count
            AddIdexingResults("Modules (Content) Indexed", searchDocsCount + searchItems.Count);

            if (!HostController.Instance.GetBoolean("DisableUserCrawling", false))
            {
                //Index User data
                UserIndexer userIndexer = new UserIndexer();
                int         userIndexed = GetAndStoreSearchDocuments(userIndexer);
                indexedSearchDocumentCount += userIndexed;
                AddIdexingResults("Users", userIndexed);
            }

            SchedulerItem.AddLogNote("<br/><b>Total Items Indexed: " + indexedSearchDocumentCount + "</b>");
        }
Ejemplo n.º 29
0
        private static SchedulerItem CreatePriceSendModel(DbDataReader r)
        {
            var model = new SchedulerItem
            {
                Id         = r.GetValue <int>("Id"),
                GroupId    = r.GetValue <int>("PriceGroupId"),
                ClientId   = r.GetValue <int>("ClientId"),
                Email      = r.GetValue <string>("Email"),
                DaysSend   = r.GetValue <string>("DaysSend"),
                TimesSend  = r.GetValue <string>("TimeSend"),
                FileName   = r.GetValue <string>("FileName"),
                FileConfig = r.GetValue <string>("FileConfig"),
                FileType   = r.GetValue <string>("FileType"),
                IsEnabled  = r.GetValue <bool>("IsEnabled"),
                Subject    = r.GetValue <string>("MailSubject"),
                Body       = r.GetValue <string>("MailBody"),
                ProfileId  = r.GetValue <int>("ProfileId"),
                LastSend   = r.GetValue <DateTime>("LastSend")
            };

            return(model);
        }
Ejemplo n.º 30
0
        public string SchedulerSave(SchedulerItem I)
        {
            object[] dbv = GetDBValues(I);
            Dictionary <string, object> values = new Dictionary <string, object>(dbv.Length);
            int i = 0;

            foreach (object value in dbv)
            {
                values[theFields[i++]] = value;
            }
            if (SchedulerExist(I.id))
            {
                QueryFilter filter = new QueryFilter();
                filter.andFilters["id"] = I.id;

                m_Gd.Update("scheduler", values, null, filter, null, null);
            }
            else
            {
                m_Gd.Insert("scheduler", values);
            }
            return(I.id);
        }
Ejemplo n.º 31
0
        public async Task <int> CreateSchedulerItemAsync(SchedulerItemDTO schedulerItemDTO)
        {
            var schedulerItemsWithSameName = await schedulerItemRepository.GetByAsync(s => s.Name == schedulerItemDTO.Name);

            if (schedulerItemsWithSameName.Any())
            {
                throw new Exception("Scheduler with same name already exists.");
            }

            var schedulerItem = SchedulerItem.Insert(schedulerItemDTO.Name,
                                                     schedulerItemDTO.MessageSubject,
                                                     schedulerItemDTO.MessageBody,
                                                     schedulerItemDTO.ExecutionFrequency,
                                                     schedulerItemDTO.ExecutionHours,
                                                     schedulerItemDTO.ExecutionMinutes,
                                                     schedulerItemDTO.ExecutionDayOfWeek);

            await schedulerItemRepository.InsertAsync(schedulerItem);

            await schedulerItemRepository.SaveChangesAsync();

            return(schedulerItem.Id);
        }
Ejemplo n.º 32
0
        private object CreateUserInformation(string functionname, object parameters)
        {
            UUID userid = (UUID)parameters;
            IUserAccountService userService = m_registry.RequestModuleInterface <IUserAccountService>();
            UserAccount         user        = userService.GetUserAccount(null, userid);

            if (user == null)
            {
                return(null);
            }
            if ((m_options.StipendsPremiumOnly) && ((user.UserFlags & 600) != 600))
            {
                return(null);
            }

            SchedulerItem i = m_scheduler.Get(user.PrincipalID.ToString(), "StipendsPayout");

            if (i != null)
            {
                return(null);
            }
            RepeatType runevertype = (RepeatType)Enum.Parse(typeof(RepeatType), m_options.StipendsEveryType);
            int        runevery    = m_options.StipendsEvery;

            m_scheduler.Save(new SchedulerItem("StipendsPayout",
                                               OSDParser.SerializeJsonString(
                                                   new StipendsInfo()
            {
                AgentID = user.PrincipalID
            }.ToOSD()),
                                               false, UnixTimeStampToDateTime(user.Created), runevery,
                                               runevertype, user.PrincipalID)
            {
                HisotryKeep = true, HistoryReciept = true
            });
            return(null);
        }
 public SchedulerItem SaveHistory(SchedulerItem I)
 {
     string his_id = UUID.Random().ToString();
     m_Gd.Insert("scheduler_history",
                 new[]
                     {"id", "scheduler_id", "ran_time", "run_time", "is_complete", "complete_time", "reciept"},
                 new object[]
                     {his_id, I.id, Util.ToUnixTime(DateTime.UtcNow), Util.ToUnixTime(I.TimeToRun), 0, 0, ""}
         );
     I.HistoryLastID = his_id;
     return I;
 }
 public SchedulerItem SaveHistoryComplete(SchedulerItem I)
 {
     m_Gd.Update("scheduler_history", new object[] { 1, Util.ToUnixTime(I.TimeToRun), "" },
                 new[] { "is_complete", "complete_time", "reciept" }, new[] { "id" },
                 new object[] { I.HistoryLastID });
     return I;
 }
Ejemplo n.º 35
0
 public string Save(SchedulerItem I)
 {
     return m_database.SchedulerSave(I);
 }
 public void HisotryDeleteOld(SchedulerItem I)
 {
     if ((I.id != "") && (I.HistoryLastID != ""))
         m_Gd.Delete("scheduler_history", "WHERE id != '" + I.HistoryLastID + "' AND scheduler_id = '" + I.id + "'");
 }
Ejemplo n.º 37
0
        private void FireEvent(SchedulerItem I)
        {
            try
            {
                I = m_database.SaveHistory(I);
                List<Object> reciept = EventManager.FireGenericEventHandler(I.FireFunction, I.FireParams);
                if (!I.HistoryReciept)
                    I = m_database.SaveHistoryComplete(I);
                else
                {
                    foreach (Object o in reciept)
                    {
                        string results = (string)o;
                        if (results != "")
                        {
                            m_database.SaveHistoryCompleteReciept(I.HistoryLastID, results);
                        }
                    }
                }
            
                if (I.RunOnce) I.Enabled = false;
                if (I.Enabled) I.TimeToRun = I.TimeToRun.AddSeconds(I.RunEvery);

                if (!I.HisotryKeep)
                    m_database.HisotryDeleteOld(I);

                m_database.SchedulerSave(I);
            }
            catch (Exception e)
            {
                MainConsole.Instance.Error("[Scheduler] FireEvent Error " + I.id, e);
            }
        }
Ejemplo n.º 38
0
        public SchedulerItem SaveHistoryComplete(SchedulerItem I)
        {
            Dictionary<string, object> values = new Dictionary<string, object>(3);
            values["is_complete"] = true;
            values["complete_time"] = DateTime.UtcNow;
            values["reciept"] = "";

            QueryFilter filter = new QueryFilter();
            filter.andFilters["id"] = I.HistoryLastID;

            m_Gd.Update("scheduler_history", values, null, filter, null, null);

            return I;
        }
 private object[] GetDBValues(SchedulerItem I)
 {
     return new object[]
                {
                    I.id, I.FireFunction, I.FireParams, (I.RunOnce)?1:0, I.RunEvery, Util.ToUnixTime(I.TimeToRun), 
                    (I.HisotryKeep)?1:0,(I.HistoryReciept)?1:0, I.HistoryLastID, Util.ToUnixTime(I.CreateTime), 
                    (I.Enabled)?1:0
                };
 }
Ejemplo n.º 40
0
 public bool Register(SchedulerItem I, OnGenericEventHandler handler)
 {
     if (m_doRemoteCalls) return false;
     EventManager.RegisterEventHandler(I.FireFunction, handler);
     return true;
 }
Ejemplo n.º 41
0
 public string Save(SchedulerItem I)
 {
     if (m_doRemoteCalls)
         return (string) DoRemote(I);
     return m_database.SchedulerSave(I);
 }
Ejemplo n.º 42
0
 private object[] GetDBValues(SchedulerItem I)
 {
     return new object[]
                {
                    I.id,
                    I.FireFunction,
                    I.FireParams,
                    I.RunOnce,
                    I.RunEvery,
                    I.TimeToRun,
                    I.HisotryKeep,
                    I.HistoryReciept,
                    I.HistoryLastID,
                    I.CreateTime,
                    I.StartTime,
                    (int) I.RunEveryType,
                    I.Enabled,
                    I.ScheduleFor
                };
 }
Ejemplo n.º 43
0
        private void FireEvent(SchedulerItem I)
        {
            try
            {
                // save chagnes before it fires in case its chagned during the fire
                I = m_database.SaveHistory(I);

                if (I.RunOnce) I.Enabled = false;
                if (I.Enabled) I.CalculateNextRunTime(I.TimeToRun);

                if (!I.HisotryKeep)
                    m_database.HistoryDeleteOld(I);
                m_database.SchedulerSave(I);

                // now fire
                List<Object> reciept = EventManager.FireGenericEventHandler(I.FireFunction, I.FireParams);
                if (!I.HistoryReciept)
                    I = m_database.SaveHistoryComplete(I);
                else
                {
                    foreach (string results in reciept.Cast<string>().Where(results => results != ""))
                    {
                        m_database.SaveHistoryCompleteReciept(I.HistoryLastID, results);
                    }
                }
            }
            catch (Exception e)
            {
                MainConsole.Instance.ErrorFormat("[Scheduler] FireEvent Error {0}: {1}", I.id, e.ToString());
            }
        }
Ejemplo n.º 44
0
        public SchedulerItem SaveHistory(SchedulerItem I)
        {
            string his_id = UUID.Random().ToString();

            Dictionary<string, object> row = new Dictionary<string, object>(7);
            row["id"] = his_id;
            row["scheduler_id"] = I.id;
            row["ran_time"] = DateTime.UtcNow;
            row["run_time"] = I.TimeToRun;
            row["is_complete"] = 0;
            row["complete_time"] = DateTime.UtcNow;
            row["reciept"] = "";
            m_Gd.Insert("scheduler_history", row);

            I.HistoryLastID = his_id;
            return I;
        }
Ejemplo n.º 45
0
        public string SchedulerSave(SchedulerItem I)
        {
            object[] dbv = GetDBValues(I);
            Dictionary<string, object> values = new Dictionary<string, object>(dbv.Length);
            int i = 0;
            foreach (object value in dbv)
            {
                values[theFields[i++]] = value;
            }
            if (SchedulerExist(I.id))
            {
                QueryFilter filter = new QueryFilter();
                filter.andFilters["id"] = I.id;

                m_Gd.Update("scheduler", values, null, filter, null, null);
            }
            else
            {
                m_Gd.Insert("scheduler", values);
            }
            return I.id;
        }
Ejemplo n.º 46
0
 public bool Register(SchedulerItem I, OnGenericEventHandler handler)
 {
     EventManager.RegisterEventHandler(I.FireFunction, handler);
     return true;
 }
Ejemplo n.º 47
0
 public void HistoryDeleteOld(SchedulerItem I)
 {
     if ((I.id != "") && (I.HistoryLastID != ""))
     {
         QueryFilter filter = new QueryFilter();
         filter.andNotFilters["id"] = I.HistoryLastID;
         filter.andFilters["scheduler_id"] = I.id;
         m_Gd.Delete("scheduler_history", filter);
     }
 }