///<summary>Updates one TaskSubscription in the database. Uses an old object to compare to, and only alters changed fields. This prevents collisions and concurrency problems in heavily used tables.</summary> internal static void Update(TaskSubscription taskSubscription, TaskSubscription oldTaskSubscription) { string command = ""; if (taskSubscription.UserNum != oldTaskSubscription.UserNum) { if (command != "") { command += ","; } command += "UserNum = " + POut.Long(taskSubscription.UserNum) + ""; } if (taskSubscription.TaskListNum != oldTaskSubscription.TaskListNum) { if (command != "") { command += ","; } command += "TaskListNum = " + POut.Long(taskSubscription.TaskListNum) + ""; } if (command == "") { return; } command = "UPDATE tasksubscription SET " + command + " WHERE TaskSubscriptionNum = " + POut.Long(taskSubscription.TaskSubscriptionNum); Db.NonQ(command); }
///<summary>Inserts one TaskSubscription into the database. Returns the new priKey.</summary> public static long Insert(TaskSubscription taskSubscription) { if (DataConnection.DBtype == DatabaseType.Oracle) { taskSubscription.TaskSubscriptionNum = DbHelper.GetNextOracleKey("tasksubscription", "TaskSubscriptionNum"); int loopcount = 0; while (loopcount < 100) { try { return(Insert(taskSubscription, true)); } catch (Oracle.ManagedDataAccess.Client.OracleException ex) { if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")) { taskSubscription.TaskSubscriptionNum++; loopcount++; } else { throw ex; } } } throw new ApplicationException("Insert failed. Could not generate primary key."); } else { return(Insert(taskSubscription, false)); } }
///<summary>Inserts one TaskSubscription into the database. Provides option to use the existing priKey. Doesn't use the cache.</summary> public static long InsertNoCache(TaskSubscription taskSubscription, bool useExistingPK) { bool isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys); string command = "INSERT INTO tasksubscription ("; if (!useExistingPK && isRandomKeys) { taskSubscription.TaskSubscriptionNum = ReplicationServers.GetKeyNoCache("tasksubscription", "TaskSubscriptionNum"); } if (isRandomKeys || useExistingPK) { command += "TaskSubscriptionNum,"; } command += "UserNum,TaskListNum,TaskNum) VALUES("; if (isRandomKeys || useExistingPK) { command += POut.Long(taskSubscription.TaskSubscriptionNum) + ","; } command += POut.Long(taskSubscription.UserNum) + "," + POut.Long(taskSubscription.TaskListNum) + "," + POut.Long(taskSubscription.TaskNum) + ")"; if (useExistingPK || isRandomKeys) { Db.NonQ(command); } else { taskSubscription.TaskSubscriptionNum = Db.NonQ(command, true, "TaskSubscriptionNum", "taskSubscription"); } return(taskSubscription.TaskSubscriptionNum); }
///<summary>Inserts one TaskSubscription into the database. Provides option to use the existing priKey.</summary> public static long Insert(TaskSubscription taskSubscription, bool useExistingPK) { if (!useExistingPK && PrefC.RandomKeys) { taskSubscription.TaskSubscriptionNum = ReplicationServers.GetKey("tasksubscription", "TaskSubscriptionNum"); } string command = "INSERT INTO tasksubscription ("; if (useExistingPK || PrefC.RandomKeys) { command += "TaskSubscriptionNum,"; } command += "UserNum,TaskListNum,TaskNum) VALUES("; if (useExistingPK || PrefC.RandomKeys) { command += POut.Long(taskSubscription.TaskSubscriptionNum) + ","; } command += POut.Long(taskSubscription.UserNum) + "," + POut.Long(taskSubscription.TaskListNum) + "," + POut.Long(taskSubscription.TaskNum) + ")"; if (useExistingPK || PrefC.RandomKeys) { Db.NonQ(command); } else { taskSubscription.TaskSubscriptionNum = Db.NonQ(command, true, "TaskSubscriptionNum", "taskSubscription"); } return(taskSubscription.TaskSubscriptionNum); }
///<summary>Inserts one TaskSubscription into the database. Returns the new priKey.</summary> internal static long Insert(TaskSubscription taskSubscription) { if(DataConnection.DBtype==DatabaseType.Oracle) { taskSubscription.TaskSubscriptionNum=DbHelper.GetNextOracleKey("tasksubscription","TaskSubscriptionNum"); int loopcount=0; while(loopcount<100){ try { return Insert(taskSubscription,true); } catch(Oracle.DataAccess.Client.OracleException ex){ if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){ taskSubscription.TaskSubscriptionNum++; loopcount++; } else{ throw ex; } } } throw new ApplicationException("Insert failed. Could not generate primary key."); } else { return Insert(taskSubscription,false); } }
///<summary>Updates one TaskSubscription in the database.</summary> internal static void Update(TaskSubscription taskSubscription) { string command = "UPDATE tasksubscription SET " + "UserNum = " + POut.Long(taskSubscription.UserNum) + ", " + "TaskListNum = " + POut.Long(taskSubscription.TaskListNum) + " " + "WHERE TaskSubscriptionNum = " + POut.Long(taskSubscription.TaskSubscriptionNum); Db.NonQ(command); }
///<summary>Creates a TaskSubscription.</summary> public static TaskSubscription CreateTaskSubscription(long userNum = 0, long taskListNum = 0, long taskNum = 0) { TaskSubscription taskSub = new TaskSubscription { UserNum = userNum, TaskListNum = taskListNum, TaskNum = taskNum }; TaskSubscriptions.Insert(taskSub); return(taskSub); }
///<summary>Converts a DataTable to a list of objects.</summary> public static List<TaskSubscription> TableToList(DataTable table){ List<TaskSubscription> retVal=new List<TaskSubscription>(); TaskSubscription taskSubscription; for(int i=0;i<table.Rows.Count;i++) { taskSubscription=new TaskSubscription(); taskSubscription.TaskSubscriptionNum= PIn.Long (table.Rows[i]["TaskSubscriptionNum"].ToString()); taskSubscription.UserNum = PIn.Long (table.Rows[i]["UserNum"].ToString()); taskSubscription.TaskListNum = PIn.Long (table.Rows[i]["TaskListNum"].ToString()); retVal.Add(taskSubscription); } return retVal; }
///<summary>Inserts one TaskSubscription into the database. Returns the new priKey. Doesn't use the cache.</summary> public static long InsertNoCache(TaskSubscription taskSubscription) { if (DataConnection.DBtype == DatabaseType.MySql) { return(InsertNoCache(taskSubscription, false)); } else { if (DataConnection.DBtype == DatabaseType.Oracle) { taskSubscription.TaskSubscriptionNum = DbHelper.GetNextOracleKey("tasksubscription", "TaskSubscriptionNum"); //Cacheless method } return(InsertNoCache(taskSubscription, true)); } }
///<summary>Converts a DataTable to a list of objects.</summary> internal static List <TaskSubscription> TableToList(DataTable table) { List <TaskSubscription> retVal = new List <TaskSubscription>(); TaskSubscription taskSubscription; for (int i = 0; i < table.Rows.Count; i++) { taskSubscription = new TaskSubscription(); taskSubscription.TaskSubscriptionNum = PIn.Long(table.Rows[i]["TaskSubscriptionNum"].ToString()); taskSubscription.UserNum = PIn.Long(table.Rows[i]["UserNum"].ToString()); taskSubscription.TaskListNum = PIn.Long(table.Rows[i]["TaskListNum"].ToString()); retVal.Add(taskSubscription); } return(retVal); }
///<summary>Converts a DataTable to a list of objects.</summary> public static List <TaskSubscription> TableToList(DataTable table) { List <TaskSubscription> retVal = new List <TaskSubscription>(); TaskSubscription taskSubscription; foreach (DataRow row in table.Rows) { taskSubscription = new TaskSubscription(); taskSubscription.TaskSubscriptionNum = PIn.Long(row["TaskSubscriptionNum"].ToString()); taskSubscription.UserNum = PIn.Long(row["UserNum"].ToString()); taskSubscription.TaskListNum = PIn.Long(row["TaskListNum"].ToString()); taskSubscription.TaskNum = PIn.Long(row["TaskNum"].ToString()); retVal.Add(taskSubscription); } return(retVal); }
///<summary>Returns true if Update(TaskSubscription,TaskSubscription) would make changes to the database. ///Does not make any changes to the database and can be called before remoting role is checked.</summary> public static bool UpdateComparison(TaskSubscription taskSubscription, TaskSubscription oldTaskSubscription) { if (taskSubscription.UserNum != oldTaskSubscription.UserNum) { return(true); } if (taskSubscription.TaskListNum != oldTaskSubscription.TaskListNum) { return(true); } if (taskSubscription.TaskNum != oldTaskSubscription.TaskNum) { return(true); } return(false); }
public void Subscribe(ISubscriber <T> s) { var ts = new TaskSubscription(s); task.ContinueWith(t => { if (t.IsCompleted) { ts.Complete(t.Result); } else if (t.IsFaulted) { ts.Error(t.Exception); } }, ts.ct.Token); }
///<summary>Inserts one TaskSubscription into the database. Provides option to use the existing priKey.</summary> public static long Insert(TaskSubscription taskSubscription,bool useExistingPK){ if(!useExistingPK && PrefC.RandomKeys) { taskSubscription.TaskSubscriptionNum=ReplicationServers.GetKey("tasksubscription","TaskSubscriptionNum"); } string command="INSERT INTO tasksubscription ("; if(useExistingPK || PrefC.RandomKeys) { command+="TaskSubscriptionNum,"; } command+="UserNum,TaskListNum) VALUES("; if(useExistingPK || PrefC.RandomKeys) { command+=POut.Long(taskSubscription.TaskSubscriptionNum)+","; } command+= POut.Long (taskSubscription.UserNum)+"," + POut.Long (taskSubscription.TaskListNum)+")"; if(useExistingPK || PrefC.RandomKeys) { Db.NonQ(command); } else { taskSubscription.TaskSubscriptionNum=Db.NonQ(command,true); } return taskSubscription.TaskSubscriptionNum; }
///<summary>Inserts one TaskSubscription into the database. Returns the new priKey.</summary> public static long Insert(TaskSubscription taskSubscription) { return(Insert(taskSubscription, false)); }
///<summary>Updates one TaskSubscription in the database. Uses an old object to compare to, and only alters changed fields. This prevents collisions and concurrency problems in heavily used tables.</summary> internal static void Update(TaskSubscription taskSubscription,TaskSubscription oldTaskSubscription) { string command=""; if(taskSubscription.UserNum != oldTaskSubscription.UserNum) { if(command!=""){ command+=",";} command+="UserNum = "+POut.Long(taskSubscription.UserNum)+""; } if(taskSubscription.TaskListNum != oldTaskSubscription.TaskListNum) { if(command!=""){ command+=",";} command+="TaskListNum = "+POut.Long(taskSubscription.TaskListNum)+""; } if(command==""){ return; } command="UPDATE tasksubscription SET "+command +" WHERE TaskSubscriptionNum = "+POut.Long(taskSubscription.TaskSubscriptionNum); Db.NonQ(command); }
///<summary>Updates one TaskSubscription in the database.</summary> internal static void Update(TaskSubscription taskSubscription) { string command="UPDATE tasksubscription SET " +"UserNum = "+POut.Long (taskSubscription.UserNum)+", " +"TaskListNum = "+POut.Long (taskSubscription.TaskListNum)+" " +"WHERE TaskSubscriptionNum = "+POut.Long(taskSubscription.TaskSubscriptionNum); Db.NonQ(command); }