public async Task <ActionResult <MessageAndStatus> > ChangeUserPermission(int listAggregationId, [FromBody] UserPermissionToListAggregation item) { var user = await _context.Users.Where(a => a.EmailAddress == item.User.EmailAddress).FirstOrDefaultAsync(); if (user == null) { return new MessageAndStatus { Status = "ERROR", Message = "User not exist." } } ; var count = await _context.UserListAggregators.Where(a => a.ListAggregatorId == listAggregationId && a.PermissionLevel == 1).CountAsync(); UserListAggregatorEntity lastAdmin = null; if (count == 1) { lastAdmin = await _context.UserListAggregators.Where(a => a.ListAggregatorId == listAggregationId && a.PermissionLevel == 1).SingleAsync(); } if (count == 1 && user.UserId == lastAdmin.UserId) { return new MessageAndStatus { Status = "ERROR", Message = "Only one Admin left - not changed." } } ; var userListAggr = await _context.UserListAggregators.Where(a => a.User.UserId == item.User.UserId && a.ListAggregatorId == listAggregationId) .FirstOrDefaultAsync(); if (userListAggr == null) { return new MessageAndStatus { Status = "ERROR", Message = "User permission not found." } } ; else { userListAggr.PermissionLevel = item.Permission; } // _context.Update(userListAggr); await _context.SaveChangesAsync(); await _mediator.Publish(new DataChangedEvent(new int[] { user.UserId })); return(new MessageAndStatus { Status = "OK", Message = "Permission has changed." }); }
public async Task <ActionResult <MessageAndStatus> > AddUserPermission(int listAggregationId, [FromBody] UserPermissionToListAggregation item) { var user = await _context.Users.Where(a => a.EmailAddress == item.User.EmailAddress).FirstOrDefaultAsync(); if (user == null) { return new MessageAndStatus { Status = "ERROR", Message = "User not exist." } } ; var bbbb = _context.UserListAggregators.Where(a => a.User.UserId == item.User.UserId && a.ListAggregatorId == listAggregationId).Any(); if (bbbb) { return new MessageAndStatus { Status = "ERROR", Message = "User is on list" } } ; var userListAggregatorEntity = new UserListAggregatorEntity { UserId = user.UserId, ListAggregatorId = listAggregationId, PermissionLevel = item.Permission }; _context.UserListAggregators.Add(userListAggregatorEntity); await _context.SaveChangesAsync(); return(new MessageAndStatus { Status = "OK", Message = "User was added." }); }
public async Task <ActionResult <MessageAndStatus> > AcceptInvitation([FromBody] Invitation invitation) { var invitationEntity = _mapper.Map <InvitationEntity>(invitation); _context.Remove(invitationEntity); var userId = _context.Users.Single(a => a.EmailAddress == HttpContext.User.Identity.Name).UserId; var userListAggregatorEntity = new UserListAggregatorEntity { ListAggregatorId = invitation.ListAggregatorId, UserId = userId, PermissionLevel = invitation.PermissionLevel }; _context.Add(userListAggregatorEntity); await _context.SaveChangesAsync(); return(await Task.FromResult(new MessageAndStatus { Status = "OK" })); }
public async Task <ActionResult <ListAggregator> > AddListAggregatortoListt(int parentId, [FromBody] ListAggregator item) { var listItemEntity = _mapper.Map <ListAggregatorEntity>(item); //listItemEntity.ListAggregatorId = parentId; var userListAggregatorEntity = new UserListAggregatorEntity { UserId = parentId, ListAggregator = listItemEntity, PermissionLevel = 1 }; _context.UserListAggregators.Add(userListAggregatorEntity); await _context.SaveChangesAsync(); //var item = _mapper.Map<ListItem>(listItemEntity); item.ListAggregatorId = listItemEntity.ListAggregatorId; return(await Task.FromResult(item)); }