public Wraper GetUsers_log(long currentuserid, string usertype, int PageIndex, int PageSize)
        {
            try
            {
                string constr = ConfigurationManager.ConnectionStrings["HickConnectionString"].ConnectionString.ToString();
                Wraper objwp = new Wraper();
                List<Users> userlist = new List<Users>();
                Users user = null;

                using (SqlConnection conn = new SqlConnection())
                {

                    conn.ConnectionString = constr;
                    conn.Open();

                    StringBuilder sbu = new StringBuilder();

                    //sbu.AppendLine("select *,(select top 1 ConversationDate from Hick_user_Conversation where (Initiator=" + currentuserid + " and Answerer=U.ID) OR (Initiator=U.ID and Answerer=" + currentuserid + ") order by ConversationDate DESC) as ConvDate ");
                    //sbu.AppendLine("FROM Hick_Users as U ");
                    //sbu.AppendLine("WHERE U.ID<>" + currentuserid + " AND LOWER(U.user_type)<>CASE WHEN LOWER('" + usertype + "')='patient' THEN 'patient' ELSE '' END");
                    //sbu.AppendLine("ORDER BY Status DESC,ConvDate DESC,Firstname ASC");

                    using (SqlCommand command = new SqlCommand("hickFetchUsersByCriteria", conn))
                    {
                        command.CommandType = CommandType.StoredProcedure;

                        command.Parameters.Add("@PageIndex", SqlDbType.Int).Value = PageIndex;
                        command.Parameters.Add("@PageSize", SqlDbType.Int).Value = PageSize;

                        command.Parameters.Add("@CurrentUserId", SqlDbType.VarChar).Value = currentuserid.ToString();
                        command.Parameters.Add("@FavouriteUsers", SqlDbType.SmallInt).Value = 0;
                        command.Parameters.Add("@UserType", SqlDbType.VarChar).Value = usertype;
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                user = new Users();
                                //User=reader["asd"]                        }

                                user.Username = ecd.DecryptData((reader["Username"].ToString()), ecd.GetEncryptType());
                                user.Firstname = ecd.DecryptData((reader["Firstname"].ToString()), ecd.GetEncryptType());
                                user.Status = Convert.ToInt32(reader["Status"]);
                                user.Lastname = ecd.DecryptData((reader["Lastname"].ToString()),ecd.GetEncryptType());
                                user.ID = Convert.ToInt32(reader["ID"]);
                                user.StatusMessage = reader["StatusMessage"].ToString();
                                user.Lastloggedin = reader["LastLoggedIN"].ToString();
                                user.Image = reader["Image"].ToString();
                                user.Password = ecd.DecryptData((reader["Password"].ToString()), ecd.GetEncryptType());
                                userlist.Add(user);
                            }

                        }
                    }

                }
                objwp.UsersColl = userlist;
                objwp.GroupsColl = GetGroups(currentuserid);
                return objwp;
            }
            catch (Exception)
            {

                throw;
            }
        }
        public Wraper GetUsers(long currentuserid, int favouriteUsers, int PageIndex, int PageSize, string usertype)
        {
            try
            {

                string constr = ConfigurationManager.ConnectionStrings["HickConnectionString"].ConnectionString.ToString();
                Wraper objwp = new Wraper();
                List<Users> userlist = new List<Users>();
                Users user = null;

                using (SqlConnection conn = new SqlConnection())
                {

                    conn.ConnectionString = constr;
                    conn.Open();
                    StringBuilder sbu = new StringBuilder();

                    //if (favouriteUsers == 0)
                    //{
                    //    sbu.AppendLine("select U.ID,U.Username,Firstname,Status,Lastname,StatusMessage,LastLoggedIN,Image,Password,fav_status,phone_number,(select top 1 ConversationDate from Hick_user_Conversation where (Initiator=" + currentuserid + " and Answerer=U.ID) OR (Initiator=U.ID and Answerer=" + currentuserid + ") order by ConversationDate DESC) as ConvDate ");
                    //    sbu.AppendLine("FROM Hick_Users as U ");
                    //    sbu.AppendLine("LEFT OUTER JOIN hick_favourite_contacts as FC on U.ID=FC.fav_contact_id and FC.user_id=" + currentuserid + "");
                    //    sbu.AppendLine("WHERE U.ID<>" + currentuserid + "");
                    //    sbu.AppendLine("ORDER BY Status DESC,ConvDate DESC,Firstname ASC");
                    //}
                    //else
                    //{
                    //    sbu.AppendLine("select * from Hick_Users hu inner join hick_favourite_contacts hf on hf.fav_contact_id=hu.ID and hf.fav_status=1 where hf.user_id=" + currentuserid + "");
                    //}
                    //using (SqlCommand command = new SqlCommand(sbu.ToString(), conn))
                    using (SqlCommand command = new SqlCommand("hickFetchUsersByCriteria", conn))
                    {
                        command.CommandType = CommandType.StoredProcedure;

                        command.Parameters.Add("@PageIndex", SqlDbType.Int).Value = PageIndex;
                        command.Parameters.Add("@PageSize", SqlDbType.Int).Value = PageSize;

                        command.Parameters.Add("@CurrentUserId", SqlDbType.VarChar).Value = currentuserid.ToString();
                        command.Parameters.Add("@FavouriteUsers", SqlDbType.SmallInt).Value = favouriteUsers;
                        command.Parameters.Add("@UserType", SqlDbType.VarChar).Value = usertype;

                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                //ConsentedUsers user1 = new ConsentedUsers();
                                user = new Users();
                                //User=reader["asd"] }

                                user.Username = ecd.DecryptData(DBHelper.getString(reader, "Username"), ecd.GetEncryptType());
                                user.Firstname = ecd.DecryptData(DBHelper.getString(reader, "Firstname"), ecd.GetEncryptType());
                                user.Status = DBHelper.getInt(reader, "Status");
                                user.Lastname = ecd.DecryptData(DBHelper.getString(reader, "LastName"), ecd.GetEncryptType());
                                user.ID = DBHelper.getInt(reader, "Id") == 0 ? Convert.ToInt32(reader["Id"]) : DBHelper.getInt(reader, "Id");
                                user.StatusMessage = DBHelper.getString(reader, "StatusMessage");
                                user.Lastloggedin = DBHelper.getString(reader, "LastLoggedIN");
                                user.Image = DBHelper.getString(reader, "Image");
                                user.Password = ecd.DecryptData(DBHelper.getString(reader, "Password"), ecd.GetEncryptType());
                                user.ReferenceID = DBHelper.getInt64(reader, "ReferenceID");
                                user.Favorites = DBHelper.getInt16(reader, "fav_status");
                                user.PhoneNumber = DBHelper.getString(reader, "phone_number");
                                userlist.Add(user);



                                //user.Username = DBHelper.getString(reader, "Username");
                                //user.Firstname = DBHelper.getString(reader, "Firstname");
                                //user.Status = DBHelper.getInt(reader, "Status");
                                //user.Lastname = DBHelper.getString(reader, "LastName");
                                //user.ID = DBHelper.getInt(reader, "Id") == 0 ? Convert.ToInt32(reader["Id"]) : DBHelper.getInt(reader, "Id");
                                //user.StatusMessage = DBHelper.getString(reader, "StatusMessage");
                                //user.Lastloggedin = DBHelper.getString(reader, "LastLoggedIN");
                                //user.Image = DBHelper.getString(reader, "Image");
                                //user.Password = DBHelper.getString(reader, "Password");
                                //user.ReferenceID = DBHelper.getInt64(reader, "ReferenceID");
                                //user.Favorites = DBHelper.getInt(reader, "fav_status");
                                //user.PhoneNumber = DBHelper.getString(reader, "phone_number");
                                //user.FileExt = DBHelper.getString(reader, "ConsentFormExt");
                                //user.DateOfBirth = DBHelper.getDateTime(reader, "dateofbirth").ToString(Utility.GlobalDateFormat);
                                // user.ConsentFormUploaded = DBHelper.getBool(reader, "HasFormUploaded");
                                //user.showConsentButton = !DBHelper.getBool(reader, "HasFormUploaded") ? "block" : "none";
                                //user.showDownloadButton = DBHelper.getBool(reader, "HasFormUploaded") ? "block" : "none";
                                //userlist.Add(user);



                            }
                        }
                    }
                    if (userlist.Count > 0)
                    {
                        for (int i = 0; i < userlist.Count; i++)
                        {
                            int peerid = userlist[i].ID;

                            //StringBuilder sb = new StringBuilder();
                            //sb.AppendLine("select UC.ID from Hick_user_Conversation UC");
                            //sb.AppendLine("INNER JOIN Hick_Conversation_log CL on UC.ID=CL.Conversation_Id");
                            //sb.AppendLine("where ((UC.Initiator=" + currentuserid + " and UC.Answerer=" + peerid + ") or (UC.Initiator=" + peerid + " and UC.Answerer=" + currentuserid + ")) and UC.ConversationDate=CONVERT(date, @date)");
                            //sb.AppendLine("AND CL.peerid=" + peerid + " and CL.Read_Status=" + (int)ReadStatus.UnRead + " and CL.Message_Type=" + (int)MessageTypes.Text + "");

                            using (SqlCommand command = new SqlCommand("sp_hick_FetchUnreadMsgSts", conn))
                            {
                                command.CommandType = CommandType.StoredProcedure;

                                command.Parameters.AddWithValue("@CurUsr", currentuserid);
                                command.Parameters.AddWithValue("@PeerId", peerid);
                                command.Parameters.AddWithValue("@date", DateTime.UtcNow);
                                command.Parameters.AddWithValue("@ReadStatusUnread", (int)ReadStatus.UnRead);
                                command.Parameters.AddWithValue("@MsgTypeTxt", (int)MessageTypes.Text);
                                using (SqlDataReader reader = command.ExecuteReader())
                                {
                                    if (reader.HasRows)
                                    {
                                        userlist[i].UnReadMessages = true;
                                    }
                                }
                            }
                            //sb = null;
                            //sb = new StringBuilder();
                            //sb.AppendLine("select UC.ID,CL.PeerId from Hick_user_Conversation UC");
                            //sb.AppendLine("INNER JOIN Hick_VideoConversation_Log CL on UC.ID=CL.ConversationId");
                            //sb.AppendLine("where ((UC.Initiator=" + currentuserid + " and UC.Answerer=" + peerid + ") or (UC.Initiator=" + peerid + " and UC.Answerer=" + currentuserid + ")) and UC.ConversationDate=CONVERT(date, @date)");
                            //sb.AppendLine("and CL.Status=" + (int)ReadStatus.CallInitiated + "");
                            using (SqlCommand command = new SqlCommand("sp_hick_IncomingCall", conn))
                            {
                                command.CommandType = CommandType.StoredProcedure;

                                command.Parameters.AddWithValue("@CurUsrId", currentuserid);
                                command.Parameters.AddWithValue("@PeerId", peerid);
                                command.Parameters.AddWithValue("@date", DateTime.UtcNow);
                                command.Parameters.AddWithValue("@CallInitiateSts", (int)ReadStatus.CallInitiated);
                                using (SqlDataReader reader = command.ExecuteReader())
                                {
                                    if (reader.HasRows)
                                    {
                                        while (reader.Read())
                                        {
                                            if (currentuserid != Convert.ToInt32(reader["PeerId"]))
                                            {
                                                userlist[i].IncomingCall = true;
                                            }
                                        }
                                    }
                                }
                            }

                            string ChatDuration = TxtChatDuration(currentuserid, peerid).Trim();
                            string VidDuration = VideoDuration(currentuserid, peerid).Trim();
                            string TaskAssignDuration = TaskDuration(currentuserid, peerid).Trim();
                            string AudioDuration = AudioCallDuration(peerid).Trim();

                            TimeSpan TotalDuration = new TimeSpan();
                            //if (!string.IsNullOrEmpty(ChatDuration) && !string.IsNullOrEmpty(VidDuration))
                            //{
                            //    TotalDuration = TimeSpan.Parse(ChatDuration) + TimeSpan.Parse(VidDuration) + TimeSpan.Parse(TaskAssignDuration);
                            //}
                            //else if (string.IsNullOrEmpty(ChatDuration) && !string.IsNullOrEmpty(VidDuration))
                            //{
                            //    TotalDuration = TimeSpan.Parse(VidDuration);
                            //}
                            //else if (string.IsNullOrEmpty(VidDuration) && !string.IsNullOrEmpty(ChatDuration))
                            //{
                            //    TotalDuration = TimeSpan.Parse(ChatDuration);
                            //}

                            if (!string.IsNullOrEmpty(ChatDuration))
                            {
                                TotalDuration = TotalDuration.Add(TimeSpan.Parse(ChatDuration));
                            }
                            if (!string.IsNullOrEmpty(VidDuration))
                            {
                                TotalDuration = TotalDuration.Add(TimeSpan.Parse(VidDuration));
                            }
                            if (!string.IsNullOrEmpty(TaskAssignDuration))
                            {
                                TotalDuration = TotalDuration.Add(TimeSpan.Parse(TaskAssignDuration));
                            }
                            if (!string.IsNullOrEmpty(AudioDuration))
                            {
                                TotalDuration = TotalDuration.Add(TimeSpan.Parse(AudioDuration));
                            }

                            if (TotalDuration.Hours > 0 || TotalDuration.Minutes > 0)
                            {
                                userlist[i].VideoCallDuration = string.Format("{0:00}:{1:00}", TotalDuration.Hours, TotalDuration.Minutes);
                            }
                            else
                            {
                                userlist[i].VideoCallDuration = "";
                            }
                        }

                    }

                    objwp.UsersColl = userlist;
                    if (favouriteUsers == 0)
                    {
                        objwp.GroupsColl = GetGroups(currentuserid);
                    }
                    return objwp;
                }

            }
            catch (Exception)
            {

                throw;
            }
        }