private void eventContainer_BeforeUpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields, Dictionary<object, object> context)
 {
     if ((fields & ~UserTaskFieldDefine.ReadTime) != UserTaskFieldDefine.None)
     {
         ProcessTaskByIDType(task, idType);
     }
 }
		public UserTaskCollection LoadUserTasksByActivity(string activityID, Action<InSqlClauseBuilder> action)
		{
			action.NullCheck("action");

			InSqlClauseBuilder builder = new InSqlClauseBuilder();

			action(builder);

			string sql = string.Format("SELECT * FROM WF.USER_TASK WHERE ACTIVITY_ID = {0}",
				TSqlBuilder.Instance.CheckUnicodeQuotationMark(activityID));

			if (builder.Count > 0)
				sql += " AND " + builder.ToSqlStringWithInOperator(TSqlBuilder.Instance);

			UserTaskCollection result = new UserTaskCollection();

			DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0];

			foreach (DataRow row in table.Rows)
			{
				UserTask task = new UserTask();

				ORMapping.DataRowToObject(row, task);

				result.Add(task);
			}

			return result;
		}
示例#3
0
 public SimpleTask(UserTask task)
 {
     this.taskID = task.TaskID;
     this.taskTitle = HttpUtility.HtmlEncode(task.TaskTitle);
     this.deliverTime = task.DeliverTime;
     this.applicationName = task.ApplicationName;
     this.url = task.Url;
     this.status = task.Status;
 }
		/// <summary>
		/// 如果请求是提醒对话框的,则处理该请求,显示提醒对话框的内容
		/// </summary>
		private void DoNotifyDialog()
		{
			if (HttpContext.Current.Request.RequestType == "POST")
			{
				string taskID = HttpContext.Current.Request.QueryString["taskID"];
				string taskSource = WebUtility.GetRequestFormString("taskSource", "userTask");

				if (string.IsNullOrEmpty(taskID) == false && GetAutoTransferToCompletedTask())
				{
					UserTask task = new UserTask();
					task.TaskID = taskID;
					UserTaskCollection tasks = new UserTaskCollection();
					tasks.Add(task);
					if (taskSource == "userTask")
						UserTaskAdapter.Instance.DeleteUserTasks(tasks);
					else
						UserTaskAdapter.Instance.DeleteUserAccomplishedTasks(tasks);
				}

				SaveAutoTransferToCompletedTaskFlag();

				//WebUtility.ResponseRefreshParentWindowScriptBlock();
				HttpContext.Current.Response.Write(ExtScriptHelper.GetRefreshBridgeScript());
				WebUtility.ResponseTimeoutScriptBlock("top.close();", ExtScriptHelper.DefaultResponseTimeout);

				HttpContext.Current.Response.End();
			}
			else
			{
				Page page = new Page();

				HtmlGenericControl html = new HtmlGenericControl("html");
				WebUtility.SetCurrentPage(page);
				page.Controls.Add(html);

				HtmlHead head = new HtmlHead();
				html.Controls.Add(head);

				HtmlTitle title = new HtmlTitle();
				title.Text = Translator.Translate(Define.DefaultCulture, "提醒消息");
				head.Controls.Add(title);

				HtmlGenericControl body = new HtmlGenericControl("body");
				html.Controls.Add(body);

				WebUtility.AttachPageModules(page);

				string temmplate = GetNotifyDialogHtml();
				string pageHtml = InitNotifyDialogPage(temmplate);

				body.Controls.Add(new LiteralControl(pageHtml));

				((IHttpHandler)page).ProcessRequest(HttpContext.Current);

				HttpContext.Current.Response.End();
			}
		}
        public static UserTask GetLatestUserTask(string userID)
        {
            string sql =
                string.Format(
                    "SELECT TOP 1 TASK_GUID, TASK_TITLE, DELIVER_TIME,APPLICATION_NAME, URL, STATUS FROM WF.USER_TASK (NOLOCK) WHERE SEND_TO_USER = {0} ORDER BY DELIVER_TIME DESC",
                    TSqlBuilder.Instance.CheckQuotationMark(userID, true));
            DataTable dataTable = null;
            DbHelper.RunSql(db => dataTable = db.ExecuteDataSet(CommandType.Text, sql).Tables[0], "HB2008");
            UserTask task = new UserTask();
            ORMappingItemCollection mapping = GetMappingInfo();
            foreach (DataRow row in dataTable.Rows)
            {
                ORMapping.DataRowToObject(row, mapping, task);
            }

            return task;
        }
