//扩展分组的用户信息 添加名字信息
        private List <KeyValuePair <RoleIdName, List <UserIdName> > > processGroupedUsers(List <GroupedUser> users)
        {
            var result = new List <KeyValuePair <RoleIdName, List <UserIdName> > >();

            foreach (var gpuser in users)
            {
                if (gpuser.UserID == null)
                {
                    continue;
                }


                string RoleId = gpuser.roleId + "";
                string RoleName;
                try
                {
                    RoleName = _roleService.GetEnterpriseRoleByRoleID(gpuser.roleId).Name;
                }
                catch (Exception)
                {
                    RoleName = "(" + RoleId + ")角色不存在";
                }
                RoleIdName rin = new RoleIdName
                {
                    RoleId   = RoleId,
                    RoleName = RoleName
                };
                List <UserIdName> list = new List <UserIdName>();
                foreach (var userId in gpuser.UserID)
                {
                    if (userId == null || userId.Equals(""))
                    {
                        continue;
                    }
                    string UserName;
                    try
                    {
                        UserName = _userService.GetFrontUserByUserID(userId).Name;
                    }
                    catch (Exception)
                    {
                        UserName = "******" + userId + ")用户不存在";
                    }
                    var uin = new UserIdName
                    {
                        UserId   = userId,
                        UserName = UserName
                    };
                    list.Add(uin);
                }
                KeyValuePair <RoleIdName, List <UserIdName> > kv = new KeyValuePair <RoleIdName, List <UserIdName> >(rin, list);
                result.Add(kv);
            }
            return(result);
        }
Example #2
0
        public FavoritePlace AddFavoritePlace([FromBody] UserIdName userIdName)
        {
            string userId    = userIdName.userId;
            string placeName = userIdName.name;
            GraphClientConnection graphClient   = new GraphClientConnection();
            FavoritePlace         favoritePlace = new FavoritePlace();

            if (graphClient == null)
            {
                StatusCode(500);
                return(null);
            }

            string matchQuery         = "(user:User{id:'" + userId + "'})-[like:LIKE]->(favoritePlace:Place{name:'" + placeName + "'})";
            var    favoritePlaceQuery = graphClient.client.Cypher
                                        .Match(matchQuery)
                                        .Return((favoritePlace) => new {
                FavoritePlace = favoritePlace.As <FavoritePlace>()
            })
                                        .Results;

            if (favoritePlaceQuery.Count() == 1) // relation between nodes exist already, so, you need to delete that relation
            {
                graphClient.client.Cypher
                .Match(matchQuery)
                .Delete("like")
                .ExecuteWithoutResults();
                //204
                return(null);
            }

            var newFavoritePlaceQuery = graphClient.client.Cypher
                                        .Match("(user:User{id:'" + userId + "'}),(favoritePlace:Place{name:'" + placeName + "'})")
                                        .Create("(user)-[:LIKE]->(favoritePlace)")
                                        .Return((favoritePlace) => new {
                FavoritePlace = favoritePlace.As <FavoritePlace>()
            })
                                        .Results;

            favoritePlace.name     = newFavoritePlaceQuery.ToList()[0].FavoritePlace.name;
            favoritePlace.address  = newFavoritePlaceQuery.ToList()[0].FavoritePlace.address;
            favoritePlace.imageUrl = newFavoritePlaceQuery.ToList()[0].FavoritePlace.imageUrl;
            return(favoritePlace);
        }