Example #1
0
        private void UpdateUserMS(User user, DeviceController deviceInfo, DeviceRole role)
        {
            var deviceId         = deviceInfo.DeviceID;
            var devicePermission = role.DeviceRolePermissions.FirstOrDefault(x => x.DeviceID == deviceId);

            var deviceUser = new UserInfo();

            deviceUser.UserId           = user.UserCode.ToInt32();
            deviceUser.Role             = (Rld.DeviceSystem.Contract.Model.UserRole)devicePermission.PermissionAction.GetHashCode();
            deviceUser.AccessTimeZoneId = devicePermission.AllowedAccessTimeZoneID;

            Log.Info("Invoke WebSocketOperation...");
            var operation             = new WebSocketOperation(deviceId);
            var updateUserInfoRequest = new UpdateUserInfoRequest()
            {
                Token = operation.Token, UserInfo = deviceUser
            };
            string rawRequest = DataContractSerializationHelper.Serialize(updateUserInfoRequest);

            Log.DebugFormat("Request: {0}", rawRequest);
            var rawResponse = operation.Execute(rawRequest);

            Log.DebugFormat("Response: {0}", rawResponse);

            var response = DataContractSerializationHelper.Deserialize <UpdateUserInfoResponse>(rawResponse);

            Log.InfoFormat("Update user id:[{0}], device user id:[{1}] to device id:[{2}], result:[{3}]", user.UserID, deviceUser.UserId, deviceId, response.ResultType);

            if (response.ResultType != ResultType.OK)
            {
                throw new Exception(string.Format("Update user id:[{0}], device user id:[{1}] to device id:[{2}] fails]", user.UserID, deviceUser.UserId, deviceId));
            }
        }
Example #2
0
        public UpdateUserInfoResponse UpdateUserInfo(UpdateUserInfoRequest request)
        {
            var result = base.CreateResponse <UpdateUserInfoResponse>("更新用户信息");

            try
            {
                using (var con = new DbConnectionProvider(dbName).GetOpenConnection())
                {
                    var parms = new DynamicParameters();
                    parms.Add("UserID", request.NewUserInfo.UserID, DbType.Int32);
                    parms.Add("Mobile", request.NewUserInfo.Mobile, DbType.String);
                    parms.Add("MobileInfo", request.NewUserInfo.MobileInfo, DbType.String);
                    parms.Add("UserType", request.NewUserInfo.UserType, DbType.SByte);
                    parms.Add("NickName", request.NewUserInfo.NickName, DbType.String);
                    parms.Add("Sex", request.NewUserInfo.Sex, DbType.String);
                    parms.Add("Age", request.NewUserInfo.Age, DbType.SByte);
                    parms.Add("PersonalSign", request.NewUserInfo.PersonalSign, DbType.String);
                    parms.Add("HeadPortraitUri", request.NewUserInfo.HeadPortraitUri, DbType.String);
                    parms.Add("Height", request.NewUserInfo.Height, DbType.Double);
                    parms.Add("Weight", request.NewUserInfo.MobileInfo, DbType.Double);
                    parms.Add("UserStatus", request.NewUserInfo.MobileInfo, DbType.SByte);
                    con.ExecuteNoneQuery("sp_UpdateUserInfo", parms, CommandType.StoredProcedure);
                }
            }
            catch (Exception ex)
            {
                base.HandleResponseException(ref result, ex);
            }
            return(result);
        }
