/// <summary> /// Update personal profile from app screens. /// </summary> /// <param name="sessionKey">string</param> /// <param name="firstName">string</param> /// <param name="lastName">string</param> /// <param name="displayName">string</param> /// <param name="isUser">string</param> /// <param name="isExpert">string</param> /// <param name="catsubcat">string</param> /// <param name="description">string</param> /// <param name="countrycode">string</param> /// <param name="mobileNumber">string</param> /// <returns>SessionResponseObject</returns> public SessionResponseObject UpdatePersonalInfoByUserId(string sessionKey, string firstName, string lastName, string displayName, string isUser, string isExpert, string catsubcat, string description, string mobileNumber) { AuthenticationEngine authEngine = new AuthenticationEngine(); User user = new User(); bool isValid = authEngine.IsValidSession(sessionKey); SessionResponseObject responseObject = new SessionResponseObject(); ResponseObjectForAnything obj = new ResponseObjectForAnything(); if (isValid) { if (!string.IsNullOrEmpty(sessionKey)) { obj = authEngine.GetUserFromSession(sessionKey); user = (User)Serializer.JSONStringToObject<User>(obj.ResultObjectJSON); } if(user != null) { try { Database db = DatabaseFactory.CreateDatabase(); DbCommand dbCommand = db.GetStoredProcCommand("usp_UpdateProfileByUserID"); db.AddInParameter(dbCommand, "UserID", DbType.Int32, user.UserID); db.AddInParameter(dbCommand, "FirstName", DbType.String, firstName); db.AddInParameter(dbCommand, "LastName", DbType.String, lastName); db.AddInParameter(dbCommand, "DisplayName", DbType.String, displayName); db.AddInParameter(dbCommand, "IsUser", DbType.Boolean, Convert.ToBoolean(isUser)); db.AddInParameter(dbCommand, "IsExpert", DbType.Boolean, Convert.ToBoolean(isExpert)); string[] lstcatsubcat = catsubcat.Split(";".ToCharArray()); DataSet dataSet = new DataSet(); DataTable dataTable = dataSet.Tables.Add(); dataTable.Columns.Add("CategoryID"); dataTable.Columns.Add("SubCategoryID"); for (int count = 0; count < lstcatsubcat.Length - 1; count++) { string category = lstcatsubcat[count].Split(",".ToCharArray())[0]; string subcategory = lstcatsubcat[count].Split(",".ToCharArray())[1]; dataTable.Rows.Add(new object[] { category, subcategory }); } db.AddInParameter(dbCommand, "CatSubCat", DbType.String, dataSet.GetXml()); db.AddInParameter(dbCommand, "BriefDescription", DbType.String, description); db.AddInParameter(dbCommand, "MobileNumber", DbType.String, mobileNumber); dbCommand.ExecuteNonQuery(); responseObject.ResultCode = "SUCCESS"; responseObject.ResultMessage = "Profile information updated successfully."; } catch(Exception ex) { responseObject.ResultCode = "ERROR"; responseObject.ResultMessage = ex.Message; CustomException exc = new CustomException(ex.ToString(), this.ToString(), "UpdatePersonalInfoByUserId", System.DateTime.Now); ExceptionManager.PublishException(exc); } } } return (responseObject); }
/// <summary> /// This method sets the personal profile information /// of the logged in users. /// </summary> /// <param name="sessionKey">string</param> /// <param name="firstName">string</param> /// <param name="lastName">string</param> /// <param name="displayName">string</param> /// <param name="isUser">string</param> /// <param name="isExpert">string</param> /// <param name="catsubcat">string</param> /// <param name="description">string</param> /// <param name="mobileNumber">string</param> /// <returns>string</returns> public string UpdatePersonalInfoByUserIdJSON(string sessionKey, string firstName, string lastName, string displayName, string isUser, string isExpert, string catsubcat, string description, string mobileNumber) { string response = ""; SessionResponseObject responseObject = new SessionResponseObject(); responseObject = UpdatePersonalInfoByUserId(sessionKey, firstName, lastName, displayName, isUser, isExpert, catsubcat, description, mobileNumber); response = Serializer.ObjectToJSON(responseObject); return response; }
/// <summary> /// This method saves the quick blox credentials /// for newly registered user. /// </summary> /// <param name="sessionKey">string</param> /// <param name="email">string</param> /// <param name="password">string</param> /// <returns>string</returns> public string SaveQBDetailsJSON(string sessionKey, string email, string password) { string response = ""; SessionResponseObject responseObject = new SessionResponseObject(); responseObject = SaveQBDetails(sessionKey, email, password); response = Serializer.ObjectToJSON(responseObject); return response; }
/// <summary> /// This method creates a user/expert into the system /// and then creates the session for the user to log in. /// </summary> /// <param name="firstName">string</param> /// <param name="lastName">string</param> /// <param name="displayName">string</param> /// <param name="emailID">string</param> /// <param name="isUser">string</param> /// <param name="isExpert">string</param> /// <param name="catsubcat">string</param> /// <param name="area">string</param> /// <param name="city">string</param> /// <param name="password">string</param> /// <param name="deviceTokenId">string</param> /// <returns>SessionResponseObject</returns> public ResponseObjectForAnything CreateUser(string firstName, string lastName, string displayName, string emailID, string address2, string city, string pinCode, string isUser, string isExpert, string catsubcat, string password, string deviceTokenId) { AuthenticationEngine authEngine = new AuthenticationEngine(); int userId = -1; SessionResponseObject sessionObject = new SessionResponseObject(); ResponseObjectForAnything responseObject = new ResponseObjectForAnything(); try { string useraccount = authEngine.CheckExistingAccount(emailID); if (useraccount == "SUCCESS") { Database db = DatabaseFactory.CreateDatabase(); DbCommand dbCommand = db.GetStoredProcCommand("usp_CreateUser"); db.AddInParameter(dbCommand, "FirstName", DbType.String, firstName); db.AddInParameter(dbCommand, "LastName", DbType.String, lastName); db.AddInParameter(dbCommand, "DisplayName", DbType.String, displayName); db.AddInParameter(dbCommand, "EmailID", DbType.String, emailID); db.AddInParameter(dbCommand, "Address2", DbType.String, address2); db.AddInParameter(dbCommand, "City", DbType.String, city); db.AddInParameter(dbCommand, "PinCode", DbType.String, pinCode); float latitude, longitude; GeoHelper geoHelper = new GeoHelper(); geoHelper.GetGeoLocationByPinCode(pinCode, out latitude, out longitude); db.AddInParameter(dbCommand, "Latitude", DbType.Decimal, latitude); db.AddInParameter(dbCommand, "Longitude", DbType.Decimal, longitude); db.AddInParameter(dbCommand, "IsUser", DbType.Boolean, Convert.ToBoolean(isUser)); db.AddInParameter(dbCommand, "IsExpert", DbType.Boolean, Convert.ToBoolean(isExpert)); string[] lstcatsubcat = catsubcat.Split(";".ToCharArray()); DataSet dataSet = new DataSet(); DataTable dataTable = dataSet.Tables.Add(); dataTable.Columns.Add("CategoryID"); dataTable.Columns.Add("SubCategoryID"); for(int count =0; count <lstcatsubcat.Length - 1; count++) { string category = lstcatsubcat[count].Split(",".ToCharArray())[0]; string subcategory = lstcatsubcat[count].Split(",".ToCharArray())[1]; dataTable.Rows.Add(new object[] { category, subcategory }); } db.AddInParameter(dbCommand, "CatSubCat", DbType.String, dataSet.GetXml()); db.AddInParameter(dbCommand, "Password", DbType.String, BitConverter.ToString(SHA1.Create().ComputeHash(Encoding.Default.GetBytes(password + ""))).Replace("-", "")); db.AddInParameter(dbCommand, "DeviceTokenId", DbType.String, deviceTokenId); userId = Int32.Parse(db.ExecuteScalar(dbCommand).ToString()); responseObject.ResultCode = "SUCCESS"; responseObject.ResultObjectJSON = Serializer.ObjectToJSON(sessionObject); responseObject.ResultObjectRecordCount = userId; if (responseObject.ResultObjectRecordCount <= 0) { responseObject.ResultMessage = "Email Id already exists."; } } else { responseObject.ResultCode = "ERROR"; responseObject.ResultMessage = "Email Id already exists."; } } catch (Exception ex) { responseObject.ResultCode = "ERROR"; responseObject.ResultMessage = ex.Message; CustomException exc = new CustomException(ex.ToString(), this.ToString(), "CreateUser", System.DateTime.Now); ExceptionManager.PublishException(exc); } return (responseObject); }
/// <summary> /// This method saves the quick blox credentials /// for newly registered user. /// </summary> /// <param name="sessionKey">string</param> /// <param name="email">string</param> /// <param name="password">string</param> /// <returns>string</returns> public SessionResponseObject SaveQBDetails(string sessionKey, string email, string password) { SessionResponseObject responseObject = new SessionResponseObject(); int qbuserid = 0; try { Database db = DatabaseFactory.CreateDatabase(); DbCommand dbCommand = db.GetStoredProcCommand("usp_SaveQBDetails"); db.AddInParameter(dbCommand, "SessionKey", DbType.String, sessionKey); db.AddInParameter(dbCommand, "QBUserName", DbType.String, email); db.AddInParameter(dbCommand, "QBPassword", DbType.String, password); qbuserid = Int32.Parse(db.ExecuteScalar(dbCommand).ToString()); } catch(Exception ex) { responseObject.ResultCode = "ERROR"; responseObject.ResultMessage = ex.Message; CustomException exc = new CustomException(ex.ToString(), this.ToString(), "SaveQBDetails", System.DateTime.Now); ExceptionManager.PublishException(exc); } if (qbuserid > 0) { responseObject.ResultCode = "SUCCESS"; responseObject.ResultMessage = "Quickblox user credentials created successfully."; } else { responseObject.ResultCode = "ERROR"; responseObject.ResultMessage = "A problem occured while creating quickblox user."; } return (responseObject); }
/// <summary> /// This method gets logged in user information for /// video calls through quickblox. /// </summary> /// <param name="sessionKey"></param> /// <returns>string</returns> public string GetUserDetailsByQBIDJSON(string sessionKey, string qbUserName) { string response = ""; SessionResponseObject responseObject = new SessionResponseObject(); responseObject = GetUserDetailsByQBID(sessionKey, qbUserName); response = Serializer.ObjectToJSON(responseObject); return response; }
/// <summary> /// This method gets all user details by QB ID. /// </summary> /// <param name="sessionKey">string</param> /// <param name="qbUserName">string</param> /// <returns>SessionResponseObject</returns> public SessionResponseObject GetUserDetailsByQBID(string sessionKey, string qbUserName) { SessionResponseObject responseObject = new SessionResponseObject(); AuthenticationEngine authEngine = new AuthenticationEngine(); User user = new User(); DataSet dsProfile = new DataSet(); bool isValid = authEngine.IsValidSession(sessionKey); if(isValid) { try { Database db = DatabaseFactory.CreateDatabase(); DbCommand dbCommand = db.GetStoredProcCommand("usp_GetProfilebyQBID"); db.AddInParameter(dbCommand, "QBUserName", DbType.String, qbUserName); dsProfile = db.ExecuteDataSet(dbCommand); if(dsProfile.Tables.Count > 0) { DataTable tUser = dsProfile.Tables[0]; foreach(DataRow tRow in tUser.Rows) { if (tRow["UserID"] != DBNull.Value) { user.UserID = Int32.Parse(tRow["UserID"].ToString()); } if (tRow["FirstName"] != DBNull.Value) { user.FirstName = tRow["FirstName"].ToString(); } if (tRow["LastName"] != DBNull.Value) { user.LastName = tRow["LastName"].ToString(); } if (tRow["DisplayName"] != DBNull.Value) { user.DisplayName = tRow["DisplayName"].ToString(); } if (tRow["EmailID"] != DBNull.Value) { user.EmailID = tRow["EmailID"].ToString(); } if (tRow["PinCode"] != DBNull.Value) { user.EmailID = tRow["PinCode"].ToString(); } if (tRow["Address1"] != DBNull.Value) { user.Address1 = tRow["Address1"].ToString(); } if (tRow["Address2"] != DBNull.Value) { user.Address2 = tRow["Address2"].ToString(); } if (tRow["Address3"] != DBNull.Value) { user.Address3 = tRow["Address3"].ToString(); } if (tRow["City"] != DBNull.Value) { user.City = tRow["City"].ToString(); } if (tRow["CountryCode"] != DBNull.Value) { user.CountryCode = tRow["CountryCode"].ToString(); } if (tRow["PhoneNumber"] != DBNull.Value) { user.PhoneNumber = tRow["PhoneNumber"].ToString(); } if (tRow["ProfilePicPath"] != DBNull.Value) { user.ProfilePicPath = tRow["ProfilePicPath"].ToString(); } } responseObject.ResultCode = "SUCCESS"; responseObject.ResultObjectRecordCount = tUser.Rows.Count; if (responseObject.ResultObjectRecordCount == 0) { responseObject.ResultMessage = "No quickblox user information found for this user."; } } } catch (Exception ex) { responseObject.ResultCode = "ERROR"; responseObject.ResultMessage = ex.Message; CustomException exc = new CustomException(ex.ToString(), this.ToString(), "CreateUser", System.DateTime.Now); ExceptionManager.PublishException(exc); } } return (responseObject); }
/// <summary> /// Get problem spefic experts who quoted or all /// experts for a category/sub category combination. /// </summary> /// <param name="sessionKey">string</param> /// <param name="problemid">string</param> /// <param name="categoryid">string</param> /// <param name="subcategoryid">string</param> /// <returns>SessionResponseObject</returns> public ResponseObjectForAnything GetExpertsByCatSubCat(string sessionKey, string pincode, string distance, string categoryid, string subcategoryid) { List<User> lstexperts = new List<User>(); List<ProblemBid> lstProblemBids = new List<ProblemBid>(); ResponseObjectForAnything responseObject = new ResponseObjectForAnything(); SessionResponseObject session = new SessionResponseObject(); AuthenticationEngine authEngine = new AuthenticationEngine(); bool isValid = authEngine.IsValidSession(sessionKey); DataSet dsExperts = new DataSet(); if(isValid) { try { Database db = DatabaseFactory.CreateDatabase(); DbCommand dbCommand = db.GetStoredProcCommand("usp_GetExperts"); float latitude, longitude; GeoHelper geoHelper = new GeoHelper(); geoHelper.GetGeoLocationByPinCode(pincode, out latitude, out longitude); db.AddInParameter(dbCommand, "@Distance", DbType.Decimal, distance); db.AddInParameter(dbCommand, "@Latitude", DbType.Decimal, latitude); db.AddInParameter(dbCommand, "@Longitude", DbType.Decimal, longitude); db.AddInParameter(dbCommand, "@CategoryID", DbType.Int32, Int32.Parse(categoryid)); db.AddInParameter(dbCommand, "@SubCategoryID", DbType.Int32, Int32.Parse(subcategoryid)); dsExperts = db.ExecuteDataSet(dbCommand); if(dsExperts.Tables.Count > 0) { DataTable tUser = dsExperts.Tables[0]; foreach(DataRow tRow in tUser.Rows) { User user = new User(); if (tRow["UserID"] != DBNull.Value) { user.UserID = Int32.Parse(tRow["UserID"].ToString()); } if (tRow["UserRoleID"] != DBNull.Value) { user.UserID = Int32.Parse(tRow["UserRoleID"].ToString()); } if (tRow["FirstName"] != DBNull.Value) { user.FirstName = tRow["FirstName"].ToString(); } if (tRow["LastName"] != DBNull.Value) { user.LastName = tRow["LastName"].ToString(); } if (tRow["DisplayName"] != DBNull.Value) { user.DisplayName = tRow["DisplayName"].ToString(); } if (tRow["EmailID"] != DBNull.Value) { user.EmailID = tRow["EmailID"].ToString(); } if (tRow["PinCode"] != DBNull.Value) { user.PinCode = tRow["PinCode"].ToString(); } if (tRow["Address1"] != DBNull.Value) { user.Address1 = tRow["Address1"].ToString(); } if (tRow["Address2"] != DBNull.Value) { user.Address2 = tRow["Address2"].ToString(); } if (tRow["Address3"] != DBNull.Value) { user.Address3 = tRow["Address3"].ToString(); } if (tRow["City"] != DBNull.Value) { user.City = tRow["City"].ToString(); } if (tRow["Distance"] != DBNull.Value) { user.Distance = Convert.ToDecimal(tRow["Distance"].ToString()); } if (tRow["PhoneNumber"] != DBNull.Value) { user.PhoneNumber = tRow["PhoneNumber"].ToString(); } if (tRow["ProfilePicPath"] != DBNull.Value) { user.ProfilePicPath = tRow["ProfilePicPath"].ToString(); } if (tRow["AvgRating"] != DBNull.Value) { user.AvgRating = Convert.ToDecimal(tRow["AvgRating"].ToString()); } lstexperts.Add(user); } responseObject.ResultCode = "SUCCESS"; responseObject.ResultObjectRecordCount = tUser.Rows.Count; responseObject.ResultObjectJSON = Serializer.ObjectToJSON(lstexperts); if (tUser.Rows.Count == 0) { responseObject.ResultMessage = "No Experts found for this combination of category and subcategory."; } } } catch (Exception ex) { responseObject.ResultCode = "ERROR"; responseObject.ResultMessage = ex.Message; CustomException exc = new CustomException(ex.ToString(), this.ToString(), "GetExpertsByCatSubCat", System.DateTime.Now); ExceptionManager.PublishException(exc); } } return responseObject; }
private string CreateSession(string email, string password) { AuthenticationEngine authEngine = new AuthenticationEngine(); ResponseObjectForAnything responseObject = new ResponseObjectForAnything(); SessionResponseObject sessionObject = new SessionResponseObject(); string retVal = string.Empty; string session = authEngine.CreateSessionJSON(email, password, Request.ServerVariables["REMOTE_ADDR"]); responseObject = (ResponseObjectForAnything)Serializer.JSONStringToObject<ResponseObjectForAnything>(session); if (!string.IsNullOrEmpty(responseObject.ResultObjectJSON)) { sessionObject = (SessionResponseObject)Serializer.JSONStringToObject<SessionResponseObject>(responseObject.ResultObjectJSON); UserSession.LoginUserID = sessionObject.user.ID; UserSession.LoginUserEmail = sessionObject.user.EmailID; UserSession.LoginLatitude = Convert.ToString(sessionObject.user.Latitude); UserSession.LoginLongitude = Convert.ToString(sessionObject.user.Longitude); HttpCookie cookie = new HttpCookie("SessionKey"); cookie.Name = "sessionkey"; cookie.Value = sessionObject.session.SessionKey; Response.Cookies.Add(cookie); if (sessionObject.user.UserRoleID == 2) { retVal = "Expert"; UserSession.LoginUserType = "Expert"; } else { retVal = "User"; UserSession.LoginUserType = "User"; } } else if (string.IsNullOrEmpty(responseObject.ResultObjectJSON) || responseObject.ResultCode == "ERROR") { retVal = responseObject.ResultMessage; } return retVal; }