Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 /// <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;
 }
Ejemplo n.º 3
0
 /// <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;
 }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
 /// <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;
 }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        /// <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;
        }
Ejemplo n.º 9
0
 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;
 }