コード例 #1
0
        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."
            });
        }
コード例 #2
0
        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."
            });
        }
コード例 #3
0
        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" }));
        }
コード例 #4
0
        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));
        }