Example #3
0
        public async Task <UserInfoResponse> ModifyUser(UpdateUserInfoRequest request, int userId)
        {
            Check.Value(request, "Request").NotNull();
            request.Validate(ImmediateValidator.Instance);

            using (var conn = _dbConnFactory.CreateConnection())
            {
                var uniqueEmail = await conn.QueryFirstOrDefaultAsync <string>("SELECT email FROM users WHERE " +
                                                                               $"email='{request.Email}' AND id<>'{userId}'");

                Check.Value(uniqueEmail, "Request").IsNull("This email already exist");

                var uniqueNickName = await conn.QueryFirstOrDefaultAsync <string>("SELECT nick_name FROM users WHERE " +
                                                                                  $"nick_name='{request.NickName}' AND id<>'{userId}'");

                Check.Value(uniqueNickName, "Request").IsNull("This email already exist");

                var dbUser = await conn.GetUserById(userId);

                Check.Value(dbUser).NotNull("User doesn't exist");

                conn.Execute("UPDATE users SET first_name=@FirstName, last_name=@LastName, patronymic=@Patronymic, " +
                             $"nick_name=@NickName, email=@Email, phone_number=@PhoneNumber, description=@Description where id='{userId}'", request);
                return(AutoMapper.Mapper.Map <UpdateUserInfoRequest, UserInfoResponse>(request));
            }
        }
Example #4
0
        public async Task <IActionResult> Update_Info([FromBody] UpdateUserInfoRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var username = JWTtoken.GetUsernameFromToken(Request);

            if (username == null)
            {
                return(NotFound());
            }

            var emailIsUsed = _userManager.Users.Any(user => user.Email.Equals(model.Email) && !user.UserName.Equals(username));

            if (emailIsUsed)
            {
                return(BadRequest($"Email {model.Email} is already taken"));
            }

            var userAccount = await _userManager.FindByNameAsync(username);

            userAccount.Email       = model.Email;
            userAccount.Firstname   = model.FirstName;
            userAccount.Lastname    = model.LastName;
            userAccount.PhoneNumber = model.PhoneNumber;
            var result = await _userManager.UpdateAsync(userAccount);

            if (result.Succeeded)
            {
                return(Ok("User updated successfully"));
            }
            return(NotFound());
        }
        public async Task ManagerCannotModifyUnavailableUser()
        {
            var request = new UpdateUserInfoRequest();

            var response = await Api.Client.WithRole(RoleNames.Manager).PatchAsJsonAsync(_uri + "/user/21",
                                                                                         typeof(UpdateUserInfoRequest), request);

            response.StatusCode.Should().BeEquivalentTo(403);
        }
        public async Task <IActionResult> UpdateUser([FromBody] UpdateUserInfoRequest updateUserInfoRequest)
        {
            var user = _mapper.Map <User>(updateUserInfoRequest);

            _userRepository.UpdateUser(user);
            await _unitOfWork.CompleteAsync();

            return(Ok(user));
        }
        public async Task UserWithoutNecessaryRightsCannotModifyUser(RoleNames?role, int code)
        {
            var request = new UpdateUserInfoRequest();

            var response = await Api.Client.WithRole(role).PatchAsJsonAsync(_uri + "/user/6",
                                                                            typeof(UpdateUserInfoRequest), request);

            response.StatusCode.Should().BeEquivalentTo(code);
        }
Example #8
0
 public void UpdateInfo(UpdateUserInfoRequest request)
 {
     FirstName   = request.FirstName;
     LastName    = request.LastName;
     Patronymic  = request.Patronymic;
     NickName    = request.NickName;
     Email       = request.Email;
     PhoneNumber = request.PhoneNumber;
     Description = request.Description;
 }
Example #9
0
 public static void UpdateUser(this IDbConnection db, int id, UpdateUserInfoRequest request)
 {
     db.Execute("UPDATE users SET first_name=@FirstName, last_name=@LastName, patronymic=@Patronymic, " +
                $"nick_name=@NickName, email=@Email, phone_number=@PhoneNumber, description=@Description where id=@ID",
                new { FirstName   = request.FirstName,
                      LastName    = request.LastName,
                      Patronymic  = request.Patronymic,
                      NickName    = request.NickName,
                      Email       = request.Email,
                      PhoneNumber = request.PhoneNumber,
                      Description = request.Description,
                      ID          = id, });
 }
