Ejemplo n.º 1
0
        private async Task <string> UniversalUserPermission(UserPermissionToListAggregation userPermissionToList, int listAggregationId,
                                                            string actionName)
        {
            var querry = new QueryBuilder();

            querry.Add("listAggregationId", listAggregationId.ToString());
            // querry.Add("password", password);

            string serializedUser = JsonConvert.SerializeObject(userPermissionToList);

            var requestMessage = new HttpRequestMessage(HttpMethod.Post, "User/" + actionName + querry.ToString());


            requestMessage.Content = new StringContent(serializedUser);

            requestMessage.Content.Headers.ContentType
                = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");


            await SetRequestBearerAuthorizationHeader(requestMessage);

            SetRequestAuthorizationLevelHeader(requestMessage, listAggregationId);

            var response = await _httpClient.SendAsync(requestMessage);

            var responseStatusCode = response.StatusCode;

            var responseBody = await response.Content.ReadAsStringAsync();

            var message = JsonConvert.DeserializeObject <MessageAndStatus>(responseBody);

            return(await Task.FromResult(message.Message));
        }
Ejemplo n.º 2
0
 public async Task <string> InviteUserPermission(UserPermissionToListAggregation userPermissionToList, int listAggregationId)
 {
     return(await UniversalUserPermission(userPermissionToList, listAggregationId, "InviteUserPermission"));
 }
Ejemplo n.º 3
0
 public async Task <MessageAndStatus> InviteUserPermission(UserPermissionToListAggregation userPermissionToList, int listAggregationId)
 {
     return(await UniversalUserPermission(userPermissionToList, listAggregationId, "InviteUserPermission"));
 }
Ejemplo n.º 4
0
        public async Task <ActionResult <MessageAndStatus> > DeleteUserPermission(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 delete."
                }
            }
            ;


            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
            {
                _context.Remove(userListAggr);
            }


            await _context.SaveChangesAsync();

            await _mediator.Publish(new DataChangedEvent(new int[] { user.UserId }));

            return(new MessageAndStatus {
                Status = "OK", Message = "User permission was deleted."
            });
        }
Ejemplo n.º 5
0
        public async Task <ActionResult <MessageAndStatus> > InviteUserPermission(int listAggregationId, [FromBody] UserPermissionToListAggregation item)
        {
            var user = await _context.Users.Where(a => a.EmailAddress == item.User.EmailAddress).FirstOrDefaultAsync();

            if (user == null)
            {
                return(await Task.FromResult(new MessageAndStatus { Status = "ERROR", Message = "User not exist." }));
            }

            var bbbb = _context.Invitations.Where(a => a.EmailAddress == item.User.EmailAddress && a.ListAggregatorId == listAggregationId).Any();

            if (bbbb)
            {
                return(await Task.FromResult(new MessageAndStatus { Status = "ERROR", Message = "Ivitation is on list" }));
            }

            bbbb = _context.UserListAggregators.Where(a => a.UserId == user.UserId && a.ListAggregatorId == listAggregationId).Any();

            if (bbbb)
            {
                return(await Task.FromResult(new MessageAndStatus { Status = "ERROR", Message = "User already has permission." }));
            }

            var senderName = HttpContext.User.Identity.Name;

            var invitationEntity = new InvitationEntity
            {
                EmailAddress     = item.User.EmailAddress,
                ListAggregatorId = listAggregationId,
                PermissionLevel  = item.Permission,
                SenderName       = senderName
            };


            _context.Add(invitationEntity);

            await _context.SaveChangesAsync();


            return(await Task.FromResult(new MessageAndStatus { Status = "OK", Message = "Ivitation was added." }));
        }
Ejemplo n.º 6
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."
            });
        }