示例#6
0
        public UserTaskCollection GetUserAccomplishedTasks(UserTaskIDType idType, UserTaskFieldDefine returnFields, bool nolock, params string[] ids)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(ids != null, "ids");

            UserTaskCollection utc = new UserTaskCollection();

            if (ids.Length > 0)
            {
                ORMappingItem keyItem = GetMappingItemFromIDType(idType);

                InSqlClauseBuilder iBuilder = new InSqlClauseBuilder();

                iBuilder.AppendItem(ids);

                string sql = string.Format("SELECT {0} FROM WF.USER_ACCOMPLISHED_TASK{1} WHERE {2} {3}",
                                           GetUserTaskSelectFields(returnFields),
                                           nolock ? "(NOLOCK)" : string.Empty,
                                           GetMappingItemFromIDType(idType).DataFieldName,
                                           iBuilder.ToSqlStringWithInOperator(TSqlBuilder.Instance));

                using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
                {
                    Database db = DatabaseFactory.Create(dbi);

                    using (IDataReader dr = db.ExecuteReader(CommandType.Text, sql))
                    {
                        while (dr.Read())
                        {
                            UserTask ut = new UserTask();

                            ORMapping.DataReaderToObject(dr, ut);

                            utc.Add(ut);
                        }
                    }
                }
            }

            return(utc);
        }
		/*
		public static int InvalidAssigneesNotificationCount()
		{
			return (int)DbHelper.RunSqlReturnScalar(GetInvalidNotificationCountSQL);
		} */

		/// <summary>
		/// 生成管理员代办消息
		/// </summary>
		/// <param name="notificationID"></param>
		/// <returns></returns>
		public static UserTask BuildUserTask(string taskTitle)
		{
			UserTask currentUserTask = new UserTask();
			currentUserTask.ApplicationName = "OACommonPages";
			currentUserTask.ProgramName = "OACommonPages";
			/*currentUserTask.ResourceID = ;
			currentUserTask.ActivityID = "";
			currentUserTask.ProcessID = ""; */
			currentUserTask.Status = TaskStatus.Ban;
			currentUserTask.TaskStartTime = DateTime.Now;
			currentUserTask.TaskTitle = taskTitle;
			//string.Format("待处理流程列表", DateTime.Now.ToString("yyyy-MM-dd"));
			currentUserTask.Level = TaskLevel.Normal;
			currentUserTask.Url = "/MCSWebApp/OACommonPages/AppTrace/InvalidAssigneesNotification.aspx?notificationID={0}&&userTaskID={1}&&isTask=true";
			/*currentUserTask.DraftUserID = "";
			currentUserTask.DraftUserName = "";
			currentUserTask.SendToUserID = "";
			currentUserTask.SendToUserName = "";
			currentUserTask.SourceID = "";
			currentUserTask.SourceName = ""; */

			return currentUserTask;
		}
示例#8
0
        public UserTaskCollection LoadUserTasks(string tableName, IConnectiveSqlClause builder)
        {
            UserTaskCollection result = new UserTaskCollection();

            if (builder.IsEmpty == false)
            {
                string sql = string.Format("SELECT * FROM {0} WHERE {1}",
                                           tableName, builder.ToSqlString(TSqlBuilder.Instance));

                DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0];

                foreach (DataRow row in table.Rows)
                {
                    UserTask task = new UserTask();

                    ORMapping.DataRowToObject(row, task);

                    result.Add(task);
                }
            }

            return(result);
        }
