Esempio n. 1
0
        public IActionResult Login([FromBody] LoginModel login)
        {
            ResponseModel rm    = new ResponseModel();
            var           users = authService.GetUsers(login);

            if (users != null && users.Any())
            {
                users = users.Where(s => s.Password.ToString().Equals(login.Password.Encrypt()));
                var customerAccount = customerAccountService.GetAccountByCustomer(users.FirstOrDefault().Id);
                var accountBalance  = transactionService.GetAccountBalance(users.FirstOrDefault().Id, customerAccount.Id);

                if (users.Any())
                {
                    if (users.Count() == 1)
                    {
                        var tokenString = GenerateJSONWebToken(users.FirstOrDefault(), customerAccount);

                        rm.Notification = ApUtility.CreateNotification("Loggedin Successfully.", Enums.NotificationType.Success);
                        rm.Data         = new
                        {
                            Token          = tokenString,
                            IsLogin        = true,
                            User           = users.Select(o => new { o.Email, UserName = o.FirstName, o.LastName }).FirstOrDefault(),
                            AccountBalance = accountBalance
                        };

                        return(Ok(rm));
                    }
                    else
                    {
                        rm.Notification = ApUtility.CreateNotification("Loggedin Successfully.", Enums.NotificationType.Success);
                        rm.Data         = new { IsLogin = true, Options = users.Select(o => new { Id = o.Id, Email = o.Email, Name = o.PersonalCode }) };

                        return(Ok(rm));
                    }
                }
                else
                {
                    rm.Notification = ApUtility.CreateNotification("Invalid username or password or your account is inactive", Enums.NotificationType.Error);
                    return(BadRequest(rm));
                }
            }
            else
            {
                rm.Notification = ApUtility.CreateNotification("User Information Not Available.", Enums.NotificationType.Error);
                return(BadRequest(rm));
            }
        }