public virtual IDataReader GetTopicNewMessageCount(IDbConnection cn, YZResourceType resType, string resId, string uid) { using (OracleCommand cmd = new OracleCommand()) { cmd.Connection = cn as OracleConnection; cmd.BindByName = true; cmd.CommandText = "select NVL(max(readId),0) from YZAppCommunicationRead WHERE resType=:resType and resId=:resId and \"UID\"=:pm_uid"; cmd.Parameters.Add(":resType", OracleDbType.NVarchar2).Value = resType.ToString(); cmd.Parameters.Add(":resId", OracleDbType.NVarchar2).Value = resId; cmd.Parameters.Add(":pm_uid", OracleDbType.NVarchar2).Value = uid; int readId = 0; using (YZReader rd = new YZReader(cmd.ExecuteReader())) { if (rd.Read()) { readId = rd.ReadInt32(0); } } cmd.Parameters.Clear(); cmd.CommandText = "select count(*) from YZAppCommunication WHERE resType=:resType and resId=:resId and id>:readId"; cmd.Parameters.Add(":resType", OracleDbType.NVarchar2).Value = resType.ToString(); cmd.Parameters.Add(":resId", OracleDbType.NVarchar2).Value = resId; cmd.Parameters.Add(":readId", OracleDbType.Int32).Value = readId; return(cmd.ExecuteReader()); } }
public virtual void UpdateTopicReaded(IDbConnection cn, YZResourceType resType, string resId, string uid, int maxReadedMessageId) { using (OracleCommand cmd = new OracleCommand()) { cmd.Connection = cn as OracleConnection; cmd.BindByName = true; StringBuilder sb = new StringBuilder(); sb.AppendLine("DECLARE"); sb.AppendLine("cnt NUMBER;"); sb.AppendLine("cnt1 NUMBER;"); sb.AppendLine("BEGIN"); sb.AppendLine("SELECT COUNT(*) INTO cnt FROM YZAppCommunicationRead WHERE \"UID\"=:pm_uid AND resType=:resType AND resId=:resId AND readId>:readId;"); sb.AppendLine("SELECT COUNT(*) INTO cnt1 FROM YZAppCommunicationRead WHERE \"UID\"=:pm_uid AND resType=:resType AND resId=:resId;"); sb.AppendLine("IF(cnt = 0) THEN"); sb.AppendLine("BEGIN"); sb.AppendLine("IF(cnt1 != 0) THEN"); sb.AppendLine("UPDATE YZAppCommunicationRead SET readId=:readId WHERE \"UID\"=:pm_uid AND resType=:resType AND resId=:resId;"); sb.AppendLine("ELSE"); sb.AppendLine("INSERT INTO YZAppCommunicationRead(\"UID\",resType,resId,readId) VALUES(:pm_uid,:resType,:resId,:readId);"); sb.AppendLine("END IF;"); sb.AppendLine("END;"); sb.AppendLine("END IF;"); sb.AppendLine("END;"); cmd.CommandText = this.SBToString(sb); cmd.Parameters.Add(":pm_uid", OracleDbType.NVarchar2).Value = uid; cmd.Parameters.Add(":resType", OracleDbType.NVarchar2).Value = resType.ToString(); cmd.Parameters.Add(":resId", OracleDbType.NVarchar2).Value = resId; cmd.Parameters.Add(":readId", OracleDbType.Int32).Value = maxReadedMessageId; cmd.ExecuteNonQuery(); } }
public virtual void UpdateReaded(HttpContext context) { YZRequest request = new YZRequest(context); YZResourceType resType = request.GetEnum <YZResourceType>("resType"); string resId = request.GetString("resId"); int msgId = request.GetInt32("msgId"); string uid = YZAuthHelper.LoginUserAccount; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { YZSoft.Web.Social.SocialManager.UpdateReaded(provider, cn, resType, resId, uid, msgId); } } JObject jMessage = new JObject(); YZMessage message = new YZMessage(); message.resType = resType; message.resId = resId; message.uid = uid; message.message = jMessage.ToString(); message.date = DateTime.Now; YZSoft.Web.Push.MessageBus.Instance.PushMessage(null, new string[] { "readed" }, message, false); }
public virtual object AddFavorite(HttpContext context) { YZRequest request = new YZRequest(context); YZResourceType resType = request.GetEnum <YZResourceType>("resType"); string resId = request.GetString("resId"); string comments = request.GetString("comments", null); string uid = YZAuthHelper.LoginUserAccount; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { if (!FavoriteManager.HasFavorited(provider, cn, uid, resType, resId)) { Favorite favorite = new Favorite() { uid = uid, resType = resType, resId = resId, comments = comments, date = DateTime.Now, orderIndex = FavoriteManager.GetNextOrderIndex(provider, cn, uid, resType) }; FavoriteManager.Insert(provider, cn, favorite); } return(true); } } }
public virtual void UpdateTopicReaded(IDbConnection cn, YZResourceType resType, string resId, string uid, int maxReadedMessageId) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; StringBuilder sb = new StringBuilder(); sb.AppendLine("SELECT * FROM YZAppCommunicationRead WHERE uid=@uid AND resType=@resType AND resId=@resId AND readId>@readId"); sb.AppendLine("IF @@ROWCOUNT = 0"); sb.AppendLine("BEGIN"); sb.AppendLine("UPDATE YZAppCommunicationRead SET readId=@readId WHERE uid=@uid AND resType=@resType AND resId=@resId"); sb.AppendLine("IF @@ROWCOUNT = 0"); sb.AppendLine("INSERT INTO YZAppCommunicationRead(uid,resType,resId,readId) VALUES(@uid,@resType,@resId,@readId)"); sb.AppendLine("END"); cmd.CommandText = sb.ToString(); cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = uid; cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; cmd.Parameters.Add("@readId", SqlDbType.Int).Value = maxReadedMessageId; cmd.ExecuteNonQuery(); } }
public YZMessage(string uid, DateTime date, YZResourceType resType, string resId, string message) { this.uid = uid; this.date = date; this.resType = resType; this.resId = resId; this.message = message; }
public YZMessage(string uid, DateTime date, YZResourceType resType, string resId, string message) : this() { this.uid = uid; this.date = date; this.resType = resType; this.resId = resId; this.message = message; }
public virtual IDataReader GetTopicMessageCount(IDbConnection cn, YZResourceType resType, string resId) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; cmd.CommandText = @"SELECT count(*) FROM YZAppCommunication WHERE resType=@resType AND resId=@resId"; cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; return(cmd.ExecuteReader()); } }
public static YZMessageCollection GetNewMessages(IDbConnection cn, YZResourceType resType, string resId, int maxReadedMessageId) { IYZDBProvider dbProvider = YZDBProviderManager.CurrentProvider; IDbCommand cmd = dbProvider.GetResourceCommunicationNewMessagesCommand(resType, resId, maxReadedMessageId); cmd.Connection = cn; using (YZReader reader = new YZReader(cmd.ExecuteReader())) { YZMessageCollection messages = new YZMessageCollection(reader); return messages; } }
public IDataReader HasFavorited(IDbConnection cn, string uid, YZResourceType resType, string resId) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; cmd.CommandText = @"SELECT count(*) FROM YZSysFavorites WHERE uid=@uid AND resType=@resType AND resId=@resId"; cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = this.Convert(uid, false); cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = this.Convert(resId, false); return(cmd.ExecuteReader()); } }
public void DeleteFavorite(IDbConnection cn, string uid, YZResourceType resType, string resId) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; cmd.CommandText = @"DELETE FROM YZSysFavorites WHERE uid=@uid AND resType=@resType AND resId=@resId"; cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = this.Convert(uid, false); cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = this.Convert(resId, false); cmd.ExecuteNonQuery(); } }
public virtual IDataReader GetTopicMessageCount(IDbConnection cn, YZResourceType resType, string resId) { using (OracleCommand cmd = new OracleCommand()) { cmd.Connection = cn as OracleConnection; cmd.BindByName = true; cmd.CommandText = "SELECT COUNT(*) FROM YZAPPCOMMUNICATION WHERE RESTYPE=:RESTYPE AND RESID=:RESID"; cmd.Parameters.Add(":RESTYPE", OracleDbType.NVarchar2).Value = resType.ToString(); cmd.Parameters.Add(":RESID", OracleDbType.NVarchar2).Value = resId; return(cmd.ExecuteReader()); } }
public virtual IDataReader GetTopicNewMessages(IDbConnection cn, YZResourceType resType, string resId, int maxReadedMessageId) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; cmd.CommandText = "SELECT * FROM YZAppCommunication WHERE resType=@resType AND resId=@resId AND id>@id ORDER BY id"; cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; cmd.Parameters.Add("@id", SqlDbType.Int).Value = maxReadedMessageId; return(cmd.ExecuteReader()); } }
public static YZMessageCollection GetNewMessages(IDbConnection cn, YZResourceType resType, string resId, int maxReadedMessageId) { IYZDBProvider dbProvider = YZDBProviderManager.CurrentProvider; IDbCommand cmd = dbProvider.GetResourceCommunicationNewMessagesCommand(resType, resId, maxReadedMessageId); cmd.Connection = cn; using (YZReader reader = new YZReader(cmd.ExecuteReader())) { YZMessageCollection messages = new YZMessageCollection(reader); return(messages); } }
public virtual IDbCommand GetResourceCommunicationNewMessagesCommand(YZResourceType resType, string resId, int maxReadedMessageId) { using (SqlCommand cmd = new SqlCommand()) { cmd.CommandText = "SELECT * FROM YZAppCommunication WHERE resType=@resType AND resId=@resId AND id>@id ORDER BY id"; cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; cmd.Parameters.Add("@id", SqlDbType.Int).Value = maxReadedMessageId; return(cmd); } }
public static int GetNewMessageCount(IDbConnection cn, string uid, YZResourceType resType, string resId) { IYZDBProvider dbProvider = YZDBProviderManager.CurrentProvider; IDbCommand cmd = dbProvider.GetResourceCommunicationNewMessageCountCommand(uid, resType, resId); cmd.Connection = cn; using (YZReader reader = new YZReader(cmd.ExecuteReader())) { if (reader.Read()) return reader.ReadInt32(0); else return 0; } }
public IDataReader GetFavorites(IDbConnection cn, string uid, YZResourceType resType) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; cmd.CommandText = "SELECT * FROM YZSysFavorites WHERE uid=@uid AND resType=@resType ORDER BY orderIndex ASC"; cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = this.Convert(uid, false); cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); return(cmd.ExecuteReader()); } }
public virtual IDbCommand GetResourceCommunicationCountCommand(YZResourceType resType, string resId) { using (SqlCommand cmd = new SqlCommand()) { StringBuilder sb = new StringBuilder(); sb.AppendLine("select count(*) from YZAppCommunication WHERE resType=@resType and resId=@resId"); cmd.CommandText = sb.ToString(); cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; return(cmd); } }
public virtual object GetNewMesssageCount(HttpContext context) { YZRequest request = new YZRequest(context); YZResourceType resType = request.GetEnum <YZResourceType>("resType"); string resId = request.GetString("resId"); string uid = YZAuthHelper.LoginUserAccount; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { return(YZSoft.Web.Social.SocialManager.GetNewMessageCount(provider, cn, resType, resId, uid)); } } }
public static int GetMessageCount(IYZDbProvider provider, IDbConnection cn, YZResourceType resType, string resId) { try { using (YZReader reader = new YZReader(provider.GetTopicMessageCount(cn, resType, resId))) { reader.Read(); return(reader.ReadInt32(0)); } } catch (Exception e) { throw new BPMException(BPMExceptionType.DBInsertDataErr, "YZAppCommunication", e.Message); } }
public virtual IDataReader GetTopicNewMessageCount(IDbConnection cn, YZResourceType resType, string resId, string uid) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; cmd.CommandText = @" DECLARE @readId int SELECT @readId = ISNULL(max(readId),0) FROM YZAppCommunicationRead WHERE resType=@resType AND resId=@resId and uid=@uid SELECT count(*) FROM YZAppCommunication WHERE resType=@resType AND resId=@resId and id>@readId "; cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = uid; return(cmd.ExecuteReader()); } }
public static BPMObjectNameCollection GetNotifyUsers(YZResourceType resType, string resId) { BPMObjectNameCollection uids = new BPMObjectNameCollection(); switch (resType) { case YZResourceType.Group: using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { MemberCollection members = GroupManager.GetGroupMembers(provider, cn, Int32.Parse(resId)); foreach (Member member in members) { uids.Add(member.UID); } } } break; case YZResourceType.SingleChat: using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { P2PGroup.P2PGroup group = P2PGroupManager.GetGroup(provider, cn, Int32.Parse(resId)); uids.Add(group.Account1); uids.Add(group.Account2); } } break; case YZResourceType.Task: using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { uids = NotifyManager.GetNotifyUsersTaskSocial(provider, cn, Int32.Parse(resId)); } } break; } return(uids); }
public virtual void MoveFavorites(HttpContext context) { YZRequest request = new YZRequest(context); string uid = YZAuthHelper.LoginUserAccount; YZResourceType resType = request.GetEnum <YZResourceType>("resType"); string target = request.GetString("target"); MovePosition position = request.GetEnum <MovePosition>("position"); JArray post = request.GetPostData <JArray>(); List <string> ids = post.ToObject <List <string> >(); using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { FavoriteManager.MoveFavorites(provider, cn, uid, resType, ids.ToArray(), target, position); } } }
public static int GetNewMessageCount(IDbConnection cn, string uid, YZResourceType resType, string resId) { IYZDBProvider dbProvider = YZDBProviderManager.CurrentProvider; IDbCommand cmd = dbProvider.GetResourceCommunicationNewMessageCountCommand(uid, resType, resId); cmd.Connection = cn; using (YZReader reader = new YZReader(cmd.ExecuteReader())) { if (reader.Read()) { return(reader.ReadInt32(0)); } else { return(0); } } }
public virtual object CancelFavorite(HttpContext context) { YZRequest request = new YZRequest(context); YZResourceType resType = request.GetEnum <YZResourceType>("resType"); string resId = request.GetString("resId"); string comments = request.GetString("comments", null); string uid = YZAuthHelper.LoginUserAccount; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { if (FavoriteManager.HasFavorited(provider, cn, uid, resType, resId)) { FavoriteManager.DeleteFavorite(provider, cn, uid, resType, resId); } return(false); } } }
public virtual object PostComments(HttpContext context) { YZRequest request = new YZRequest(context); string clientid = request.GetString("clientid", null); YZResourceType resType = request.GetEnum <YZResourceType>("resType"); string resId = request.GetString("resId"); int duration = request.GetInt32("duration", -1); JObject jPost = request.GetPostData <JObject>(); string msg = (string)jPost["message"]; string uid = YZAuthHelper.LoginUserAccount; YZMessage message = new YZMessage(); message.resType = resType; message.resId = resId; message.uid = uid; message.date = DateTime.Now; message.message = msg; message.replyto = -1; message.duration = duration; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); this.PostProcessMessage(cn, message); } using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { SocialManager.Insert(provider, cn, message); SocialManager.UpdateReaded(provider, cn, resType, resId, uid, message.id); } } YZSoft.Web.Push.MessageBus.Instance.onPostComments(clientid, message); return(message); }
public virtual object GetMessages(HttpContext context) { YZRequest request = new YZRequest(context); YZResourceType resType = request.GetEnum <YZResourceType>("resType"); string resId = request.GetString("resId"); YZMessageCollection messagesAll = new YZMessageCollection(); YZMessageCollection messages; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { messages = SocialManager.GetMessages(provider, cn, resType, resId); messagesAll.AddRange(messages); foreach (YZMessage message in messages) { YZMessageCollection replies = SocialManager.GetMessageReplies(provider, cn, message.id); message["Replies"] = replies; message["Praised"] = SocialManager.GetVotePraisedCount(provider, cn, message.id); messagesAll.AddRange(replies); } } } using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (YZMessage message in messagesAll) { this.PostProcessMessage(cn, message); } } return(messages); }
public virtual IDataReader GetSocialMessagesNext(IDbConnection cn, YZResourceType resType, string resId, int msgId, int rows) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; cmd.CommandText = @" WITH A AS( SELECT * FROM YZAppCommunication WHERE resType=@resType AND resId=@resId AND ((id > @msgId) OR @msgId=-1) ), B AS( SELECT *,ROW_NUMBER() OVER(ORDER BY id ASC) AS RowNum FROM A ) SELECT * FROM B WHERE RowNum <= @rows ORDER BY id ASC "; cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; cmd.Parameters.Add("@msgId", SqlDbType.Int).Value = msgId; cmd.Parameters.Add("@rows", SqlDbType.Int).Value = rows; return(cmd.ExecuteReader()); } }
public virtual object GetSocialMessages(HttpContext context) { YZRequest request = new YZRequest(context); YZResourceType resType = request.GetEnum <YZResourceType>("resType"); string resId = request.GetString("resId"); string dir = request.GetString("dir"); int msgId = request.GetInt32("msgId", -1); int rows = request.GetInt32("rows", 20); YZMessageCollection messages; using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider) { using (IDbConnection cn = provider.OpenConnection()) { if (NameCompare.EquName(dir, "prev")) { messages = SocialManager.GetSocialMessagesPrev(provider, cn, resType, resId, msgId, rows); } else { messages = SocialManager.GetSocialMessagesNext(provider, cn, resType, resId, msgId, rows); } } } using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); foreach (YZMessage message in messages) { this.PostProcessMessage(cn, message); } } return(messages); }
public virtual IDataReader GetSocialMessagesNext(IDbConnection cn, YZResourceType resType, string resId, int msgId, int rows) { using (OracleCommand cmd = new OracleCommand()) { cmd.Connection = cn as OracleConnection; cmd.BindByName = true; cmd.CommandText = @" WITH A AS( SELECT * FROM YZAppCommunication WHERE resType=:resType AND resId=:resId AND ((id > :msgId) OR :msgId=-1) ORDER BY id ASC ), B AS( SELECT *,ROWNUM RN__ FROM A ) SELECT * FROM B WHERE RN__ <= :PM_rows ORDER BY id ASC "; cmd.Parameters.Add(":resType", OracleDbType.NVarchar2).Value = resType.ToString(); cmd.Parameters.Add(":resId", OracleDbType.NVarchar2).Value = resId; cmd.Parameters.Add(":msgId", OracleDbType.Int32).Value = msgId; cmd.Parameters.Add(":PM_rows", OracleDbType.Int32).Value = rows; return(cmd.ExecuteReader()); } }
public static void DeleteFavorite(IYZDbProvider provider, IDbConnection cn, string uid, YZResourceType resType, string resId) { try { provider.DeleteFavorite(cn, uid, resType, resId); } catch (Exception e) { throw new BPMException(BPMExceptionType.DBUpdateDataErr, "YZSysFavorites", e.Message); } }
public static int GetNextOrderIndex(IYZDbProvider provider, IDbConnection cn, string uid, YZResourceType resType) { try { return(provider.GetNextOrderIndex(cn, "YZSysFavorites", "uid", uid, "resType", resType.ToString())); } catch (Exception e) { throw new BPMException(BPMExceptionType.DBLoadDataErr, "YZSysFavorites", e.Message); } }
public virtual IDbCommand GetResourceCommunicationNewMessageCountCommand(string uid, YZResourceType resType, string resId) { using (SqlCommand cmd = new SqlCommand()) { StringBuilder sb = new StringBuilder(); sb.AppendLine("declare @readId int"); sb.AppendLine("select @readId = ISNULL(max(readId),0) from YZAppCommunicationRead WHERE resType=@resType and resId=@resId and uid=@uid"); sb.AppendLine("select count(*) from YZAppCommunication WHERE resType=@resType and resId=@resId and id>@readId"); cmd.CommandText = sb.ToString(); cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = uid; return cmd; } }
public virtual void UpdateResourceCommunicationReaded(IDbConnection cn, string uid, YZResourceType resType, string resId, int maxReadedMessageId) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cn as SqlConnection; StringBuilder sb = new StringBuilder(); sb.AppendLine("SELECT * FROM YZAppCommunicationRead WHERE uid=@uid AND resType=@resType AND resId=@resId AND readId>@readId"); sb.AppendLine("IF @@ROWCOUNT = 0"); sb.AppendLine("BEGIN"); sb.AppendLine("UPDATE YZAppCommunicationRead SET readId=@readId WHERE uid=@uid AND resType=@resType AND resId=@resId"); sb.AppendLine("IF @@ROWCOUNT = 0"); sb.AppendLine("INSERT INTO YZAppCommunicationRead(uid,resType,resId,readId) VALUES(@uid,@resType,@resId,@readId)"); sb.AppendLine("END"); cmd.CommandText = sb.ToString(); cmd.Parameters.Add("@uid", SqlDbType.NVarChar).Value = uid; cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; cmd.Parameters.Add("@readId", SqlDbType.Int).Value = maxReadedMessageId; cmd.ExecuteNonQuery(); } }
public virtual IDbCommand GetResourceCommunicationCountCommand(YZResourceType resType, string resId) { using (SqlCommand cmd = new SqlCommand()) { StringBuilder sb = new StringBuilder(); sb.AppendLine("select count(*) from YZAppCommunication WHERE resType=@resType and resId=@resId"); cmd.CommandText = sb.ToString(); cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; return cmd; } }
public static void UpdateReaded(IDbConnection cn, string uid, YZResourceType resType, string resId, int maxReadedMessageId) { IYZDBProvider dbProvider = YZDBProviderManager.CurrentProvider; dbProvider.UpdateResourceCommunicationReaded(cn, uid, resType, resId, maxReadedMessageId); }
public void ProcessRequest(HttpContext context) { try { YZAuthHelper.OAuth(); //YZAuthHelper.AshxAuthCheck(); string loginUid = YZAuthHelper.LoginUserAccount; IDBProvider dbProvider = YZDBProviderManager.CurrentProvider; string method = context.Request.Params["method"]; JsonItem rv = new JsonItem(); // System.Threading.Thread.Sleep(2000); if (method == "Send") { //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&restype=1&message=添加一条哦啊讨论啊&resId=216928&method=Send YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true); string resId = context.Request.Params["resId"]; string msg = context.Request.Params["message"]; if (!string.IsNullOrEmpty(msg.Trim())) { using (IDbConnection cn = dbProvider.OpenConnection()) { YZMessage message = new YZMessage(loginUid, DateTime.Now, resType, resId, msg); message.Insert(cn); YZCommunicationManager.UpdateReaded(cn, loginUid, resType, resId, message.id); JsonItem result = new JsonItem(); rv.Attributes.Add("message", result); message.Serialize(result); } } } else if (method == "GetTaskCommunicationList") { GridPageInfo gridPageInfo = new GridPageInfo(context); SecurityToken token = null; using (BPMConnection bpmcn = new BPMConnection()) { bpmcn.WebOpen(); token = bpmcn.Token; } using (IDbConnection cn = dbProvider.OpenConnection()) { //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&method=GetTaskCommunicationList&SearchType=QuickSearch&Keyword=216928 //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&method=GetTaskCommunicationList&SearchType=QuickSearch&Keyword=REQ2014090001 using (BPMConnection bpmcn = new BPMConnection()) { bpmcn.WebOpen(); IDbCommand cmd = dbProvider.GetTaskCommunicationListCommand(cn, loginUid, token.SIDs, dbProvider.FilterStringCommunicationListTaskTableFilter, dbProvider.FilterStringCommunicationMessageTableFilter, gridPageInfo.Start, gridPageInfo.Limit); cmd.Connection = cn; JsonItemCollection children = new JsonItemCollection(); rv.Attributes.Add("children", children); using (YZReader reader = new YZReader(cmd.ExecuteReader())) { while (reader.Read()) { JsonItem item = new JsonItem(); children.Add(item); string ownerAccount = reader.ReadString("OwnerAccount"); User owner = User.TryGetUser(bpmcn, ownerAccount); string ownerDisplayName = owner != null ? owner.DisplayName : ownerAccount; string lastMsgUid = reader.ReadString("uid"); User lastMsgUser = User.TryGetUser(bpmcn, lastMsgUid); string lastMessageUserShortName = lastMsgUser != null ? lastMsgUser.ShortName : lastMsgUid; TaskState state = (TaskState)reader.ReadEnum("State", typeof(TaskState), TaskState.Unknow); int taskid = reader.ReadInt32("TaskID"); item.Attributes["tid"] = taskid; item.Attributes["sn"] = reader.ReadString("SerialNum"); item.Attributes["pn"] = reader.ReadString("ProcessName"); item.Attributes["user"] = YZStringHelper.GetUserShortName(ownerAccount, ownerDisplayName); item.Attributes["state"] = state.ToString(); item.Attributes["stateText"] = YZStringHelper.GetTaskStateDisplayString(bpmcn, state, taskid); item.Attributes["date"] = YZStringHelper.DateToStringL(reader.ReadDateTime("CreateAt")); string desc = Convert.ToString(reader.ReadString("Description")); item.Attributes["desc"] = String.IsNullOrEmpty(desc) ? "无内容摘要" : desc.CutStrHTML(isHTML: true); item.Attributes["count"] = reader.ReadInt32("count"); item.Attributes["total"] = reader.ReadInt32("total"); item.Attributes["Id"] = reader.ReadInt32("Id"); item.Attributes["lastMessageId"] = reader.ReadInt32("lastMsgId"); item.Attributes["lastMessageUid"] = lastMsgUid; item.Attributes["lastMessageUserShortName"] = lastMessageUserShortName; item.Attributes["lastMessageDate"] = YZStringHelper.DateToStringL(reader.ReadDateTime("date")); item.Attributes["lastMessage"] = reader.ReadString("message"); } } } rv.Attributes["newMessageCount"] = dbProvider.GetTaskCommunicationNewMessageCount(cn, loginUid, token.SIDs); } } else if (method == "GetBadge") { YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true); string resId = context.Request.Params["resId"]; using (IDbConnection cn = dbProvider.OpenConnection()) { rv.Attributes["total"] = YZCommunicationManager.GetMessageCount(cn, resType, resId); rv.Attributes["newMessageCount"] = YZCommunicationManager.GetNewMessageCount(cn, loginUid, resType, resId); } } else if (method == "UpdateReaded") { YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true); string resId = context.Request.Params["resId"]; string strLastId = context.Request.Params["lastid"]; if (String.IsNullOrEmpty(strLastId)) { strLastId = "-1"; } int lastId = Convert.ToInt32(strLastId); using (IDbConnection cn = dbProvider.OpenConnection()) { YZCommunicationManager.UpdateReaded(cn, loginUid, resType, resId, lastId); } } else { //http://bpm.sdt.com/YZSoft/Forms/XForm/%E5%B7%A5%E4%BD%9C%E6%8A%A5%E5%91%8A/%E5%B7%A5%E4%BD%9C%E6%8A%A5%E5%91%8A.aspx?tid=216928 //http://oauth.skyworthdigital.com/WebService/Iservice/Communication.ashx?UserAccount=SDT12872&restype=1&lastid=306&resId=216928 YZResourceType resType = (YZResourceType)Enum.Parse(typeof(YZResourceType), context.Request.Params["resType"], true); string resId = context.Request.Params["resId"]; string strLastId = context.Request.Params["lastid"]; if (String.IsNullOrEmpty(strLastId)) { strLastId = "-1"; } int lastId = Convert.ToInt32(strLastId); //获得数据 JsonItemCollection children = new JsonItemCollection(); rv.Attributes.Add("children", children); using (BPMConnection bpmcn = new BPMConnection()) { bpmcn.WebOpen(); using (IDbConnection cn = dbProvider.OpenConnection()) { YZMessageCollection messages = YZCommunicationManager.GetNewMessages(cn, resType, resId, lastId); messages.Serialize(bpmcn, children); } } } //输出数据 context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // 响应类型 context.Response.AppendHeader("Access-Control-Allow-Methods", "POST"); // 响应头设置 context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type"); context.Response.Charset = "gb2312"; //设置字符集类型 context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); context.Response.ContentType = "application/json;charset=gb2312"; //输出数据 rv.Attributes.Add("success", true); context.Response.Write(rv.ToString()); } catch (Exception e) { JsonItem rv = new JsonItem(); context.Response.AppendHeader("Access-Control-Allow-Origin", "*"); // 响应类型 context.Response.AppendHeader("Access-Control-Allow-Methods", "POST"); // 响应头设置 context.Response.AppendHeader("Access-Control-Allow-Headers", "x-requested-with,content-type"); context.Response.Charset = "gb2312"; //设置字符集类型 context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); context.Response.ContentType = "application/json;charset=gb2312"; rv.Attributes.Add("success", false); rv.Attributes.Add("errorMessage", e.Message); context.Response.Write(rv.ToString()); } }
public virtual IDbCommand GetResourceCommunicationNewMessagesCommand(YZResourceType resType, string resId, int maxReadedMessageId) { using (SqlCommand cmd = new SqlCommand()) { cmd.CommandText = "SELECT * FROM YZAppCommunication WHERE resType=@resType AND resId=@resId AND id>@id ORDER BY id"; cmd.Parameters.Add("@resType", SqlDbType.NVarChar).Value = resType.ToString(); cmd.Parameters.Add("@resId", SqlDbType.NVarChar).Value = resId; cmd.Parameters.Add("@id", SqlDbType.Int).Value = maxReadedMessageId; return cmd; } }