Example #10
0
        public void Put(UpdateUserInfoRequest model)
        {
            DataProvider.ExecuteNonQuery(GetConnection, "dbo.UserProfiles_UpdateInfo"
                                         , inputParamMapper : delegate(SqlParameterCollection paramCollection)
            {
                paramCollection.AddWithValue("@firstName", model.FirstName);
                paramCollection.AddWithValue("@lastName", model.LastName);
                paramCollection.AddWithValue("@tagLine", model.Tagline);
                paramCollection.AddWithValue("@userId", model.id);
            }

                                         );
        }
Example #11
0
        public async Task ChangeEmail(CancellationToken token)
        {
            if (!_service.IsAuthorized)
            {
                return;
            }

            var request = new UpdateUserInfoRequest
            {
                Email = Email
            };

            await _service.UpdateUserInfo(request, token);
        }
Example #12
0
        public async Task UpdateUserInfo()
        {
            var token = await _authenticationService.GetAccessToken();

            var user = User.Current;

            var request = new UpdateUserInfoRequest
            {
                AccessToken = token,
                UserName    = user.Name
            };

            await _client.UpdateUserInfo(request);
        }
Example #13
0
        public async Task ChangeCurrency(CancellationToken token)
        {
            if (!_service.IsAuthorized)
            {
                return;
            }

            var request = new UpdateUserInfoRequest
            {
                NewCurrency = Currency
            };

            await _service.UpdateUserInfo(request, token);
        }
        public async Task <IHttpActionResult> UpdateUserInfo(UpdateUserInfoRequest model)
        {
            Responce <UserInfoViewModel> responce = new Responce <UserInfoViewModel>();

            responce.Success = true;
            try
            {
                string City   = "";
                string UserId = "";
#pragma warning disable CS0219 // The variable 'CityId' is assigned but its value is never used
                string CityId = "";
#pragma warning restore CS0219 // The variable 'CityId' is assigned but its value is never used
                string Name        = "";
                string PhoneNumber = "";
                var    UserRole    = await UserManager.GetRolesAsync(User.Identity.GetUserId());

                //IdentityUser user = await UserManager.FindByIdAsync(model.UserId);
                using (SSCEntities db = new SSCEntities())
                {
                    var AspNetUser = db.AspNetUsers.Find(model.UserId);
                    AspNetUser.City            = model.City;
                    AspNetUser.Name            = model.Name;
                    AspNetUser.PhoneNumber     = model.PhoneNumber;
                    AspNetUser.CityId          = model.CityId;
                    db.Entry(AspNetUser).State = System.Data.Entity.EntityState.Modified;
                    await db.SaveChangesAsync();

                    City        = AspNetUser.City;
                    UserId      = AspNetUser.Id;
                    PhoneNumber = AspNetUser.PhoneNumber;
                    Name        = AspNetUser.Name;

                    responce.ResponeContent = new UserInfoViewModel
                    {
                        Email       = AspNetUser.Email,
                        City        = City,
                        UserId      = UserId,
                        PhoneNumber = PhoneNumber,
                        Name        = Name,
                        UserRole    = UserRole.FirstOrDefault()
                    };
                }
                return(Ok(responce));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Example #15
0
        public UpdateUserInfoResponse Process(UpdateUserInfoRequest request)
        {
            try
            {
                if (request.UserInfo == null)
                {
                }

                var userEnrollInfoDao = new UserEnrollInfoDao();
                var userDao           = new UserInfoDao();

                var enroll = new Enroll()
                {
                    DIN = (UInt64)request.UserInfo.UserId, Fingerprint = new byte[Zd2911Utils.MaxFingerprintLength * 10]
                };
                var deviceUser = new User()
                {
                    DIN = (UInt64)request.UserInfo.UserId, Enrolls = new List <Enroll> {
                        enroll
                    }
                };

                if (request.UserInfo.CredentialServices != null)
                {
                    var originalEnroll = userEnrollInfoDao.GetEnroll(request.UserInfo.UserId);
                    if (originalEnroll != null)
                    {
                        enroll.EnrollType = originalEnroll.EnrollType;
                    }
                }

                UserInfoMapper.UpdateSystemInfo(ref deviceUser, request.UserInfo);
                bool result = userDao.SaveOrUpdateUser(deviceUser);

                return(new UpdateUserInfoResponse()
                {
                    Token = request.Token, ResultType = ResultType.OK
                });
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                return(new UpdateUserInfoResponse()
                {
                    Token = request.Token, ResultType = ResultType.Error
                });
            }
        }
Example #16
0
        public async Task <UserInfoResponse> ModifyUser([FromBody] UpdateUserInfoRequest request, [FromRoute] int userId,
                                                        [FromServices] IManagementAreaService managementAreaService)
        {
            if (User.IsInRole("Manager"))
            {
                var users = await managementAreaService.GetAvailableUsersIdForManager(this.GetUserId());

                if (!users.Contains(userId))
                {
                    Response.StatusCode = 403;
                    return(null);
                }
            }

            return(await _accountService.ModifyUser(request, userId));
        }
Example #17
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            String niceName = skinTextBox_nickName.SkinTxt.Text.Trim();

            if (String.IsNullOrEmpty(niceName))
            {
                return;
            }

            UpdateUserInfoRequest request = new UpdateUserInfoRequest();

            request.User           = new UserInfo();
            request.User.UserID    = GlobalResourceManager.CurrentUser.UserID;
            request.User.NickName  = niceName;
            request.User.Signature = skinTextBox_signature.SkinTxt.Text;

            TCPClient.Singleton.SendProtoMessage(CMD.UpdateUserInfoRequestCMD, request);
        }
Example #18
0
        public HttpResponseMessage updateToForm(UpdateUserInfoRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }
            else
            {
                model.id = UserService.GetCurrentUserId();

                _UserProfileService.Put(model);

                ItemResponse <bool> response = new ItemResponse <bool>();

                response.IsSuccessful = true;

                return(Request.CreateResponse(HttpStatusCode.OK, response));
            }
        }
