public async Task <IActionResult> AddUserToGroup(AddUserToGroupViewModel model) { bool hasPermission = await userHasRole("Admin"); if (!hasPermission) { return(BadRequest()); } GroupAccess groupAccess = new GroupAccess { GroupId = model.GroupId, ApplicationUserId = model.ApplicationUserId }; _context.GroupAccess.Add(groupAccess); _context.SaveChanges(); return(Ok()); }
public AddUserToGroupPage() { AddUserToGroupViewModel add = new AddUserToGroupViewModel(); InitializeComponent(); }
public async Task <IActionResult> AddUserToGroup(AddUserToGroupViewModel model) { try { var iDomain = Service <IdentityDomain>(); var domain = Service <GroupDomain>(); var addedUser = model.user_id != null ? await iDomain.GetUserById(model.user_id) : iDomain.GetUserByEmpCode(model.employee_code); var group = domain.Groups.Id(model.group_id); if (addedUser == null || group == null) { return(NotFound(new ApiResult { Code = ResultCode.NotFound, Data = null, Message = ResultCode.NotFound.DisplayName() })); } var mess = ""; if (group.GroupUsers.Any(u => u.UserId == addedUser.Id)) { mess += "User already in group\n"; } var roles = await iDomain.GetRoles(addedUser); if (roles.Contains("Admin")) { mess += "Can not add admin to a group\n"; } if (!string.IsNullOrEmpty(mess)) { return(BadRequest(new ApiResult { Code = ResultCode.FailValidation, Message = mess, Data = null })); } var entity = domain.AddUserToGroup(group, addedUser); var ev = _eDomain.AddUserToGroup(group, addedUser, User); _uow.SaveChanges(); var data = new Dictionary <string, string>(); data["title"] = "Your group has a new member"; data["message"] = ev.Message; _eDomain.Notify(new Message { Topic = $"GROUP_MEMBER_{group.Id}", Data = data }); var userData = new Dictionary <string, string>(); userData["title"] = "You've been added to a group"; userData["message"] = ev.Message; _eDomain.Notify(new Message { Topic = addedUser.Id, Data = userData }); _eDomain.SubscribeToTopic(addedUser, $"GROUP_MEMBER_{group.Id}"); _logger.CustomProperties(new { model }).Info("Add user to group"); return(Ok(entity.Id)); } catch (Exception e) { _logger.Error(e); return(Error(new ApiResult() { Code = ResultCode.UnknownError, Message = ResultCode.UnknownError.DisplayName() + ": " + e.Message })); } }