コード例 #1
0
        public MainAdminViewModel(IUserInterop userInterop, IControllerInterop controllerInterop, Dispatcher dispatcher)
            : base(userInterop, controllerInterop, dispatcher)
        {
            originalEntity = new SystemUserDTO();

            Model = new SystemUserModel(originalEntity as SystemUserDTO) { Role = UserRoles.MainAdmin };
            this.Model.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(ModelPropertyChanged);
        }
コード例 #2
0
        public MainAdminViewModel(IUserInterop userInterop, IControllerInterop controllerInterop, Dispatcher dispatcher, SystemUserDTO mainAdmin)
            : base(userInterop, controllerInterop, dispatcher)
        {
            originalEntity = mainAdmin;

            Model = new SystemUserModel(mainAdmin);
            Model.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(ModelPropertyChanged);
        }
コード例 #3
0
ファイル: CommonService.cs プロジェクト: HJ520134/PIS
        public SystemUserDTO GetSystemUserByUId(int uid)
        {
            var           query      = systemUserRepository.GetById(uid);
            SystemUserDTO returnUser = (query == null ? null : AutoMapper.Mapper.Map <SystemUserDTO>(query));

            if (returnUser != null && query.System_User_Role.Count > 0)
            {
                var roleList = query.System_User_Role.Select(x => x.System_Role).ToList();
                returnUser.RoleList = AutoMapper.Mapper.Map <List <SystemRoleDTO> >(roleList);
            }
            return(returnUser);
        }
コード例 #4
0
        private async Task <SystemUser> MapNewUserFromDTO(SystemUserDTO userData)
        {
            var user = mapperWrapper.MapEntity(userData);
            var role = await roleManager.FindByNameAsync("USER");

            user.UserName       = userData.Email;
            user.RegisteredDate = DateTime.Now;
            user.SystemRole     = role;
            user.CalculateAge();

            return(user);
        }
コード例 #5
0
        public HttpResponseMessage Update(SystemUserDTO obj, Guid id)
        {
            HttpResponseMessage response = new HttpResponseMessage();

            try
            {
                var result = userService.Update(obj, id);
                response = Request.CreateResponse(HttpStatusCode.OK, result);
            }
            catch (Exception ex)
            {
                var err = new CatchError(ex);
                response = Request.CreateResponse(err.status, err);
            }
            return(response);
        }
コード例 #6
0
        public async Task <ApiResult> SignUpAsync(SystemUserDTO userData)
        {
            var result   = default(ApiResult);
            var findUser = await userManager.FindByEmailAsync(userData.Email);

            if (findUser != null)
            {
                var message       = "Sign up has failed";
                var loggerMessage = $"New user {userData.Email} has tried to sign up. User with this email already exists in the database";
                var errors        = new string[] { $"User {userData.Email} is already registered. Try to sign in" };
                result = ApiResult.GetErrorResult(ApiResultStatus.BadRequest, loggerMessage, message, errors);
            }
            else
            {
                var user = await MapNewUserFromDTO(userData);

                // try to create user
                result = await TryCreateUser(user, userData.Password);
            }

            return(result);
        }
コード例 #7
0
        public async Task <ApiResult> SignInAsync(SystemUserDTO userData)
        {
            var result = default(ApiResult);
            // find user
            var user = await userManager.FindByEmailAsync(userData.Email);

            if (user == null)
            {
                var message       = "Sign in has failed";
                var loggerMessage = $"Sign in has failed for {userData.Email}";
                var errors        = new string[] { $"Email {userData.Email} is incorrect" };
                result = ApiResult.GetErrorResult(ApiResultStatus.NotFound, loggerMessage, message, errors);
            }
            else
            {
                // try to sign in
                var signInResult = await signInManager.PasswordSignInAsync(user, userData.Password, true, false);

                if (signInResult.Succeeded)
                {
                    // if OK - get user data and return OK
                    var data = await GetAccountData(user);

                    result = ApiResult.GetOkResult(ApiResultStatus.Ok, data: data);
                }
                else
                {
                    // if not - set message, set errors and return Bad Request
                    var message = "Sign in has failed";
                    var errors  = new string[] { "Password is incorrect" };
                    result = ApiResult.GetErrorResult(ApiResultStatus.BadRequest,
                                                      $"User email {user.Email} has failed to sign in with password",
                                                      message: message,
                                                      errors: errors);
                }
            }

            return(result);
        }
コード例 #8
0
        private AuthenticationTicket GenerateTicket(string ClientId, SystemUserDTO user)
        {
            // lấy thông tin phân quyền
            //var _userService = new NguoiDungService();//Unity.GetService<INguoiDungService>();
            //var quyen_han = _userService.GetRoleByUser(user);
            var identity = new ClaimsIdentity("JWT");

            identity.AddClaim(new Claim(ClaimTypes.Name, user.UserName == null ? string.Empty : user.UserName));
            identity.AddClaim(new Claim("sub", user.UserName == null ? string.Empty : user.UserName));
            identity.AddClaim(new Claim("username", user.UserName == null ? string.Empty : user.UserName));
            identity.AddClaim(new Claim("ten", user.FullName == null ? string.Empty : user.FullName));
            identity.AddClaim(new Claim("id", user.UserId.ToString()));
            identity.AddClaim(new Claim("email", user.Email == null ? string.Empty : user.Email));

            var props = new AuthenticationProperties(new Dictionary <string, string>
            {
                {
                    "client_id", (ClientId == null) ? string.Empty : ClientId
                },
                {
                    "tai_khoan", user.UserName == null?string.Empty : user.UserName
                },
                {
                    "ten", user.FullName == null?string.Empty : user.FullName
                },
                {
                    "id", user.UserId.ToString()
                },
                {
                    "profile", JsonConvert.SerializeObject(user)
                },
            });
            var ticket = new AuthenticationTicket(identity, props);

            return(ticket);
        }