示例#9
0
        public UserTaskCollection LoadUserTasks(string tableName, IConnectiveSqlClause wBuilder, OrderBySqlClauseBuilder orderByBuilder, int count)
        {
            UserTaskCollection result = new UserTaskCollection();
            string             top    = string.Empty;

            if (count >= 0)
            {
                top = string.Format("TOP {0}", count);
            }

            if (wBuilder.IsEmpty == false)
            {
                string sql = string.Format("SELECT {0} * FROM {1} WHERE {2}",
                                           top,
                                           tableName,
                                           wBuilder.ToSqlString(TSqlBuilder.Instance));

                if (orderByBuilder.Count > 0)
                {
                    sql += " ORDER BY " + orderByBuilder.ToSqlString(TSqlBuilder.Instance);
                }

                DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0];

                foreach (DataRow row in table.Rows)
                {
                    UserTask task = new UserTask();

                    ORMapping.DataRowToObject(row, task);

                    result.Add(task);
                }
            }

            return(result);
        }
        private static UserTaskCollection GetUserTasks(UserTask task, UserTaskIDType idType)
        {
            UserTaskCollection result = new UserTaskCollection();

            foreach (EnumItemDescription desp in EnumItemDescriptionAttribute.GetDescriptionList(typeof(UserTaskIDType)))
            {
                UserTaskIDType enumIdType = (UserTaskIDType)desp.EnumValue;

                if ((enumIdType & idType) != UserTaskIDType.None && enumIdType != UserTaskIDType.SendToUserID)
                {
                    UserTaskIDType targetIDType = (UserTaskIDType)desp.EnumValue | (idType & UserTaskIDType.SendToUserID);

                    UserTaskCollection tasks = UserTaskAdapter.Instance.GetUserTasks(
                        targetIDType,
                        UserTaskFieldDefine.TaskID | UserTaskFieldDefine.SendToUserID | UserTaskFieldDefine.ActivityID,
                        true,
                        DefaultUserTaskOperationImpl.GetUserTaskIDValue(task, targetIDType));

                    result.CopyFrom(tasks);
                }
            }

            return(result);
        }
示例#11
0
        public UserTask GetLatestUserTask(string userID)
        {
            string sql =
                string.Format(
                    "SELECT TOP 1 TASK_GUID, TASK_TITLE, DELIVER_TIME,APPLICATION_NAME, URL, STATUS FROM WF.USER_TASK (NOLOCK) WHERE SEND_TO_USER = {0} ORDER BY DELIVER_TIME DESC",
                    TSqlBuilder.Instance.CheckQuotationMark(userID, true));

            UserTask task = null;

            using (var context = DbContext.GetContext("HB2008"))
            {
                using (var dr = DbHelper.RunSqlReturnDR(sql))
                {
                    if (dr.Read())
                    {
                        task = new UserTask();
                        ORMapping.DataReaderToObject(dr, GetMapptingInfo(), task);
                    }
                }
            }

            return task;

        }
示例#12
0
		public void OnBeforeUpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields)
		{
			foreach (UserTaskOpEventContainer container in EventContainers)
				container.OnBeforeUpdateUserTask(task, idType, fields, Context);
		}
示例#13
0
		/// <summary>
		/// 获取消息的标题链接
		/// </summary>
		/// <param name="task">消息实例</param>
		/// <returns>html格式的消息标题</returns>
		internal static string GetTaskURL(UserTask task)
		{
			string url = task.NormalizedUrl;

			string defaultTarget = WebUtility.GetRequestQueryString("defaultTarget", "_blank");

			return String.Format("<a href=\"{0}\" taskid=\"{1}\" unreadflag=\"{2}\" onclick=\"onTaskLinkClick(this.href,'{3}');\" target=\"{4}\">{5}</a>",
				url,
				task.TaskID,
				task.ReadTime == DateTime.MinValue,
				GetFeature(task),
				defaultTarget,
				HttpUtility.HtmlEncode(task.TaskTitle).ToString().Replace(" ", "&nbsp;"));
		}
示例#14
0
        private int eventContainer_UpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields, Dictionary <object, object> context)
        {
            Write(GetMessageContent(task), "UpdateUserTask");

            return(0);
        }
        private static UserTaskCollection GetUserTasks(UserTask task, UserTaskIDType idType)
        {
            UserTaskCollection result = new UserTaskCollection();

            foreach (EnumItemDescription desp in EnumItemDescriptionAttribute.GetDescriptionList(typeof(UserTaskIDType)))
            {
                UserTaskIDType enumIdType = (UserTaskIDType)desp.EnumValue;

                if ((enumIdType & idType) != UserTaskIDType.None && enumIdType != UserTaskIDType.SendToUserID)
                {
                    UserTaskIDType targetIDType = (UserTaskIDType)desp.EnumValue | (idType & UserTaskIDType.SendToUserID);

                    UserTaskCollection tasks = UserTaskAdapter.Instance.GetUserTasks(
                                targetIDType,
                                UserTaskFieldDefine.TaskID | UserTaskFieldDefine.SendToUserID | UserTaskFieldDefine.ActivityID,
                                true,
                                DefaultUserTaskOperationImpl.GetUserTaskIDValue(task, targetIDType));

                    result.CopyFrom(tasks);
                }
            }

            return result;
        }
        private int eventContainer_UpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields, Dictionary<object, object> context)
        {
            AttachTransactionEvent();

            return 0;
        }
		private static string GetTaskUrl(UserTask task)
		{
			string result = "#";

			try
			{
				IWfProcess process = WfRuntime.GetProcessByProcessID(task.ProcessID);

				if (process != null && process.Descriptor.Url.IsNotEmpty())
				{
					NameValueCollection uriParams = UriHelper.GetUriParamsCollection(process.Descriptor.Url);

					uriParams.Clear();
					uriParams["resourceID"] = task.ResourceID;
					uriParams["processID"] = task.ProcessID;

					result = UriHelper.CombineUrlParams(process.Descriptor.Url, uriParams);
				}
			}
			catch (System.Exception)
			{

			}

			return result;
		}
示例#18
0
		public int UpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields)
		{
			ExceptionHelper.FalseThrow<ArgumentNullException>(task != null, "task");
			int result = 0;

			UserOpContext contexts = InitEventContexts();

			contexts.OnBeforeUpdateUserTask(task, idType, fields);

			using (TransactionScope scope = TransactionScopeFactory.Create())
			{
				result = contexts.OnUpdateUserTask(task, idType, fields);

				scope.Complete();
			}

			return result;
		}
示例#19
0
		public UserTask LoadSingleUserTaskByID(string taskID)
		{
			WhereSqlClauseBuilder builder = new WhereSqlClauseBuilder();
			builder.AppendItem("TASK_GUID", taskID);

			string sql = string.Format("SELECT TOP (1) * FROM WF.USER_TASK WHERE {0}", builder.ToSqlString(TSqlBuilder.Instance));
			DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0];

			UserTask userTask = new UserTask();
			if (table.Rows.Count > 0)
				ORMapping.DataRowToObject(table.Rows[0], userTask);

			return userTask;
		}
示例#20
0
		public UserTaskCollection LoadUserTasks(Action<WhereSqlClauseBuilder> action)
		{
			action.NullCheck("action");

			WhereSqlClauseBuilder builder = new WhereSqlClauseBuilder();

			action(builder);

			string sql = string.Format("SELECT * FROM WF.USER_TASK WHERE {0}", builder.ToSqlString(TSqlBuilder.Instance));

			UserTaskCollection result = new UserTaskCollection();

			DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0];

			foreach (DataRow row in table.Rows)
			{
				UserTask task = new UserTask();

				ORMapping.DataRowToObject(row, task);

				result.Add(task);
			}

			return result;
		}
        private int eventContainer_UpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields, Dictionary <object, object> context)
        {
            AttachTransactionEvent();

            return(0);
        }
