public IEnumerable <Users> GetUserbyHeader(string email, string token) { object[] args = new object[] { email, token }; string query = string.Format("SELECT * FROM users WHERE email = '{0}' AND remember_token = '{1}'", args); DataContextFetch dcf = new DataContextFetch(); DataRow dr = dcf.Get(query); var id = Int32.Parse(dr["id"].ToString()); var user = new Users { }; if (id > 0) { user = new Users { id = Int32.Parse(dr["id"].ToString()), name = dr["name"].ToString(), email = dr["email"].ToString(), password = dr["password"].ToString(), remember_token = dr["remember_token"].ToString(), is_active = Int32.Parse(dr["is_active"].ToString()) }; } yield return(user); }
public IHttpActionResult update([FromHeader("token")] string token, [FromHeader("email")] string email, [FromBody] object form, string id) { var users = UserRepository.Instance.GetUserbyHeader(email, token); var getData = users.Where(x => x.email == email && x.remember_token == token).ToList(); string[] data = new string[] { }; string messages = ""; if (getData.Count() > 0 && getData[0].is_active > 0) { JObject obj = JObject.Parse(form.ToString()); try { DataContextFetch dcf = new DataContextFetch(); dcf.tableName = "members"; dcf.AddColumnValues("id", id, true); dcf.AddColumnValues("title", (string)obj["title"], false); dcf.AddColumnValues("name", (string)obj["name"], false); dcf.AddColumnValues("first_nric", (string)obj["first_nric"], false); dcf.AddColumnValues("no_nric", (string)obj["no_nric"], false); dcf.AddColumnValues("last_nric", (string)obj["last_nric"], false); dcf.AddColumnValues("no_mobile", (string)obj["no_mobile"], false); dcf.AddColumnValues("email", (string)obj["email"], false); dcf.AddColumnValues("postal_code", (string)obj["postal_code"], false); dcf.AddColumnValues("promo_code", (string)obj["promo_code"], false); dcf.AddColumnValues("updated_at", DateTime.Now, false); dcf.ExecuteInsertOrUpdatebyExist(); messages = "Success Update Data"; } catch (Exception e) { messages = "Failed Update Data " + e.Message; } object jsons = new OutputsModel( System.Net.HttpStatusCode.OK.GetHashCode(), System.Net.HttpStatusCode.OK.ToString(), messages, data ); return(Json(jsons)); } else { messages = "Not Authorized"; object jsons = new OutputsModel( System.Net.HttpStatusCode.OK.GetHashCode(), System.Net.HttpStatusCode.OK.ToString(), messages, data ); return(Json(jsons)); } }
public IHttpActionResult logout([FromHeader("email")] string email, [FromHeader("token")] string token) { string[] data = new string[] { }; var users = UserRepository.Instance.GetUserbyHeader(email, token); var getData = users.Where(x => x.email == email && x.remember_token == token).ToList(); string messages = ""; if (getData.Count() > 0) { try { DataContextFetch dcf = new DataContextFetch(); dcf.tableName = "users"; dcf.AddColumnValues("id", getData[0].id, true); dcf.AddColumnValues("is_active", 0, false); dcf.AddColumnValues("updated_at", DateTime.Now, false); dcf.ExecuteInsertOrUpdatebyExist(); messages = "Logout Success"; } catch (Exception e) { messages = "Logout Failed " + e.Message; } object jsons = new OutputsModel( System.Net.HttpStatusCode.OK.GetHashCode(), System.Net.HttpStatusCode.OK.ToString(), messages, data ); return(Json(jsons)); } else { messages = "Data Not Found"; object jsons = new OutputsModel( System.Net.HttpStatusCode.OK.GetHashCode(), System.Net.HttpStatusCode.OK.ToString(), messages, data ); return(Json(jsons)); } }
public IHttpActionResult delete([FromHeader("token")] string token, [FromHeader("email")] string email, string id) { var users = UserRepository.Instance.GetUserbyHeader(email, token); var getData = users.Where(x => x.email == email && x.remember_token == token).ToList(); string[] data = new string[] { }; string messages = ""; if (getData.Count() > 0 && getData[0].is_active > 0) { try { DataContextFetch dcf = new DataContextFetch(); dcf.tableName = "members"; dcf.AddColumnValues("id", id, true); dcf.ExecuteDelete(); messages = "Success Delete Data"; } catch (Exception e) { messages = "Failed Delete Data " + e.Message; } object jsons = new OutputsModel( System.Net.HttpStatusCode.OK.GetHashCode(), System.Net.HttpStatusCode.OK.ToString(), messages, data ); return(Json(jsons)); } else { messages = "Not Authorized"; object jsons = new OutputsModel( System.Net.HttpStatusCode.OK.GetHashCode(), System.Net.HttpStatusCode.OK.ToString(), messages, data ); return(Json(jsons)); } }
public IEnumerable <Users> GetUser(string email) { string query = string.Format("SELECT * FROM users WHERE email = '{0}'", email); DataContextFetch dcf = new DataContextFetch(); DataRow dr = dcf.Get(query); var user = new Users { id = Int32.Parse(dr["id"].ToString()), name = dr["name"].ToString(), email = dr["email"].ToString(), password = dr["password"].ToString(), remember_token = dr["remember_token"].ToString(), is_active = Int32.Parse(dr["is_active"].ToString()) }; yield return(user); }
public IEnumerable <Members> GetMemberbyId(string id) { string query = string.Format("SELECT * FROM members WHERE id = {0}", id); DataContextFetch dcf = new DataContextFetch(); DataRow dr = dcf.Get(query); var member = new Members { id = Int32.Parse(dr["id"].ToString()), title = dr["title"].ToString(), name = dr["name"].ToString(), first_nric = dr["first_nric"].ToString(), no_nric = dr["no_nric"].ToString(), last_nric = dr["last_nric"].ToString(), no_mobile = dr["no_mobile"].ToString(), email = dr["email"].ToString(), postal_code = dr["postal_code"].ToString(), promo_code = dr["promo_code"].ToString(), created_at = dr["created_at"].ToString(), updated_at = dr["updated_at"].ToString() }; yield return(member); }
public IHttpActionResult login([FromBody] object form) { JObject obj = JObject.Parse(form.ToString()); string email = (string)obj["email"]; var users = UserRepository.Instance.GetUser(email); var getData = users.Where(x => x.email == email).ToList(); string passwordEncrypt = getData[0].password; string password = (string)obj["password"]; password = GenerateSHA256String(password); if (password == passwordEncrypt) { // Define const Key this should be private secret key stored in some safe place string key = "C419rghdDDEbc7xvGIlfy8vgWjyPL0Li"; // Create Security key using private key above: // not that latest version of JWT using Microsoft namespace instead of System var securityKey = new Microsoft .IdentityModel.Tokens.SymmetricSecurityKey(Encoding.UTF8.GetBytes(key)); // Also note that securityKey length should be >256b // so you have to make sure that your private key has a proper length // var credentials = new Microsoft.IdentityModel.Tokens.SigningCredentials (securityKey, SecurityAlgorithms.HmacSha256Signature); // Finally create a Token var header = new JwtHeader(credentials); //Some PayLoad that contain information about the customer string name = getData[0].name; string is_active = getData[0].is_active.ToString(); string date = DateTime.Now.ToString(); var payload = new JwtPayload { { name, email }, { is_active, date }, }; var secToken = new JwtSecurityToken(header, payload); var handler = new JwtSecurityTokenHandler(); // Token to String so you can use it in your client var tokenString = handler.WriteToken(secToken); //// And finally when you received token from client //// you can either validate it or try to read //var token = handler.ReadJwtToken(tokenString); DataContextFetch dcf = new DataContextFetch(); dcf.tableName = "users"; dcf.AddColumnValues("email", email, false); dcf.AddColumnValues("remember_token", tokenString.ToString(), false); dcf.AddColumnValues("is_active", 1, false); dcf.AddColumnValues("updated_at", DateTime.Now, false); dcf.ExecuteInsertOrUpdatebyExist(); string messages = "Success login"; Users data = new Users { name = name, email = email, remember_token = tokenString, is_active = Int32.Parse(is_active) }; object jsons = new OutputsModel( System.Net.HttpStatusCode.OK.GetHashCode(), System.Net.HttpStatusCode.OK.ToString(), messages, data ); return(Json(jsons)); } else { string[] data = new string[] { }; string messages = "wrong password"; object jsons = new OutputsModel( System.Net.HttpStatusCode.OK.GetHashCode(), System.Net.HttpStatusCode.OK.ToString(), messages, data ); return(Json(jsons)); } }