public HttpResponseMessage Login([FromBody] Traveler traveler) { using (Assignment2_ServicesContext db = new Assignment2_ServicesContext()) { db.Configuration.ProxyCreationEnabled = false; var v = db.Travelers.Where(a => a.email == traveler.email).FirstOrDefault(); if (v != null) { if (string.Compare(HashPassword.CreateMD5(traveler.password, v.salt), v.password) == 0 && v.IsEmailVerified == true) { return(Request.CreateResponse(HttpStatusCode.OK, v)); } else if (string.Compare(HashPassword.CreateMD5(traveler.password, v.salt), v.password) == 0 && v.IsEmailVerified == false) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Email does not active. Please active this email.")); } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Password doesn't match.")); } } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Email does not exist.")); } } }
private bool IsEmailExist(string email) { using (Assignment2_ServicesContext db = new Assignment2_ServicesContext()) { var v = db.Travelers.Where(a => a.email == email).FirstOrDefault(); return(v != null); } }
public HttpResponseMessage Register([Bind(Exclude = "IsEmailVerified,ActivationCode")][FromBody] Traveler traveler) { string message = ""; if (ModelState.IsValid) { #region //Email is already Exist var isExistEmail = IsEmailExist(traveler.email); if (isExistEmail) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Email already exist.")); } #endregion #region Generate Activation Code traveler.ActivationCode = Guid.NewGuid(); #endregion #region Password Hashing traveler.salt = GenerateSalt.saltStr(10); traveler.password = HashPassword.CreateMD5(traveler.password, traveler.salt); #endregion traveler.IsEmailVerified = false; #region Save to Database using (Assignment2_ServicesContext db = new Assignment2_ServicesContext()) { traveler.Role_id = 1; traveler.createdAt = DateTime.Now; traveler.updatedAt = DateTime.Now; Debug.WriteLine(JsonConvert.SerializeObject(traveler)); db.Travelers.Add(traveler); db.SaveChanges(); } //Send Email to User SendVerificationLinkEmail(traveler.email, traveler.ActivationCode.ToString()); message = "Registration successfully done. Account activation link " + " has been sent to your email id:" + traveler.email; return(Request.CreateResponse(HttpStatusCode.OK, traveler)); #endregion } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public HttpResponseMessage VerifyAccount(string id) { using (Assignment2_ServicesContext db = new Assignment2_ServicesContext()) { db.Configuration.ValidateOnSaveEnabled = false; var v = db.Travelers.Where(a => a.ActivationCode == new Guid(id)).FirstOrDefault(); if (v != null) { v.IsEmailVerified = true; db.SaveChanges(); return(Request.CreateErrorResponse(HttpStatusCode.OK, "Active Success")); } else { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Invalid Request.")); } } }