public static string GetTaskEmailPost(RestCommand command, int taskEmailPostID) { TaskEmailPost taskEmailPost = TaskEmailPosts.GetTaskEmailPost(command.LoginUser, taskEmailPostID); if (taskEmailPost.OrganizationID != command.Organization.OrganizationID) { throw new RestException(HttpStatusCode.Unauthorized); } return(taskEmailPost.GetXml("TaskEmailPost", true)); }
public override void Run() { TaskEmailPosts.UnlockThread(LoginUser, (int)_threadPosition); while (!IsStopped) { TaskEmailPost taskEmailPost = GetNextTaskEmailPost(LoginUser.ConnectionString, (int)_threadPosition, _isDebug); if (taskEmailPost == null) { System.Threading.Thread.Sleep(10000); continue; } try { try { if (taskEmailPost.CreatorID != -5) { _isDebug = Settings.ReadBool("Debug", false); _logEnabled = Settings.ReadInt("LoggingEnabled", 0) == 1; Logs.WriteLine(); Logs.WriteEvent("***********************************************************************************"); Logs.WriteEvent("Processing Task Email Post TaskEmailPostID: " + taskEmailPost.TaskEmailPostID.ToString()); Logs.WriteData(taskEmailPost.Row); Logs.WriteEvent("***********************************************************************************"); SetTimeZone(taskEmailPost); ProcessEmail(taskEmailPost); } } catch (Exception ex) { ExceptionLogs.LogException(LoginUser, ex, "Email", taskEmailPost.Row); } finally { Logs.WriteEvent("Deleting from DB"); taskEmailPost.Collection.DeleteFromDB(taskEmailPost.TaskEmailPostID); } Logs.WriteEvent("Updating Health"); UpdateHealth(); } catch (Exception ex) { ExceptionLogs.LogException(LoginUser, ex, "Email", taskEmailPost.Row); } } }
public static string GetTaskEmailPosts(RestCommand command) { TaskEmailPosts taskEmailPosts = new TaskEmailPosts(command.LoginUser); taskEmailPosts.LoadByOrganizationID(command.Organization.OrganizationID); if (command.Format == RestFormat.XML) { return(taskEmailPosts.GetXml("TaskEmailPosts", "TaskEmailPost", true, command.Filters)); } else { throw new RestException(HttpStatusCode.BadRequest, "Invalid data format"); } }
private static TaskEmailPost GetNextTaskEmailPost(string connectionString, int lockID, bool isDebug) { TaskEmailPost result; LoginUser loginUser = new LoginUser(connectionString, -1, -1, null); lock (_staticLock) { if (isDebug) { SqlExecutor.ExecuteNonQuery(loginUser, "UPDATE TaskEmailPosts SET HoldTime=30 WHERE HoldTime > 30"); } result = TaskEmailPosts.GetNextWaiting(loginUser, lockID.ToString()); } return(result); }
private void SendCompletedNotification(int creatorID, int taskID) { TaskEmailPosts existingPosts = new TaskEmailPosts(TSAuthentication.GetLoginUser()); existingPosts.LoadByTaskID(taskID); if (existingPosts.Count == 0) { TaskEmailPosts posts = new TaskEmailPosts(TSAuthentication.GetLoginUser()); TaskEmailPost post = posts.AddNewTaskEmailPost(); post.TaskEmailPostType = (int)TaskEmailPostType.Complete; post.HoldTime = 120; post.CreatorID = creatorID; post.TaskID = taskID; posts.Save(); } }
public override void ReleaseAllLocks() { TaskEmailPosts.UnlockAll(LoginUser); }