public async Task <IActionResult> AuthenticateAsync([FromBody] Users userParam) { try { var user = await _userService.Authenticate(userParam.Username, userParam.Password, userParam.TenantID); if (user == null) { return(BadRequest("Username atau Password anda Salah !!")); } // kenapa menggunkan user yang merupaka output dari authenticate ? supaya tau klo usernya ada //doublecheck // menggunakan handler bahwa 1 usernama hanya akan ada di 1 tenant yang sama tetpi bisa di tenant yang lain ... var tenant = await _userService.tenantforusername(userParam.TenantID, user.Username); if (tenant == null) { return(BadRequest("Anda tidak terdaftar di tenant ini ")); } else { user.TenantID = tenant.TenantID; user.TenantName = tenant.Tenant.TenantName; Pengguna updatetenant = new Pengguna(); updatetenant.Username = user.Username; updatetenant.TenantID = tenant.TenantID; await _Pengguna.Updatetenant(updatetenant); } return(Ok(user)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> AuthenticateAsync([FromBody] User userParam) { try { var user = await _userService.Authenticate(userParam.Username, userParam.Password, userParam.TenantID); if (user == null) { return(BadRequest("Username atau Password anda Salah !!")); } // kenapa menggunkan user yang merupaka output dari authenticate ? supaya tau klo usernya ada //doublecheck // menggunakan handler bahwa 1 usernama hanya akan ada di 1 tenant yang sama tetpi bisa di tenant yang lain ... //var tenant = await _userService.tenantforusername(userParam.TenantID, user.Username); var tenantpengguna = _context.TenantPengguna.Where(r => r.Username == user.Username && r.TenantID == userParam.TenantID).Include(r => r.Tenant).SingleOrDefault(); if (tenantpengguna == null) { return(BadRequest("Username tidak terdaftar di tenant ini !!")); } if (tenantpengguna.StatusTenant == false) { return(BadRequest("User " + user.Username + " di tenant ini tidak aktif")); } else { //sebagai pertanda user login di tenant mana user.TenantID = tenantpengguna.TenantID; user.TenantName = tenantpengguna.Tenant.TenantName; Pengguna updatetenant = new Pengguna(); updatetenant.Username = user.Username; updatetenant.TenantID = tenantpengguna.TenantID; await _Pengguna.Updatetenant(updatetenant); } var message = new Message(new String[] { user.Email }, "Notifikasi login", "<h1>Hey! " + userParam.Username + ", Anda login di akun ini !</h1><p> Anda login di waktu " + DateTime.Now + "</p>"); _emailSender.SendEmail(message); return(Ok(user)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }