Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public Tuple <bool, UserInfoOutput> Login(LoginInput input)
        {
            var output = new UserInfoOutput();
            var tulpe  = new Tuple <bool, UserInfoOutput>(true, output);

            return(tulpe);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        public async Task <UserInfoOutput> Logout()
        {
            await _signInManager.SignOutAsync();

            UserInfoOutput output = new UserInfoOutput()
            {
                Result = "OK"
            };

            return(output);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }