public async Task <IHttpActionResult> Login([FromUri] string Username, [FromUri] string Password) { Account_BenhNhan account = await db.Account_BenhNhan.FirstOrDefaultAsync(q => q.Username == Username && q.Password == Password && q.Status == ACTIVE); if (account == null) { return(NotFound()); } var time = TimeSpan.FromHours(10); var Expiration = DateTime.Now.Add(time); account.TokenExpiration = Expiration; var token = Convert.ToBase64String(new UTF8Encoding().GetBytes($"BN:{account.IDAccountBN}:{Username}:{Password}:{Expiration}:{new Random().Next(1000, 9999)}")); token = token.CreateMD5(); account.Token = token; if (await db.SaveChangesAsync() > 0) { token = $"{account.IDAccountBN}:{token}"; token = Convert.ToBase64String(new UTF8Encoding().GetBytes(token)); return(Ok(token)); } return(BadRequest()); }
public async Task <IHttpActionResult> PutAccount_BenhNhan(int id, Account_BenhNhan Account_BenhNhan) { if (LoginHelper.CheckAccount(id) == false || !ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != Account_BenhNhan.IDAccountBN) { return(BadRequest()); } Account_BenhNhan.Modified_Id = LoginHelper.GetAccountNV().IDAccountNV; Account_BenhNhan.ModifiedDate = DateTime.Now; db.Entry(Account_BenhNhan).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!Account_BenhNhanExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult Test2([FromBody] int k) { var data = new Account_BenhNhan { Username = "******", IDAccountBN = 10 }; return(Ok(data.Encode <Account_BenhNhan>(Models.Encoder.GetKey()))); }
public async Task <IHttpActionResult> PostAccount_BenhNhan(Account_BenhNhan Account_BenhNhan) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.Account_BenhNhan.Add(Account_BenhNhan); await db.SaveChangesAsync(); return(Ok("SUCCESS")); }
public static Account_BenhNhanDTO ConvertToAccountBNDTO(Account_BenhNhan account) { return(new Account_BenhNhanDTO { Email = account.Email, IDAccountBN = account.IDAccountBN, Password = account.Password, Status = account.Status, Username = account.Username, MaYTe = account.Username, BenhNhan_Id = account.BenhNhan_Id, Token = account.Token, TokenExpiration = account.TokenExpiration, }); }
public async Task <IHttpActionResult> Confirm(string id) { if (id == null) { return(Content(HttpStatusCode.BadRequest, "Mã xác nhận không tồn tại.")); } var url = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(id))); var decodeArray = url.Split(':'); if (decodeArray.Length != 2) { return(Content(HttpStatusCode.BadRequest, "Mã xác nhận không hợp lệ.")); } var account_test = new Account_BenhNhan { Username = decodeArray[0], Token = decodeArray[1], }; if (db.Account_BenhNhan.FirstOrDefault(q => q.Username == account_test.Username) is Account_BenhNhan account) { if (account.Status == CONFIRM) { if (account.Token == account_test.Token) { if (account.TokenExpiration >= DateTime.Now) { account.Status = ACTIVE; await db.SaveChangesAsync(); return(Content(HttpStatusCode.OK, $"{account.Email} xác nhận thành công.")); } else { return(Content(HttpStatusCode.OK, $"{account.Email} hết thời gian xác nhận.")); } } return(Content(HttpStatusCode.BadRequest, "Xác nhận thất bại, mã xác nhận không chính xác.")); } else { return(Content(HttpStatusCode.BadRequest, "Tài khoản đã được xác nhận trước đó.")); } } return(Content(HttpStatusCode.BadRequest, "Xác nhận thất bại, tài khoản không tồn tại")); }
public async Task <IHttpActionResult> DeleteAccount_BenhNhan(int id) { Account_BenhNhan Account_BenhNhan = await db.Account_BenhNhan.FindAsync(id); if (Account_BenhNhan == null) { return(NotFound()); } Account_BenhNhan.Modified_Id = LoginHelper.GetAccountNV().IDAccountNV; Account_BenhNhan.ModifiedDate = DateTime.Now; Account_BenhNhan.Status = "DELETE"; await db.SaveChangesAsync(); return(Ok(ConvertToAccount_BenhNhanDTO(Account_BenhNhan))); }
public async Task <IHttpActionResult> GetAccount_BenhNhan(int id) { var acc = LoginHelper.GetAccount(); if (acc.IDAccountBN != id) { return(NotFound()); } Account_BenhNhan item = await db.Account_BenhNhan.FindAsync(id); if (item == null) { return(NotFound()); } return(Ok(ConvertToAccount_BenhNhanDTO(item))); }
public static Account_BenhNhanDTO ConvertToAccount_BenhNhanDTO(Account_BenhNhan item) { if (item == null) { return(null); } return(new Account_BenhNhanDTO { Email = item.Email, IDAccountBN = item.IDAccountBN, BenhNhan_Id = item.BenhNhan_Id, Password = item.Password, Status = item.Status, Token = item.Token, Username = item.Username, TokenExpiration = item.TokenExpiration, }); }