Пример #1
0
        public async Task <UserGroupsDataModel> GetUserGroupsAsync(Interfaces.IRepository repo, string game, string user)
        {
            var userObj = await repo.GetUser(user);

            if (userObj == null)
            {
                UserGroupsDataModel empty = new UserGroupsDataModel
                {
                    UserName = "******"
                };

                return(empty);
            }

            var gameGroups = await repo.GetGroupsAsync(game);

            UserGroupsDataModel userGroups = new UserGroupsDataModel {
                UserName = user, Game = game
            };

            userGroups.UserGroups = from g in gameGroups
                                    join ug in userObj.Groups on g.id equals ug
                                    select new GroupNameModel
            {
                Id   = g.id,
                Name = g.Name
            };

            userGroups.OtherGroups = from g in gameGroups.Where(g => !userObj.Groups.Contains(g.id))
                                     select new GroupNameModel
            {
                Id   = g.id,
                Name = g.Name
            };

            return(userGroups);
        }
        public async Task <bool> SaveGroupsAsync(string groupIds, UsersLoginDataModel user, CommunityDataModel community)
        {
            if (groupIds == null)
            {
                return(false);
            }
            string[] interests          = groupIds.Split(',');
            var      _selectedInterests = await _unitOfWork.UserGroupsRepository.FindAllBy(c => c.User == user && c.Community == community);

            foreach (var updateItem in _selectedInterests)
            {
                if (interests.Contains(updateItem.GroupId.ToString()) == false)
                {
                    updateItem.IsActive = false;
                }
                else
                {
                    updateItem.IsActive = true;
                    interests           = interests.Where(val => val != updateItem.GroupId.ToString()).ToArray();
                }
                await _unitOfWork.UserGroupsRepository.Update(updateItem);
            }
            foreach (var item in interests)
            {
                if (!string.IsNullOrEmpty(item) && item != "0")
                {
                    UserGroupsDataModel userGroups = new UserGroupsDataModel();
                    userGroups.User      = user;
                    userGroups.Community = community;
                    userGroups.IsActive  = true;
                    userGroups.GroupId   = Convert.ToInt32(item);
                    await _unitOfWork.UserGroupsRepository.Insert(userGroups);
                }
                //Console.WriteLine(item);
            }
            return(true);
        }