public List<UserConversation> InitiateChat(long currentid, long peerid, long groupid) { try { List<UserConversation> objcoll = new List<UserConversation>(); UserConversation objconversation = null; if (currentid != 0 && peerid != 0) { string constr = ConfigurationManager.ConnectionStrings["HickConnectionString"].ConnectionString.ToString(); using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = constr; conn.Open(); bool isexist = false; //using (SqlCommand command = new SqlCommand("select * from Hick_user_Conversation where ((Initiator=" + currentid + " and Answerer=" + peerid + ") or (Initiator=" + peerid + " and Answerer=" + currentid + ")) and ConversationDate=CONVERT(date, @date)", conn)) using (SqlCommand command = new SqlCommand("sp_hick_FetchUserConversationForToday", conn)) { command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@CurrentUserId", currentid); command.Parameters.AddWithValue("@PeerId", peerid); command.Parameters.AddWithValue("@Date", DateTime.UtcNow); command.Parameters.AddWithValue("@GroupId", 0); using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { isexist = true; while (reader.Read()) { objconversation = new UserConversation(); objconversation.Id = Convert.ToInt32(reader["ID"]); if (reader["ischatOn"] != System.DBNull.Value) { objconversation.IsChatOn = Convert.ToInt32(reader["ischatOn"]); } else { objconversation.IsChatOn = 0; } if (reader["total_txtchat_dauration"] != System.DBNull.Value) { objconversation.Total_Txtchat_Dauration = Convert.ToString(reader["total_txtchat_dauration"]); } else { objconversation.Total_Txtchat_Dauration = string.Empty; } objcoll.Add(objconversation); } } } } if (!isexist) { //var cmd = "INSERT INTO Hick_user_Conversation (Initiator,Answerer,ConversationDate) VALUES (@curuser,@peeruser,@date);SELECT CAST(scope_identity() AS bigint)"; using (SqlCommand command = new SqlCommand("sp_hick_InsertHickUserConversation", conn)) { command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@Curuser", currentid); command.Parameters.AddWithValue("@Peeruser", peerid); command.Parameters.AddWithValue("@Date", DateTime.UtcNow); objconversation = new UserConversation(); objconversation.Id = (long)command.ExecuteScalar(); objcoll.Add(objconversation); } } UpdateReadStatus(objcoll[0].Id, currentid, (int)ReadStatus.Read, (int)MessageTypes.Text); } } else if (groupid != 0) { objconversation = new UserConversation(); objconversation.Id = InitiateGroupChat(groupid); objcoll.Add(objconversation); UpdateGroupMessageState(groupid, currentid); } return objcoll; } catch (Exception) { throw; } }
public static List<UserConversation> insertpeerconversation(string currentid, string peerid) { List<UserConversation> conversationlog = new List<UserConversation>(); UserConversation conver = null; using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = Utility.DBConnectionString; conn.Open(); using (SqlCommand command = new SqlCommand( "select * from Hick_user_Conversation where (Initiator='" + currentid + "' or Answerer='" + currentid + "')and (Initiator='" + peerid + "' or Answerer='" + peerid + "')and (ConversationDate=convert(date, getdate()))", conn)) { using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows == true) { while (reader.Read()) { conver = new UserConversation(); conver.Id = Convert.ToInt64(reader["ID"]); conver.Answerer = Convert.ToInt64(reader["Answerer"]); conver.Initiator = Convert.ToInt64(reader["Initiator"]); // conver.Date = Convert.ToInt64(reader["ConversationDate"]); conversationlog.Add(conver); } } else { string insertstring = @"insert into Hick_user_Conversation values('" + currentid + "','" + peerid + "',GETDATE()) "; SqlCommand cmd = new SqlCommand(insertstring, conn); SqlDataAdapter adp = new SqlDataAdapter(); adp.InsertCommand = cmd; adp.InsertCommand.ExecuteNonQuery(); } return conversationlog; } } } }
public UserConversation AddUserToGroup(long currentuserid, long groupid, long selecteduser, long peerid, long conversationid) { try { string uniqueGroupId = string.Empty; long _groupid = 0; UserConversation objuc = new UserConversation(); string constr = ConfigurationManager.ConnectionStrings["HickConnectionString"].ConnectionString.ToString(); using (SqlConnection conn = new SqlConnection(constr)) { conn.ConnectionString = constr; conn.Open(); StringBuilder sb = new StringBuilder(); if (groupid == 0) { /* create new group*/ //if (selecteduser != peerid) //{ // string userId = currentuserid.ToString(); // string groupUsers = selecteduser.ToString() + ',' + peerid.ToString(); // uniqueGroupId = GetUniqueGroupId(userId, groupUsers); //} //else //{ // uniqueGroupId = GetUniqueGroupId(currentuserid.ToString(), selecteduser.ToString()); //} if (peerid != 0) { uniqueGroupId = GetUniqueGroupId(currentuserid.ToString(), peerid.ToString()); } else if (peerid == 0) { uniqueGroupId = GetUniqueGroupId(currentuserid.ToString(), selecteduser.ToString()); } HickGroups existingGroup = GetGroupByUniqueId(uniqueGroupId); if (existingGroup == null) { //sb.AppendLine("INSERT INTO hick_groups (created_by,created_date,group_unique_key) VALUES (@createdBy,@createdDate,@group_unique_key);SELECT CAST(scope_identity() AS bigint)"); using (SqlCommand command = new SqlCommand("sp_hick_InsertGroups", conn)) { command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@createdBy", currentuserid); command.Parameters.AddWithValue("@createdDate", DateTime.UtcNow); command.Parameters.AddWithValue("@group_unique_key", uniqueGroupId); _groupid = (long)command.ExecuteScalar(); } if (_groupid != 0) { /* adding loggedin user to the created group */ //sb = new StringBuilder(); //sb.AppendLine("INSERT INTO hick_group_users (group_id,user_id,created_date) VALUES (@groupid,@userid,@createddate)"); //if (peerid != 0) //{ // sb.AppendLine("INSERT INTO hick_group_users (group_id,user_id,created_date) VALUES (@groupid,@peerid,@createddate)"); // //sb.AppendLine("UPDATE Hick_Conversation_log SET group_id=@groupid WHERE Conversation_Id=@converstnid"); // sb.AppendLine("INSERT INTO hick_previous_log (group_id,conversation_id,created_date) VALUES (@groupid,@converstnid,@createddate)"); //} //else if (peerid == 0) //{ // sb.AppendLine("INSERT INTO hick_group_users (group_id,user_id,created_date) VALUES (@groupid,@selecteduser,@createddate)"); //} using (SqlCommand command = new SqlCommand("sp_hik_AddUsersToGroup", conn)) { command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@groupid", _groupid); command.Parameters.AddWithValue("@userid", currentuserid); command.Parameters.AddWithValue("@createddate", DateTime.UtcNow); //if (peerid != 0) //{ // command.Parameters.AddWithValue("@peerid", peerid); // command.Parameters.AddWithValue("@converstnid", conversationid); //} //else if (peerid == 0) //{ // command.Parameters.AddWithValue("@selecteduser", selecteduser); //} command.Parameters.AddWithValue("@peerid", peerid); command.Parameters.AddWithValue("@converstnid", conversationid); command.Parameters.AddWithValue("@selecteduser", selecteduser); command.ExecuteNonQuery(); } } } else { _groupid = existingGroup.Id; } } else { _groupid = groupid; } if (_groupid != 0) { #region /* Initiate group chat */ objuc.Id = InitiateGroupChat(_groupid); objuc.GroupId = _groupid; /* checking for the user already exist */ bool isuserExist = false; //sb = new StringBuilder(); //sb.AppendLine("SELECT * FROM hick_group_users WHERE group_id=@groupid AND user_id=@userid"); using (SqlCommand command = new SqlCommand("sp_hick_FetchAllGroupUsers", conn)) { command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@groupid", _groupid); command.Parameters.AddWithValue("@userid", selecteduser); using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { isuserExist = true; } } } if (!isuserExist) { /* adding selected user to the created group */ string uniqueKey = string.Empty; bool userExists = false; List<string> usersList = new List<string>(); //string cmdSelectGroup = string.Empty; //cmdSelectGroup = "select * from hick_groups where id=" + _groupid; using (SqlCommand command = new SqlCommand("sp_hick_FetchAllGroups", conn)) { command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@GroupId", _groupid); using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { uniqueKey = Convert.ToString(reader["group_unique_key"]); } } } } string[] groupUsers = uniqueKey.Split('-'); for (int i = 0; i < groupUsers.Length; i++) { if (groupUsers[i] == selecteduser.ToString()) { //selected user already exists; userExists = true; } usersList.Add(groupUsers[i]); } if (userExists == false) { string seperator = ","; usersList.Add(selecteduser.ToString()); string users = string.Join(seperator, usersList.ToArray()); uniqueGroupId = GetUniqueGroupId("", users); HickGroups existingGroup = GetGroupByUniqueId(uniqueGroupId); if (existingGroup != null) { // Group with selected users set already rexist; } else { //update existing group //sb = new StringBuilder(); //sb.AppendLine("UPDATE hick_groups SET group_unique_key='" + uniqueGroupId + "', created_date='" + DateTime.UtcNow + "' where id=" + _groupid + ""); //sb.AppendLine("INSERT INTO hick_group_users (group_id,user_id,created_date) values (@grpId,@userId,@createddate)"); // var cmd = "UPDATE hick_groups SET group_unique_key='" + uniqueGroupId + "', created_date='" + DateTime.UtcNow + "' where id=" + groupid; using (SqlCommand command = new SqlCommand("sp_hick_UpdGroupsInsGroupUsers", conn)) { command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@grpId", _groupid); command.Parameters.AddWithValue("@userId", selecteduser); command.Parameters.AddWithValue("@createddate", DateTime.UtcNow); command.Parameters.AddWithValue("@uniqueId", uniqueGroupId); command.ExecuteNonQuery(); } //var insertGroupUsers = "insert into hick_group_users (group_id,user_id,created_date) values (@grpId,@userId,@createddate)"; //using (SqlCommand insertCommand = new SqlCommand(insertGroupUsers, conn)) //{ // insertCommand.Parameters.AddWithValue("@grpId", groupid); // insertCommand.Parameters.AddWithValue("@userId", selecteduser); // insertCommand.Parameters.AddWithValue("@createddate", DateTime.UtcNow); // //insertCommand.Parameters.AddWithValue("@grpStatus", 1); // insertCommand.ExecuteNonQuery(); //} } } else { //user already exists } //sb = new StringBuilder(); //sb.AppendLine("INSERT INTO hick_group_users (group_id,user_id,created_date) VALUES (@groupid,@userid,@createddate)"); //using (SqlCommand command = new SqlCommand(sb.ToString(), conn)) //{ // command.Parameters.AddWithValue("@groupid", _groupid); // command.Parameters.AddWithValue("@userid", selecteduser); // command.Parameters.AddWithValue("@createddate", DateTime.UtcNow); // command.ExecuteNonQuery(); //} } #endregion } } return objuc; } catch (Exception) { throw; } }