Exemple #1
0
        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);
        }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
 /// <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);
 }
Exemple #4
0
        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));
        }
Exemple #5
0
        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);
                }
            }
        }
Exemple #6
0
 /// <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));
 }