public async Task <ActionResult <ICollection <SupportTicketResponseModel> > > GetUserTicketsInfo(ClaimsPrincipal currentUser, string username) { if (currentUser.HasClaim(c => c.Type == "Roles")) { List <SupportTicketResponseModel> userTickets = new List <SupportTicketResponseModel>(); var userAuthenticate = await _context.Users.FirstOrDefaultAsync(x => x.Username == username); if (userAuthenticate == null) { responseMessage.Message = "User not found"; return(StatusCode(404, responseMessage)); } else { foreach (var ticket in _context.SupportTickets) { if (ticket.UserId == userAuthenticate.Id) { SupportTicketResponseModel responseModel = new SupportTicketResponseModel(); responseModel.Id = ticket.Id; responseModel.Title = ticket.Title; responseModel.Message = ticket.Message; responseModel.TicketDate = ticket.Date; responseModel.HasResponse = ticket.HasResponce; userTickets.Add(responseModel); } } } if (userTickets.Count != 0) { return(StatusCode(200, userTickets)); } } else { responseMessage.Message = "You are not authorized to do such actions"; return(StatusCode(403, responseMessage)); } responseMessage.Message = "You don't have Support Tickets!"; return(StatusCode(400, responseMessage)); }
public async Task <ActionResult <ICollection <SupportTicketResponseModel> > > GetAllTicketsInfo(ClaimsPrincipal currentUser) { string role = ""; if (currentUser.HasClaim(c => c.Type == "Roles")) { string userRole = currentUser.Claims.FirstOrDefault(currentUser => currentUser.Type == "Roles").Value; role = userRole; } if (role == "Admin") { List <SupportTicketResponseModel> allTickets = new List <SupportTicketResponseModel>(); List <SupportTicket> tickets = new List <SupportTicket>(); tickets = _context.SupportTickets.ToList(); foreach (var ticket in tickets) { if (ticket.HasResponce == false) { SupportTicketResponseModel responseModel = new SupportTicketResponseModel(); var user = await _context.Users.FirstOrDefaultAsync(p => p.Id == ticket.UserId); responseModel.Id = ticket.Id; responseModel.Message = ticket.Message; responseModel.Title = ticket.Title; responseModel.Username = user.Username; allTickets.Add(responseModel); } } if (allTickets.Count != 0) { return(StatusCode(200, allTickets)); } } else { responseMessage.Message = "You are not authorized to do such actions"; return(StatusCode(403, responseMessage)); } responseMessage.Message = "You don't have Support Tickets!"; return(StatusCode(400, responseMessage)); }