示例#22
0
        ///// <summary>
        ///// 转义like有关的通配符
        ///// </summary>
        ///// <param name="condition">原查询条件</param>
        ///// <returns>转义后的查询条件</returns>
        //internal static string EscapeLikeString(string condition)
        //{
        //    string result = condition;

        //    result = result.Replace("[", "[[]");
        //    result = result.Replace("-", "[-]");
        //    result = result.Replace("_", "[_]");
        //    result = result.Replace("%", "[%]");

        //    return result;
        //}

		/// <summary>
		/// 获取应用对应的窗口控制代码
		/// </summary>
		/// <param name="task">消息对象</param>
		/// <returns>用于JS的弹出窗口控制代码</returns>
		internal static string GetFeature(UserTask task)
		{
			string appName = task.ApplicationName;
			string feature = string.Empty;
			string featureID = string.Empty;
			//判断消息级别,同时消息状态是阅
			//老系统中的url会自动添加 http:// 字符串,新系统中没有
			if ((task.Level < TaskLevel.Normal && task.Status == TaskStatus.Yue && !task.Url.StartsWith("http://"))
				|| task.Url.StartsWith("/MCSWebApp/MCSOAPortal/TaskList/NoticeTaskDetail.aspx"))
			{
				if (ResourceUriSettings.GetConfig().Features.ContainsKey("MessageRemind"))
				{
					feature = ResourceUriSettings.GetConfig().Features["MessageRemind"].Feature.ToWindowFeatureClientString();
				}
				else
				{
					feature = "width=800,height=600,left=' + ((window.screen.width - 800) / 2) + ',top=' + ((window.screen.height - 600) / 2) + ',resizable=yes,scrollbars=yes,toolbar=no,location=no";
				}
			}
			else
			{ //Note:获取js的窗口形态(待办)ApplicationInfoConfig.GetConfig().Applications.ContainsKey(appName) ? ApplicationInfoConfig.GetConfig().Applications[appName].FeatureID : string.Empty;
				feature = "width=800,height=600,left=' + ((window.screen.width - 800) / 2) + ',top=' + ((window.screen.height - 600) / 2) + ',resizable=yes,scrollbars=yes,toolbar=no,location=no";
			}
			return feature;
		}
示例#23
0
 private static string GetUserTaskInsertSql(UserTask task, params string[] ignoreProperties)
 {
     return(GetUserTaskInsertSql(task, ORMapping.GetMappingInfo <UserTask>(), ignoreProperties));
 }
示例#24
0
		public UserTaskCollection GetUserAccomplishedTasks(UserTaskIDType idType, UserTaskFieldDefine returnFields, bool nolock, params string[] ids)
		{
			ExceptionHelper.FalseThrow<ArgumentNullException>(ids != null, "ids");

			UserTaskCollection utc = new UserTaskCollection();

			if (ids.Length > 0)
			{
				ORMappingItem keyItem = GetMappingItemFromIDType(idType);

				InSqlClauseBuilder iBuilder = new InSqlClauseBuilder();

				iBuilder.AppendItem(ids);

				string sql = string.Format("SELECT {0} FROM WF.USER_ACCOMPLISHED_TASK{1} WHERE {2} {3}",
					GetUserTaskSelectFields(returnFields),
					nolock ? "(NOLOCK)" : string.Empty,
					GetMappingItemFromIDType(idType).DataFieldName,
					iBuilder.ToSqlStringWithInOperator(TSqlBuilder.Instance));

				using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
				{
					Database db = DatabaseFactory.Create(dbi);

					using (IDataReader dr = db.ExecuteReader(CommandType.Text, sql))
					{
						while (dr.Read())
						{
							UserTask ut = new UserTask();

							ORMapping.DataReaderToObject(dr, ut);

							utc.Add(ut);
						}
					}
				}
			}

			return utc;
		}
示例#25
0
        private static WhereSqlClauseBuilder GetDeleteAccomplishedUserTaskWhereBuilder(UserTask task)
        {
            WhereSqlClauseBuilder builder = new WhereSqlClauseBuilder();

            builder.AppendItem("SEND_TO_USER", task.SendToUserID);
            builder.AppendItem("STATUS", (int)task.Status);

            string rootProcessID = DictionaryHelper.GetValue(task.Context, "ApprovalRootProcessID", task.ProcessID);

            if (rootProcessID == task.ProcessID)
            {
                builder.AppendItem("PROCESS_ID", task.ProcessID);
            }
            else
            {
                builder.AppendItem("RESOURCE_ID", task.ResourceID);
            }

            return(builder);
        }
