public List <String> GetUsersWithStatus(int ticketId, UserTicketStatus status, List <TicketUsersType> types) { List <String> list = new List <String>(); var strSql = @"Select u.firstname+' '+u.lastname as UserName from ticketusers tu, users u Where tu.TicketID = @TicketID AND tu.userid=u.userid AND tu.TicketStatus = @Status"; if (types != null) { var typesId = types.Select(x => (int)x); strSql += " AND Type in (" + string.Join(",", typesId) + ")"; } Database db = DatabaseFactory.CreateDatabase(); using (DbCommand dbCommand = db.GetSqlStringCommand(strSql)) { try { db.AddInParameter(dbCommand, "TicketID", DbType.Int32, ticketId); db.AddInParameter(dbCommand, "Status", DbType.Int32, (int)status); using (var dataReader = db.ExecuteReader(dbCommand)) { while (dataReader.Read()) { list.Add(dataReader["UserName"].ToString()); } } } catch (Exception ex) { WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]", strSql, base.FormatParameters(dbCommand.Parameters), ex.Message)); } } return(list); }
public bool UpdateTicketStatus(int ticketId, UserTicketStatus status) { string where = " TicketID = @TicketID "; //var strSql1 = "update TicketUsers set [ShowNotification] = 1 where " + where + " AND UserID <> @UserID ;";//去除更新气泡的操作,更改状态不进行更改气泡 var strSql1 = ""; strSql1 += "update TicketUsers set [TicketStatus] = @Status where " + where; Database db = DatabaseFactory.CreateDatabase(); using (DbCommand dbCommand = db.GetSqlStringCommand(strSql1)) { try { db.AddInParameter(dbCommand, "UserId", DbType.Int32, IdentityContext.UserID); db.AddInParameter(dbCommand, "TicketID", DbType.Int32, ticketId); db.AddInParameter(dbCommand, "Status", DbType.Int32, (int)status); int rows = db.ExecuteNonQuery(dbCommand); return(rows >= 0); } catch (Exception ex) { WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]", strSql1, base.FormatParameters(dbCommand.Parameters), ex.Message)); return(false); } } }
/// <summary> /// 更新指定的Ticket,覆盖指定范围用户的Ticket状态(自动设置显示气泡通知). /// </summary> /// <param name="ticketId">The ticket identifier.</param> /// <param name="status">The status.</param> /// <param name="users">The users.</param> /// <returns></returns> public bool UpdateTicketStatus(int ticketId, UserTicketStatus status, List <int> users, List <TicketUsersType> types) { this.ClearBrokenRuleMessages(); if (!ticketUserRpst.UpdateTicketStatus(ticketId, status, users, types)) { this.AddBrokenRuleMessage(); return(false); } return(true); }
public static string GetUserTicketStatus(RestCommand command, int userTicketStatusID) { UserTicketStatus userTicketStatus = UserTicketStatuses.GetUserTicketStatus(command.LoginUser, userTicketStatusID); if (userTicketStatus.OrganizationID != command.Organization.OrganizationID) { throw new RestException(HttpStatusCode.Unauthorized); } return(userTicketStatus.GetXml("UserTicketStatus", true)); }
public bool UpdateTicketStatus(int ticketId, UserTicketStatus status, List <int> users, List <TicketUsersType> types) { string where = " TicketID = @TicketID AND ("; if (users != null) { where += " UserId in (" + string.Join(",", users) + ") "; } else { where += " 1 = 0 "; } if (types != null) { var typesId = types.Select(x => (int)x); where += " OR Type in (" + string.Join(",", typesId) + ")"; } else { where += " OR 1 = 0"; } where += ")"; var strSql1 = "update TicketUsers set [ShowNotification] = 1 where " + where + " AND UserID <> @UserID ;"; strSql1 += "update TicketUsers set [TicketStatus] = @Status where " + where; Database db = DatabaseFactory.CreateDatabase(); using (DbCommand dbCommand = db.GetSqlStringCommand(strSql1)) { try { db.AddInParameter(dbCommand, "UserId", DbType.Int32, IdentityContext.UserID); db.AddInParameter(dbCommand, "TicketID", DbType.Int32, ticketId); db.AddInParameter(dbCommand, "Status", DbType.Int32, (int)status); int rows = db.ExecuteNonQuery(dbCommand); return(rows >= 0); } catch (Exception ex) { WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]", strSql1, base.FormatParameters(dbCommand.Parameters), ex.Message)); return(false); } } }
/// <summary> /// 获得指定TicketStatus的所有用户名字. /// </summary> /// <param name="ticketId">The ticket identifier.</param> /// <param name="status">The status.</param> /// <param name="users">The users.</param> /// <returns></returns> public List <String> GetUsersWithStatus(int ticketId, UserTicketStatus status, List <TicketUsersType> types) { return(ticketUserRpst.GetUsersWithStatus(ticketId, status, types)); }