public async Task <UserInfoOutput> CheckRole() { UserInfoOutput output = new UserInfoOutput(); AspUserService aspUser = new AspUserService(_db, this); if (aspUser.User.Status == 1) { if (User.IsInRole("LECTURER")) { await _userManager.RemoveFromRoleAsync(aspUser.User.AspUser, "LECTURER"); } if (User.IsInRole("ADMIN")) { await _userManager.RemoveFromRoleAsync(aspUser.User.AspUser, "ADMIN"); } } if (aspUser.User.Status == 2) { if (!User.IsInRole("LECTURER")) { await _userManager.AddToRoleAsync(aspUser.User.AspUser, "LECTURER"); } if (User.IsInRole("ADMIN")) { await _userManager.RemoveFromRoleAsync(aspUser.User.AspUser, "ADMIN"); } } if (aspUser.User.Status == 3) { if (User.IsInRole("LECTURER")) { await _userManager.RemoveFromRoleAsync(aspUser.User.AspUser, "LECTURER"); } if (!User.IsInRole("ADMIN")) { await _userManager.AddToRoleAsync(aspUser.User.AspUser, "ADMIN"); } } if (aspUser.User.Status == 4) { if (!User.IsInRole("LECTURER")) { await _userManager.AddToRoleAsync(aspUser.User.AspUser, "LECTURER"); } if (!User.IsInRole("ADMIN")) { await _userManager.AddToRoleAsync(aspUser.User.AspUser, "ADMIN"); } } await _signInManager.SignOutAsync(); await _signInManager.SignInAsync(aspUser.User.AspUser, true); output.Result = "OK"; return(output); }
public Tuple <bool, UserInfoOutput> Login(LoginInput input) { var output = new UserInfoOutput(); var tulpe = new Tuple <bool, UserInfoOutput>(true, output); return(tulpe); }
public UserInfoOutput CheckUserById([FromBody] UserInfoInput input) { UserInfoOutput output = new UserInfoOutput(); AspUserService aspUser = new AspUserService(_db, this); if (aspUser.IsAdmin) { if (input == null) { Response.StatusCode = 400; output.Result = "INPUT_IS_NULL"; } else { BCPUser user = _db._BCPUsers.Where(e => e.Id.Equals(input.UserId)).FirstOrDefault(); if (user == null) { Response.StatusCode = 400; output.Result = "USER_NOT_EXIST"; } else { output.Email = user.Email; output.Name = user.Name; output.Result = "OK"; } } } else { Response.StatusCode = 400; output.Result = "NO_PRIVILEGE"; } return(output); }
public UserInfoOutput GetDetailBySessionId([FromBody] UserInfoInput input) { UserInfoOutput output = new UserInfoOutput(); if (input == null) { output.Result = "INPUT_IS_NULL"; } else { AppLoginSession session = _db.AppLoginSessions.Where(e => e.Id.Equals(input.SessionId) && e.Status == 1).FirstOrDefault(); if (session == null) { output.Result = "SESSION_NOT_EXIST"; } else { if (session.Key.Equals(input.SessionKey)) { User user = session.User; List <Order> orders = user.ListOrders.Where(e => e.Deleted == false).OrderByDescending(e => e.DateCreated).ToList(); List <OrderPreviousItem> newOrders = new List <OrderPreviousItem>(); NumberFormatInfo nfi = new CultureInfo("ms-MY", false).NumberFormat; nfi.CurrencyDecimalDigits = 2; foreach (Order item in orders) { OrderPreviousItem newItem = new OrderPreviousItem() { OrderId = item.Id, OrderDate = item.DateCreated.ToString(), Price = item.Amount.ToString("C", nfi) }; newOrders.Add(newItem); } if (string.IsNullOrEmpty(user.Email)) { output.IsMember = false; } else { output.IsMember = true; } output.Orders = newOrders; output.UserEmail = user.Email; output.UserName = user.FName + user.LName; output.DateJoined = user.DateCreated.ToString(); output.Result = "OK"; } else { output.Result = "CREDENTIAL_ERROR"; } } } return(output); }
public async Task <UserInfoOutput> Logout() { await _signInManager.SignOutAsync(); UserInfoOutput output = new UserInfoOutput() { Result = "OK" }; return(output); }
public UserInfoOutput AddByEmail([FromBody] UserInfoInput input) { AspUserService aspUser = new AspUserService(_db, this); UserInfoOutput output = new UserInfoOutput(); if (aspUser.IsAdmin) { BCPUser user = _db._BCPUsers.Where(e => e.Email.ToUpper().Equals(input.Email.ToUpper()) && e.Deleted == false).FirstOrDefault(); if (user == null) { Response.StatusCode = 400; output.Result = "USER_NOT_EXIST"; } else { if (user.Status == 2 || user.Status == 4) { Response.StatusCode = 400; output.Result = "USER_ALREADY_ASSIGNED_LECTURER"; } else { if (user.Status == 3) { user.Status = 4; } else { user.Status = 2; } _db.SaveChanges(); output.Result = "OK"; } } } else { Response.StatusCode = 400; output.Result = "NO_PRIVILEGE"; } return(output); }
public UserInfoOutput Remove([FromBody] UserInfoInput input) { UserInfoOutput output = new UserInfoOutput(); AspUserService aspUser = new AspUserService(_db, this); if (aspUser.IsAdmin) { if (input == null) { Response.StatusCode = 400; output.Result = "INPUT_IS_NULL"; } else { BCPUser user = _db._BCPUsers.Where(e => e.Id.Equals(input.UserId)).FirstOrDefault(); if (user == null) { Response.StatusCode = 400; output.Result = "USER_NOT_EXIST"; } else { if (user.Status == 4) { user.Status = 3; } else { user.Status = 1; } _db.SaveChanges(); output.Result = "OK"; } } } else { Response.StatusCode = 400; output.Result = "NO_PRIVILEGE"; } return(output); }
public async Task <UserInfoOutput> WebLogin([FromBody] UserInfoInput input) { UserInfoOutput output = new UserInfoOutput(); if (input == null) { Response.StatusCode = 400; output.Result = "INPUT_IS_NULL"; } else { if (string.IsNullOrEmpty(input.Email) || string.IsNullOrEmpty(input.Password)) { Response.StatusCode = 400; output.Result = "INPUT_IS_NULL"; } else { IdentityUser aspUser = _db._AspNetUsers.Where(e => e.UserName.ToLower().Equals(input.Email.ToLower())).FirstOrDefault(); if (aspUser == null) { Response.StatusCode = 400; output.Result = "USER_NOT_FOUND"; } else { if (_userManager.PasswordHasher.VerifyHashedPassword(aspUser, aspUser.PasswordHash, input.Password) == PasswordVerificationResult.Success) { await _signInManager.SignInAsync(aspUser, true); output.Result = "OK"; } else { Response.StatusCode = 400; output.Result = "PASSWORD_MISMATCH"; } } } } return(output); }
public async Task <UserInfoOutput> Create([FromBody] UserInfoInput input) { UserInfoOutput output = new UserInfoOutput(); if (input == null) { Response.StatusCode = 400; output.Result = "INPUT_IS_NULL"; } else { if (string.IsNullOrEmpty(input.Email) || string.IsNullOrEmpty(input.Password) || string.IsNullOrEmpty(input.ConfirmPassword)) { Response.StatusCode = 400; output.Result = "INPUT_IS_NULL"; } else { if (input.Password.Length < 6) { Response.StatusCode = 400; output.Result = "PASSWORD_LENGTH_LESS_6"; } else { if (input.Password.Equals(input.ConfirmPassword)) { BCPUser user = _db._BCPUsers.Where(e => e.Email.Equals(input.Email)).FirstOrDefault(); if (user == null) { IdentityUser newAspUser = new IdentityUser() { UserName = input.Email, Email = input.Email }; var status = await _userManager.CreateAsync(newAspUser, input.Password); if (status.Succeeded) { user = new BCPUser() { AspUser = newAspUser, Name = input.Name, Email = input.Email }; _db._BCPUsers.Add(user); _db.SaveChanges(); output.Result = "OK"; } else { Response.StatusCode = 500; output.Result = "INTERNAL_ERROR"; } } else { Response.StatusCode = 400; output.Result = "USER_ALREADY_EXIST"; } } else { Response.StatusCode = 400; output.Result = "PASSWORD_MISMATCH"; } } } } return(output); }