示例#26
0
		/// <summary>
		/// 根据TaskGuid得到UserAccomplishedTask
		/// </summary>
		/// <param name="strTaskGuid"></param>
		/// <returns></returns>
		public UserTaskCollection GetUserAccomplishedTasks(params string[] strTaskGuid)
		{
			UserTaskCollection utc = new UserTaskCollection();

			if (strTaskGuid.Length > 0)
			{

				InSqlClauseBuilder builder = new InSqlClauseBuilder();
				builder.AppendItem(strTaskGuid);

				string strSql = "SELECT * FROM WF.USER_ACCOMPLISHED_TASK WHERE (TASK_GUID " + builder.ToSqlStringWithInOperator(TSqlBuilder.Instance) + ")";
				using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
				{
					Database db = DatabaseFactory.Create(dbi);

					using (IDataReader dr = db.ExecuteReader(CommandType.Text, strSql))
					{
						while (dr.Read())
						{
							UserTask ut = new UserTask();

							ORMapping.DataReaderToObject(dr, ut);

							utc.Add(ut);
						}
					}
				}
			}

			return utc;
		}
示例#27
0
        /// <summary>
        /// 获取消息的标题链接
        /// </summary>
        /// <param name="task">消息实例</param>
        /// <returns>html格式的消息标题</returns>
        internal static string GetTaskURL(UserTask task)
        {
            string url = task.NormalizedUrl;

            return String.Format("<a class=\"textover\" href=\"#\" taskid=\"{1}\" unreadflag=\"{2}\" onclick=\"onTaskLinkClick('{0}','{3}');\" title=\"{4}\">{4}</a>",
                url,
                task.TaskID,
                task.ReadTime == DateTime.MinValue,
                GetFeature(task),
                HttpUtility.HtmlEncode(task.TaskTitle).ToString().Replace(" ", "&nbsp;"));
        }
示例#28
0
		internal void OnBeforeUpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields, Dictionary<object, object> context)
		{
			if (BeforeUpdateUserTask != null)
				BeforeUpdateUserTask(task, idType, fields, context);
		}
        private static void ProcessTaskByIDType(UserTask task, UserTaskIDType idType)
        {
            if ((idType & UserTaskIDType.SendToUserID) != UserTaskIDType.None)
                TaskChangedUserIDs[task.SendToUserID] = task.SendToUserID;

            UserTaskIDType otherType = idType & ~UserTaskIDType.SendToUserID;

            if (otherType != UserTaskIDType.None)
            {
                UserTaskCollection tasks = GetUserTasks(task, otherType);

                foreach (UserTask oneTask in tasks)
                    TaskChangedUserIDs[oneTask.SendToUserID] = oneTask.SendToUserID;
            }
        }
        private static string GetUserTaskInsertSql(UserTask task, ORMappingItemCollection mapping, params string[] ignoreProperties)
        {
            InsertSqlClauseBuilder builder = ORMapping.GetInsertSqlClauseBuilder(task, mapping, ignoreProperties);

            builder.AppendTenantCode();

            return string.Format("INSERT INTO {0} {1}", mapping.TableName, builder.ToSqlString(TSqlBuilder.Instance));
        }
        private static WhereSqlClauseBuilder GetDeleteAccomplishedUserTaskWhereBuilder(UserTask task)
        {
            WhereSqlClauseBuilder builder = new WhereSqlClauseBuilder();

            builder.AppendItem("SEND_TO_USER", task.SendToUserID);
            builder.AppendItem("STATUS", (int)task.Status);

            string rootProcessID = DictionaryHelper.GetValue(task.Context, "ApprovalRootProcessID", task.ProcessID);

            if (rootProcessID == task.ProcessID)
                builder.AppendItem("PROCESS_ID", task.ProcessID);
            else
                builder.AppendItem("RESOURCE_ID", task.ResourceID);

            return builder;
        }
        /// <summary>
        /// 得到从待办复制的已办的UserTask
        /// </summary>
        /// <param name="task"></param>
        /// <returns></returns>
        private static UserTask GetClonedAccomplishedUserTask(UserTask task)
        {
            UserTask clonedUserTask = task.Clone();

            string rootProcessID = DictionaryHelper.GetValue(task.Context, "ApprovalRootProcessID", task.ProcessID);

            if (rootProcessID != task.ProcessID)
            {
                clonedUserTask.ActivityID = DictionaryHelper.GetValue(task.Context, "ApprovalRootActivityID", task.ActivityID);
                clonedUserTask.ProcessID = rootProcessID;
            }

            return clonedUserTask;
        }