Example #19
0
        public async Task UpdateUserInfoAsync(UpdateUserInfoRequest request, CancellationToken cancellationToken)
        {
            var validator = new UpdateUserInfoRequestValidator();
            await validator.ValidateAndThrowAsync(request, null, cancellationToken);

            var userToUpdate = await _userManager.FindByIdAsync(request.UserId.ToString());

            if (userToUpdate == null)
            {
                throw new ServiceException(ErrorCodes.UserWithGivenIdNotFound, $"User with given id {request.UserId} not found");
            }

            userToUpdate.FirstName   = request.FirstName;
            userToUpdate.LastName    = request.LastName;
            userToUpdate.Email       = request.Email;
            userToUpdate.PhoneNumber = request.PhoneNumber;

            await _userManager.UpdateAsync(userToUpdate);
        }
Example #20
0
        public async Task <ActionResult> UpdateUserInfo(UpdateUserInfoRequest request)
        {
            var userId = User.Claims.First(a => a.Type == Constants.ClaimUserId).Value;
            var user   = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                throw new BusinessException("UserNotFound", "Kullanıcı bulunamadı.");
            }

            if (string.IsNullOrWhiteSpace(request.FullName))
            {
                throw new BusinessException("EmptyFullname", "İsim boş olamaz.");
            }

            user.FullName    = request.FullName;
            user.Gender      = request.Gender;
            user.Description = request.Description;


            if (request.BirthDate.HasValue)
            {
                user.BirthDate = new DateTime(request.BirthDate.Value.Year, request.BirthDate.Value.Month, request.BirthDate.Value.Day);
            }

            var consumerUser = user as ConsumerUser;

            if (consumerUser != null)
            {
                consumerUser.RelationshipStatus = request.RelationshipStatus;
                consumerUser.Job = request.Job;

                if (request.BirthTime.HasValue)
                {
                    consumerUser.BirthTime = new DateTime(1, 1, 1, request.BirthTime.Value.Hour, request.BirthTime.Value.Minute, 0);
                }
            }

            await _userManager.UpdateAsync(user);

            return(Ok());
        }
        public async Task <Responce <UserinfoResponce> > UpdateUserInfo(string Name, string Email, string City, string Mobile, string UserId, int CityId)
        {
            try
            {
                UpdateUserInfoRequest updateUserInfoRequest = new UpdateUserInfoRequest();
                updateUserInfoRequest.City        = City.Trim();
                updateUserInfoRequest.Name        = Name.Trim();
                updateUserInfoRequest.Email       = Email.Trim();
                updateUserInfoRequest.PhoneNumber = Mobile.Trim();
                updateUserInfoRequest.UserId      = UserId.Trim();
                updateUserInfoRequest.CityId      = CityId;

                string Json   = JsonConvert.SerializeObject(updateUserInfoRequest);
                var    result = await restapiHelper.PosyAsync <Responce <UserinfoResponce> >(EndPoint.Account.UpdateUserInfo, Json);

                return(result);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Example #22
0
        public async Task <UserInfoResponse> ModifyUser(UpdateUserInfoRequest request, int userId)
        {
            Check.Value(request, "Request").NotNull();
            request.Validate(ImmediateValidator.Instance);

            using (var conn = _dbConnFactory.CreateConnection())
            {
                var uniqueEmail = await conn.CheckUniqueEmail(request.Email, userId);

                Check.Value(uniqueEmail, "Request").IsNull("This email already exist");

                var uniqueNickName = await conn.CheckUniqueNickName(request.NickName, userId);

                Check.Value(uniqueNickName, "Request").IsNull("This email already exist");

                var dbUser = await conn.GetUserById(userId);

                Check.Value(dbUser).NotNull("User doesn't exist");

                conn.UpdateUser(userId, request);
                return(AutoMapper.Mapper.Map <UpdateUserInfoRequest, UserInfoResponse>(request));
            }
        }
Example #23
0
        public async Task <IActionResult> ChangeInfo([FromBody] UpdateUserInfoRequest request)
        {
            try
            {
                var thisUserId = ClaimsExtractor.GetUserIdClaim(User.Claims);

                await mUsersService.UpdateUserInfo(request.UserName, request.FirstName, request.LastName, thisUserId);

                return(Ok(new ResponseApiModel <bool>
                {
                    IsSuccessfull = true
                }));
            }
            catch (InvalidDataException ex)
            {
                return(BadRequest(new ResponseApiModel <bool>
                {
                    IsSuccessfull = false,
                    ErrorMessage = ex.Message
                }));
            }
            catch (KeyNotFoundException ex)
            {
                return(NotFound(new ResponseApiModel <bool>
                {
                    IsSuccessfull = false,
                    ErrorMessage = ex.Message
                }));
            }
            catch (Exception)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, new ResponseApiModel <bool>
                {
                    IsSuccessfull = false
                }));
            }
        }
Example #24
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            var clientApplicationService = ServiceFactory.GetClientApplicationService();
            var request = new UpdateUserInfoRequest()
            {
                Username = PrintingApp.UserCredential.UserName,
                Password = PrintingApp.UserCredential.Password,
                UserInfo = new UserInfo()
                {
                    UserComputerConfig = new UserComputerConfig()
                    {
                        HostMac  = mac.Text,
                        HostName = hostname.Text
                    },
                    UserPrinterConfig = new UserPrinterConfig()
                    {
                        A4Printer      = cb_A4Printer.SelectedItem.ToString(),
                        A5Printer      = cb_A5Printer.SelectedItem.ToString(),
                        BarcodePrinter = cb_BarcodePrinter.SelectedItem.ToString(),
                        PdfPrinter     = cb_PDFPrinter.SelectedItem.ToString(),
                    }
                },
            };
            var response = clientApplicationService.UpdateUserInfo(request);

            if (response.ResultType == ResultTypes.Ok)
            {
                PrintingApp.CurrentUserInfo.UserComputerConfig = request.UserInfo.UserComputerConfig;
                PrintingApp.CurrentUserInfo.UserPrinterConfig  = request.UserInfo.UserPrinterConfig;
                MessageBox.Show("保存打印机配置成功!");
                this.Close();
            }
            else
            {
                MessageBox.Show("保存打印机配置异常!");
            }
        }
Example #25
0
        /// <summary>
        /// 更新用户信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public UpdateUserInfoResponse UpdateUserInfo(UpdateUserInfoRequest request)
        {
            var result = new UpdateUserInfoResponse()
            {
                Result        = true,
                ResultMessage = "更新用户信息成功"
            };

            try
            {
                //var user = db.users.SingleOrDefault(p => p.UserID == request.UserID);
                //if (user == null)
                //{
                //    result.Result = false;
                //    result.ResultMessage = "找不到用户信息";
                //    return result;
                //}

                //user.Mobile = request.Mobile;
                //user.NickName = request.NickName;
                //user.TrueName = request.TrueName;
                //user.AreaInfo = request.AreaInfo;
                //user.PersonalSign = request.PersonalSign;
                //user.DataChange_LastTime = DateTime.Now;

                //db.SaveChanges();
            }
            catch (Exception ex)
            {
                result.Result        = false;
                result.ResultMessage = "更新用户信息异常";
                result.Errors.Add(ex.Message);
            }

            return(result);
        }
 public UpdateUserInfoResponse UpdateUserInfo(UpdateUserInfoRequest request)
 {
     return(MessageProcessor.Process(request, new UpdateUserInfoOp()));
 }
        public async Task <IActionResult> UpdateUserInfo([FromBody] UpdateUserInfoRequest request, CancellationToken cancellationToken)
        {
            await _userService.UpdateUserInfoAsync(request, cancellationToken);

            return(Ok());
        }
 public UpdateUserInfoResponse UpdateUserInfo(UpdateUserInfoRequest request)
 {
     return(FiveStarCoachManager.GetInstance().UpdateUserInfo(request));
 }
