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); }