示例#33
0
 private static string GetMessageContent(UserTask task)
 {
     return(XmlHelper.SerializeObjectToXml(task).OuterXml);
 }
		protected void GridViewFormQuery_RowDataBound(object sender, GridViewRowEventArgs e)
		{

			if (e.Row.RowType == DataControlRowType.Header)
			{
				if (this.GridViewFormQuery.ExportingDeluxeGrid)
				{
					e.Row.Cells[8].Visible = false;
				}
			}

			if (e.Row.RowType == DataControlRowType.DataRow)
			{
				UserTaskCommon.SetRowStyleWhenMouseOver(e.Row);

				AppCommonInfoProcess entity = (AppCommonInfoProcess)e.Row.DataItem;

				UserTask userTask = new UserTask();

				if (this.GridViewFormQuery.ExportingDeluxeGrid)
				{
					e.Row.Cells[1].Text = EnumItemDescriptionAttribute.GetAttribute(entity.Emergency).ShortName;

					e.Row.Cells[2].Text = Server.HtmlEncode(entity.Subject).ToString().Replace(" ", "&nbsp;");
					//e.Row.Cells[8].Visible = false;
				}
				else
				{
					e.Row.Cells[1].Text = UserTaskCommon.GetEmergencyImageHtml(entity.Emergency);

					string url = entity.Url;

					if (RolesDefineConfig.GetConfig().IsCurrentUserInRoles("ProcessAdmin"))
					{
						NameValueCollection reqParams = UriHelper.GetUriParamsCollection(entity.Url);

						reqParams["mode"] = "Admin";

						url = UriHelper.CombineUrlParams(entity.Url, reqParams);
					}

					//title
					userTask.Url = url;
					userTask.SourceID = entity.ResourceID;
					userTask.ApplicationName = entity.ApplicationName;
					userTask.TaskTitle = entity.Subject;

					e.Row.Cells[2].Text = UserTaskCommon.GetTaskURL(userTask);
				}
			}
		}
示例#35
0
        /// <summary>
        /// 获取应用对应的窗口控制代码
        /// </summary>
        /// <param name="task">消息对象</param>
        /// <returns>用于JS的弹出窗口控制代码</returns>
        internal static string GetFeature(UserTask task)
        {
            string appName = task.ApplicationName;
            string feature = string.Empty;
            string featureID = string.Empty;
            //判断消息级别,同时消息状态是阅
            //老系统中的url会自动添加 http:// 字符串,新系统中没有
            if ((task.Level < TaskLevel.Normal && task.Status == TaskStatus.Yue && !task.Url.StartsWith("http://"))
                || task.Url.StartsWith("/SinoOceanWebApp/SinoOceanOAPortal/TaskList/NoticeTaskDetail.aspx"))
            {
                if (ResourceUriSettings.GetConfig().Features.ContainsKey("MessageRemind"))
                {
                    feature = ResourceUriSettings.GetConfig().Features["MessageRemind"].Feature.ToWindowFeatureClientString();
                }
                else
                {
                    feature = "width=800,height=600,left=' + ((window.screen.width - 800) / 2) + ',top=' + ((window.screen.height - 600) / 2) + ',resizable=yes,scrollbars=yes,toolbar=no,location=no";
                }
            }
            else
            {
                featureID = string.Empty; //ApplicationInfoConfig.GetConfig().Applications.ContainsKey(appName) ? ApplicationInfoConfig.GetConfig().Applications[appName].FeatureID : string.Empty;
                if (task.Url.StartsWith("http://"))
                {
                    switch (appName)
                    {
                        case "Cooperation":
                            featureID = "shouwendengji";
                            break;
                        case "SHOUWEN":
                            featureID = "shouwendengji";
                            break;
                        case "GW_FAWEN":
                            featureID = "oldfawen";
                            break;
                        case "GW_QIANBAO":
                            featureID = "oldqianbao";
                            break;
                        case "ZS_DUBAN":
                            featureID = "shouwendengji";
                            break;
                    }
                }

                if (string.IsNullOrEmpty(featureID) == false)
                {
                    if (ResourceUriSettings.GetConfig().Features.ContainsKey(featureID))
                        feature = ResourceUriSettings.GetConfig().Features[featureID].Feature.ToWindowFeatureClientString();
                }
            }
            return feature;
        }
