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)); }
public async Task <string> InviteUserPermission(UserPermissionToListAggregation userPermissionToList, int listAggregationId) { return(await UniversalUserPermission(userPermissionToList, listAggregationId, "InviteUserPermission")); }
public async Task <MessageAndStatus> InviteUserPermission(UserPermissionToListAggregation userPermissionToList, int listAggregationId) { return(await UniversalUserPermission(userPermissionToList, listAggregationId, "InviteUserPermission")); }
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." }); }
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." })); }
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." }); }