Example #29
0
        private void ActiveMQ_Received(object sender, string e)
        {
            var package = JsonConvert.DeserializeObject <Package>(e);

            switch (package.Type)
            {
            case "Request":
            {
                switch (package.Method)
                {
                case "RegisterUser":
                {
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                            {
                                Address = default(string),
                                user    = default(User),
                                //Username = default(string),
                                //Password = default(string),
                                //Info = default(string)
                            });

                    // TODO:数据库处理。
                    var Result = RegisterUserRequest?.Invoke(new Tuple <User>(data.user));
                    if (data.Address == null)
                    {
                        break;
                    }
                    // TODO:响应客户端。
                    activeMQ.Send(data.Address, new Package(package.SessionID, "Response", package.Method, JsonConvert.SerializeObject(new
                            {
                                Result
                            })).ToString());
                }
                break;

                case "UserLogin":
                {
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                            {
                                Address  = default(string),
                                Username = default(string),
                                Password = default(string),
                            });

                    if (data.Address == null)
                    {
                        break;
                    }

                    // TODO:数据库处理。
                    var Result = UserLoginRequest?.Invoke(new Tuple <string, string, string>(data.Username, data.Password, data.Address));

                    // TODO:响应客户端。
                    activeMQ.Send(data.Address, new Package(package.SessionID, "Response", package.Method, JsonConvert.SerializeObject(new
                            {
                                Result
                            })).ToString());
                    // 广播地址
                    TopicactiveMQ.TopicSend("Topic", new Package(package.SessionID, "Notice", "FriendLoginNotice", JsonConvert.SerializeObject(new
                            {
                                Username = data.Username,
                                Address  = data.Address
                            })).ToString());
                }

                break;

                case "SearchFriends":
                {
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                            {
                                Address    = default(string),
                                MyUserName = default(string),
                                Condition  = default(string)
                            });

                    if (data.Address == null)
                    {
                        break;
                    }

                    // TODO:数据库处理。
                    var Result = SearchFriendsRequest?.Invoke(new Tuple <string, string, string>(data.Address, data.MyUserName, data.Condition));

                    // TODO:响应客户端。
                    activeMQ.Send(data.Address, new Package(package.SessionID, "Response", package.Method, JsonConvert.SerializeObject(new
                            {
                                Result
                            })).ToString());
                }
                break;

                case "AddFriend":
                {
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                            {
                                Address  = default(string),
                                MyUserID = default(string),
                                FriendID = default(string)
                            });

                    if (data.Address == null)
                    {
                        break;
                    }

                    // TODO:数据库处理。
                    var Result = AddFriendRequest?.Invoke(new Tuple <string, string>(data.MyUserID, data.FriendID));

                    // 响应客户端,在主界面绑定好友信息。
                    activeMQ.Send(data.Address, new Package(package.SessionID, "Response", package.Method, JsonConvert.SerializeObject(new
                            {
                                Result
                            })).ToString());

                    // 通知被加好友方
                    activeMQ.Send(Result.Item3.Address, new Package(package.SessionID, "Notice", package.Method, JsonConvert.SerializeObject(new
                            {
                                Result
                            })).ToString());
                }
                break;

                case "GetMyFriends":
                {
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                            {
                                Address  = default(string),
                                UserName = default(string)
                            });

                    if (data.Address == null)
                    {
                        break;
                    }

                    // TODO:数据库处理。
                    var Result = GetMyFriendsRequest?.Invoke(new Tuple <string>(data.UserName));

                    // TODO:响应客户端。
                    activeMQ.Send(data.Address, new Package(package.SessionID, "Response", package.Method, JsonConvert.SerializeObject(new
                            {
                                Result
                            })).ToString());
                }
                break;

                case "GetUserInfo":
                {
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                            {
                                Address  = default(string),
                                UserName = default(string)
                            });

                    if (data.Address == null)
                    {
                        break;
                    }

                    // TODO:数据库处理。
                    var Result = GetUserInfoRequest?.Invoke(new Tuple <string>(data.UserName));

                    // TODO:响应客户端。
                    activeMQ.Send(data.Address, new Package(package.SessionID, "Response", package.Method, JsonConvert.SerializeObject(new
                            {
                                Result
                            })).ToString());
                }
                break;

                case "UpdateUserInfo":
                {
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                            {
                                Address = default(string),
                                User    = default(User)
                            });

                    if (data.Address == null)
                    {
                        break;
                    }

                    // TODO:数据库处理。
                    var Result = UpdateUserInfoRequest?.Invoke(new Tuple <User>(data.User));

                    // TODO:响应客户端。
                    activeMQ.Send(data.Address, new Package(package.SessionID, "Response", package.Method, JsonConvert.SerializeObject(new
                            {
                                Result
                            })).ToString());
                }
                break;

                case "Logout":
                {
                    var data = JsonConvert.DeserializeAnonymousType(package.Data, new
                            {
                                Address  = default(string),
                                UserName = default(string)
                            });

                    if (data.Address == null)
                    {
                        break;
                    }

                    // 数据库处理。
                    var Result = LogoutRequest?.Invoke(data.UserName);

                    // 广播好友退出信息
                    TopicactiveMQ.TopicSend("Topic", new Package(package.SessionID, "Notice", "Logout", JsonConvert.SerializeObject(new
                            {
                                Result,
                                data.UserName
                            })).ToString());
                }
                break;

                default:
                    break;
                }
            }
            break;

            default:
                break;
            }
        }
