/// <summary> /// Adds a user to a group /// </summary> /// <param name="userId"></param> /// <param name="groupId"></param> public int AddUserToGroup(int userId, int groupId) { var entity = _context.GroupHasUser.FirstOrDefault(ghu => ghu.UserId == userId && ghu.GroupId == groupId); if (entity == null) { _context.GroupHasUser.Add(new GroupHasUser { UserId = userId, GroupId = groupId, JoinDate = DateTime.UtcNow }); var activity = new GroupHasActivity { GroupId = groupId, UserId = userId, Type = "JOIN", CreationDate = DateTime.UtcNow }; _context.GroupHasActivity.Add(activity); _context.SaveChangesAsync(); return(activity.GroupHasActivityId); } return(0); }
/// <summary> /// Update a group in the database /// </summary> /// <param name="group"></param> public int UpdateGroup(Group group) { var entity = _context.Group.SingleOrDefault(g => g.GroupId == group.GroupId); if (entity != null) { var activity = new GroupHasActivity(); if (entity.Description != group.Description) { activity = new GroupHasActivity { GroupId = group.GroupId, UserId = group.OwnerId, Type = "DESC", NewVal = group.Description, CreationDate = DateTime.UtcNow }; _context.GroupHasActivity.Add(activity); } entity.GroupName = group.GroupName; entity.Description = group.Description; entity.CategoryId = group.CategoryId; entity.OwnerId = group.OwnerId; entity.State = group.State; _context.Group.Update(entity); _context.SaveChangesAsync(); return(activity.GroupHasActivityId); } return(0); }
/// <summary> /// Removes a user from a group /// </summary> /// <param name="userId"></param> /// <param name="groupId"></param> public int RemoveUserFromGroup(int userId, int groupId) { var entity = _context.GroupHasUser.FirstOrDefault(ghu => ghu.UserId == userId && ghu.GroupId == groupId); if (entity != null) { _context.GroupHasUser.Remove(entity); var activity = new GroupHasActivity { GroupId = groupId, UserId = userId, Type = "LEAVE", CreationDate = DateTime.UtcNow }; _context.GroupHasActivity.Add(activity); _context.SaveChangesAsync(); return(activity.GroupHasActivityId); } return(0); }