示例#36
0
		public int OnUpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields)
		{
			int result = 0;

			foreach (UserTaskOpEventContainer container in EventContainers)
			{
				int r = container.OnUpdateUserTask(task, idType, fields, Context);

				if (r > result)
					result = r;
			}

			return result;
		}
示例#37
0
		public UserTask Clone()
		{
			UserTask newUserTask = new UserTask();
			TaskCategory taskCategory = null;

			if (this.category != null)
			{
				taskCategory = new TaskCategory();
				taskCategory.CategoryID = this.category.CategoryID;
				taskCategory.CategoryName = this.category.CategoryName;
				taskCategory.InnerSortID = this.category.InnerSortID;
				taskCategory.UserID = this.category.UserID;
			}

			newUserTask.ActivityID = this.activityID;
			newUserTask.ApplicationName = this.appID;
			newUserTask.Body = this.body;
			newUserTask.Category = taskCategory;
			newUserTask.Emergency = this.emergency;
			newUserTask.ExpireTime = this.expireTime;
			newUserTask.Level = this.level;
			newUserTask.ProcessID = this.processID;
			newUserTask.ProgramName = this.progID;
			newUserTask.Purpose = this.purpose;
			newUserTask.ReadTime = this.readTime;
			newUserTask.ResourceID = this.resourceID;
			newUserTask.SendToUserID = this.sendToUserID;
			newUserTask.SendToUserName = this.SendToUserName;
			newUserTask.SourceID = this.sourceID;
			newUserTask.SourceName = this.sourceName;
			newUserTask.Status = this.status;
			newUserTask.TaskID = this.taskID;
			newUserTask.TaskStartTime = this.taskStartTime;
			newUserTask.TaskTitle = this.taskTitle;
			newUserTask.TopFlag = this.topFlag;
			newUserTask.Url = this.url;
			newUserTask.DeliverTime = this.deliverTime;
			newUserTask.DraftDepartmentName = this.draftDepartmentName;
			newUserTask.CompletedTime = this.completedTime;
			newUserTask.DraftUserID = this.draftUserID;
			newUserTask.DraftUserName = this.draftUserName;

			return newUserTask;
		}
示例#38
0
 internal static string GetUserTaskIDValue(UserTask task, UserTaskIDType idType)
 {
     return((string)task.GetType().GetProperty(idType.ToString()).GetValue(task, null));
 }
示例#39
0
		public UserTaskCollection LoadUserTasks(string tableName, IConnectiveSqlClause builder)
		{
			UserTaskCollection result = new UserTaskCollection();

			if (builder.IsEmpty == false)
			{
				string sql = string.Format("SELECT * FROM {0} WHERE {1}",
					tableName, builder.ToSqlString(TSqlBuilder.Instance));

				DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0];

				foreach (DataRow row in table.Rows)
				{
					UserTask task = new UserTask();

					ORMapping.DataRowToObject(row, task);

					result.Add(task);
				}
			}

			return result;
		}
示例#40
0
		internal int OnUpdateUserTask(UserTask task, UserTaskIDType idType, UserTaskFieldDefine fields, Dictionary<object, object> context)
		{
			int result = 0;

			if (UpdateUserTask != null)
				result = UpdateUserTask(task, idType, fields, context);

			return result;
		}