コード例 #9
0
        public async Task <IActionResult> RegisterUser(SystemuserDTOW model)
        {
            try
            {
                _logger.LogInformation("User about to register");

                StringBuilder strbld2 = new StringBuilder();
                var           err2    = new List <string>();
                if (!ModelState.IsValid)
                {
                    foreach (var state in ModelState)
                    {
                        foreach (var error in state.Value.Errors)
                        {
                            err2.Add(error.ErrorMessage);
                            err2.ForEach(err => { strbld2.AppendFormat("•{0}", error.ErrorMessage); });
                        }
                    }


                    return(BadRequest(new { message = strbld2 }));
                }
                //create Account
                var user = new ApplicationUser {
                    UserName = model.UserName, Email = model.email
                };

                IdentityResult result = await _userManager.CreateAsync(user, model.password);

                if (!result.Succeeded)
                {
                    var errors  = result.Errors;
                    var message = string.Join(", ", errors.Select(x => x.Code + "," + " " + x.Description));

                    _logger.LogDebug(message, "Bad Request");
                    return(BadRequest(new ApiResponseDTO <string> {
                        Success = false, Message = message
                    }));
                }
                var userDTO = new SystemUserDTO
                {
                    email = model.email
                };

                return(Ok(new ApiResponseDTO <SystemUserDTO>()
                {
                    Success = true,
                    Message = "Registration was Succesful, below is your email.",
                    PayLoad = userDTO
                }));
            }

            catch (Exception ex)
            {
                var messg = ex.Message;
                _logger.LogError(messg, "An exception Occured ");
                return(Ok(new ApiResponseDTO <string>
                {
                    Success = false,
                    Message = "Something went wrong pls try again later"
                }));
            }
        }
コード例 #10
0
ファイル: CommonService.cs プロジェクト: HJ520134/PIS
        public SystemUserDTO GetSystemUserByNTId(string ntid, int islogin)
        {
            var           query      = systemUserRepository.GetFirstOrDefault(q => q.User_NTID == ntid);
            SystemUserDTO returnUser = (query == null ? null : AutoMapper.Mapper.Map <SystemUserDTO>(query));

            //获取相关参数IsMulitProject、flowChartMaster_Uid
            if (returnUser != null)
            {
                //获取物料员的专案信息
                var flIdAndVersionList = flowChartPCMHRelationshipRepository.GetMany(m => m.MH_UID == returnUser.Account_UID && !m.FlowChart_Detail.FlowChart_Master.Is_Closed)
                                         .Select(m => new { m.FlowChart_Detail.FlowChart_Master_UID, m.FlowChart_Detail.FlowChart_Version }).Distinct().ToList();

                //获取所有专案信息
                var flMasterList = flowChartMasterRepository.GetAll().ToList();

                //将两边数据进行匹配,判断该用户是否有多个专案
                int count = 0;
                foreach (var item in flIdAndVersionList)
                {
                    //只有最大版本的数据才是正确的
                    var hasExist = flMasterList.Exists(m => m.FlowChart_Master_UID == item.FlowChart_Master_UID && m.FlowChart_Version == item.FlowChart_Version);
                    if (hasExist)
                    {
                        //跳转到ProductInput会用到
                        returnUser.flowChartMaster_Uid = item.FlowChart_Master_UID;
                        count++;
                    }
                }
                if (count > 1)
                {
                    returnUser.IsMulitProject = true;
                }
                else
                {
                    returnUser.IsMulitProject = false;
                }

                if (query.System_User_Role.Count > 0)
                {
                    var roleList = query.System_User_Role.Select(x => x.System_Role).ToList();
                    returnUser.RoleList = AutoMapper.Mapper.Map <List <SystemRoleDTO> >(roleList);
                }
            }
            else
            {
                if (islogin == 1)
                {
                    try
                    {
                        int test        = Convert.ToInt32(ntid);
                        var eqpuserlist = flowChartMasterRepository.GetByUserId(ntid);
                        if (eqpuserlist.Count > 0)
                        {
                            returnUser             = new SystemUserDTO();
                            returnUser.Account_UID = eqpuserlist[0].EQPUser_Uid;
                            returnUser.User_Name   = eqpuserlist[0].User_Name;
                            returnUser.Enable_Flag = true;
                            returnUser.MH_Flag     = true;
                            returnUser.User_NTID   = "EQPUser";
                        }
                    }
                    catch
                    {
                    }
                }
            }



            return(returnUser);
        }
コード例 #11
0
        public async Task <IActionResult> SignIn(SystemUserDTO userData)
        {
            var result = await accountService.SignInAsync(userData);

            return(this.GetActionResult(result, logger));
        }
コード例 #12
0
ファイル: AccountData.cs プロジェクト: Ethriel/CoursesProject
 public AccountData(SystemUserDTO systemUserDTO, TokenData tokenResponse)
 {
     User  = systemUserDTO;
     Token = tokenResponse;
 }