Example #30
0
        public void UpdateUser(User user, DeviceController device)
        {
            if (user == null || device == null)
            {
                return;
            }
            if (user.UserAuthentications == null || user.UserAuthentications.Count == 0)
            {
                return;
            }
            if (user.GetUserAccessableDeviceIds().Contains(device.DeviceID) == false)
            {
                return;
            }

            var deviceID   = device.DeviceID;
            var deviceCode = device.Code.ToInt32();

            Log.Info("Getting user authentication infos...");
            var userAuthenticationsOfDevice = user.UserAuthentications.Where(a => a.DeviceID == deviceID);
            var authenticationsOfDevice     = userAuthenticationsOfDevice as IList <UserAuthentication> ?? userAuthenticationsOfDevice.ToList();

            Log.Info("Getting user permission infos...");
            var deviceRoles = _deviceRole.Query(new Hashtable {
                { "Status", (int)GeneralStatus.Enabled }
            }).ToList();
            var userDevicePermission = user.GetUserDeviceRoleAuthorizedPermissionByDeviceId(deviceID, deviceRoles);

            Log.Info("Building device user...");
            var deviceUser = new UserInfo();

            deviceUser.UserId           = user.UserCode.ToInt32();
            deviceUser.ExternalUserCode = user.UserID.ToString();
            // user info
            deviceUser.UserName     = user.Name;
            deviceUser.UserStatus   = user.Status == GeneralStatus.Enabled;
            deviceUser.DepartmentId = user.DepartmentID;
            deviceUser.Comment      = user.Remark;
            // user role
            deviceUser.Role             = (Rld.DeviceSystem.Contract.Model.UserRole)userDevicePermission.PermissionAction.GetHashCode();
            deviceUser.AccessTimeZoneId = userDevicePermission.AllowedAccessTimeZoneID;

            //user authentication
            foreach (var userAuthentication in authenticationsOfDevice)
            {
                switch (userAuthentication.AuthenticationType)
                {
                case AuthenticationType.FingerPrint1:
                case AuthenticationType.FingerPrint2:
                case AuthenticationType.FingerPrint3:
                case AuthenticationType.FingerPrint4:
                case AuthenticationType.FingerPrint5:
                case AuthenticationType.FingerPrint6:
                case AuthenticationType.FingerPrint7:
                case AuthenticationType.FingerPrint8:
                case AuthenticationType.FingerPrint9:
                case AuthenticationType.FingerPrint10:
                {
                    var service = new FingerPrintService()
                    {
                        Index = (int)userAuthentication.AuthenticationType, Enabled = true
                    };
                    service.FingerPrintData = userAuthentication.AuthenticationData;
                    service.UseForDuress    = userAuthentication.IsDuress;
                    deviceUser.CredentialServices.Add(service);
                }
                break;

                case AuthenticationType.Password:
                {
                    var service = new PasswordService()
                    {
                        Enabled = true
                    };
                    service.Password     = SimpleEncryption.Decode(userAuthentication.AuthenticationData);
                    service.UseForDuress = userAuthentication.IsDuress;
                    deviceUser.CredentialServices.Add(service);
                }
                break;

                case AuthenticationType.IcCard:
                {
                    var service = new CredentialCardService()
                    {
                        Enabled = true
                    };
                    service.CardNumber   = userAuthentication.AuthenticationData;
                    service.UseForDuress = userAuthentication.IsDuress;
                    deviceUser.CredentialServices.Add(service);
                }
                break;

                default:
                    break;
                }
            }

            Log.Info("Invoke WebSocketOperation...");
            var operation             = new WebSocketOperation(deviceCode);
            var updateUserInfoRequest = new UpdateUserInfoRequest()
            {
                Token = operation.Token, UserInfo = deviceUser
            };
            string rawRequest  = DataContractSerializationHelper.Serialize(updateUserInfoRequest);
            var    rawResponse = operation.Execute(rawRequest);

            if (string.IsNullOrWhiteSpace(rawResponse))
            {
                throw new Exception(string.Format("Update user id:[{0}], device user id:[{1}] to device id:[{2}] fails. Response is empty, maybe the device is not register to device system.",
                                                  user.UserID, deviceUser.UserId, deviceID));
            }

            var response = DataContractSerializationHelper.Deserialize <UpdateUserInfoResponse>(rawResponse);

            Log.InfoFormat("Update user id:[{0}], device user id:[{1}] to device id:[{2}], result:[{3}]", user.UserID, deviceUser.UserId, deviceID, response.ResultType);

            if (response.ResultType != ResultType.OK)
            {
                throw new Exception(string.Format("Update user id:[{0}], device user id:[{1}] to device id:[{2}] fails.", user.UserID, deviceUser.UserId, deviceID));
            }
        }