Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }