Beispiel #1
0
        public static pillar.Ticket.Ticket Retrieve(int ticketId)
        {
            using (var conn = new NpgsqlConnection(connString))
            {
                conn.Open();

                // Define a query
                var cmd = new NpgsqlCommand("SELECT * FROM tickets t JOIN users u ON t.userid = u.userid JOIN customers c ON c.userid = u.userid WHERE t.ticketid = '" + ticketId + "'", conn);

                // Execute a query
                var dr = cmd.ExecuteReader();

                // Read all rows and output the first column in each row
                while (dr.Read())
                {
                    var ticket = new pillar.Ticket.Ticket
                    {
                        TicketId       = Parse(dr[0].ToString()),
                        Description    = dr[1].ToString(),
                        Status         = dr[2].ToString(),
                        Agent          = dr[3].ToString(),
                        Priority       = dr[4].ToString(),
                        Type           = dr[5].ToString(),
                        Subject        = dr[6].ToString(),
                        OpenDate       = Convert.ToDateTime(dr[7].ToString(), null),
                        FirstReplyDate = Convert.ToDateTime(dr[8].ToString(), null),
                        SolveDate      = Convert.ToDateTime(dr[9].ToString(), null),
                        ReopenDate     = Convert.ToDateTime(dr[10].ToString(), null),
                        FinalSolveDate = Convert.ToDateTime(dr[11].ToString(), null),
                        DueDate        = Convert.ToDateTime(dr[12].ToString(), null),
                        //UserId = Parse(dr[13].ToString()),
                        User = new User.User()
                        {
                            UserId       = Parse(dr[16].ToString()),
                            UserName     = dr[17].ToString(),
                            Requester    = dr[23].ToString(),
                            Title        = dr[24].ToString(),
                            Organization = dr[29].ToString()
                        },
                        AddDate    = Convert.ToDateTime(dr[14].ToString(), null),
                        UpdateDate = Convert.ToDateTime(dr[15].ToString(), null),
                    };
                    var json = JsonConvert.SerializeObject(ticket);
                    Console.WriteLine(json);
                    return(ticket);
                }
            }
            return(null);
        }
Beispiel #2
0
        public static string UpdateTicket(pillar.Ticket.Ticket ticket)
        {
            try
            {
                using (var conn = new NpgsqlConnection(connString))
                {
                    conn.Open();
                    string UpdateCmd =
                        "update tickets set description=@description, status=@status, agent=@agent, priority=@priority, \"type\"=@type, subject=@subject, opendate=@opendate, firstreply=@firstreply, solvedate=@solvedate, reopendate=@reopendate, closeddate=@closeddate, duedate=@duedate, userid=@userid, added=@added, updated=@updated where ticketid=@ticketid;";
                    using (NpgsqlCommand cmd = new NpgsqlCommand(UpdateCmd, conn))
                    {
                        cmd.Connection = conn;
                        cmd.Parameters.AddWithValue("description", ticket.Description);
                        cmd.Parameters.AddWithValue("status", ticket.Status);
                        cmd.Parameters.AddWithValue("agent", ticket.Agent);
                        cmd.Parameters.AddWithValue("priority", ticket.Priority);
                        cmd.Parameters.AddWithValue("type", ticket.Type);
                        cmd.Parameters.AddWithValue("subject", ticket.Subject);
                        cmd.Parameters.AddWithValue("opendate", ticket.OpenDate);
                        cmd.Parameters.AddWithValue("firstreply", ticket.FirstReplyDate);
                        cmd.Parameters.AddWithValue("solvedate", ticket.SolveDate);
                        cmd.Parameters.AddWithValue("reopendate", ticket.ReopenDate);
                        cmd.Parameters.AddWithValue("closeddate", ticket.FinalSolveDate);
                        cmd.Parameters.AddWithValue("duedate", ticket.DueDate);
                        cmd.Parameters.AddWithValue("userid", ticket.User.UserId);
                        cmd.Parameters.AddWithValue("ticketid", ticket.TicketId);
                        cmd.Parameters.AddWithValue("added", ticket.AddDate);
                        cmd.Parameters.AddWithValue("updated", ticket.UpdateDate);

                        cmd.ExecuteNonQuery();
                        conn.Close();
                        var json = JsonConvert.SerializeObject(ticket);
                        Console.WriteLine(json);
                        return(json);
                    }
                }
            }
            catch (NpgsqlException err)
            {
                Console.Write(err);
                return(err.ToString());
            }
        }
Beispiel #3
0
        public static List <pillar.Ticket.Ticket> RetrieveAll()
        {
            try
            {
                using (var conn = new NpgsqlConnection(connString))
                {
                    conn.Open();

                    // Define a query
                    var cmd = new NpgsqlCommand("SELECT * FROM tickets t JOIN users u ON t.userid = u.userid JOIN customers c ON c.userid = u.userid", conn);

                    // Execute a query
                    var dr      = cmd.ExecuteReader();
                    var tickets = new List <pillar.Ticket.Ticket>();

                    // Read all rows and output the first column in each row
                    while (dr.HasRows)
                    {
                        foreach (var row in dr)
                        {
                            var ticket = new pillar.Ticket.Ticket
                            {
                                TicketId       = Parse(dr[0].ToString()),
                                Description    = dr[1].ToString(),
                                Status         = dr[2].ToString(),
                                Agent          = dr[3].ToString(),
                                Priority       = dr[4].ToString(),
                                Type           = dr[5].ToString(),
                                Subject        = dr[6].ToString(),
                                OpenDate       = Convert.ToDateTime(dr[7].ToString(), null),
                                FirstReplyDate = Convert.ToDateTime(dr[8].ToString(), null),
                                SolveDate      = Convert.ToDateTime(dr[9].ToString(), null),
                                ReopenDate     = Convert.ToDateTime(dr[10].ToString(), null),
                                FinalSolveDate = Convert.ToDateTime(dr[11].ToString(), null),
                                DueDate        = Convert.ToDateTime(dr[12].ToString(), null),
                                //UserId = Parse(dr[13].ToString()),
                                User = new User.User()
                                {
                                    UserName     = dr[17].ToString(),
                                    Requester    = dr[23].ToString(),
                                    Title        = dr[24].ToString(),
                                    Organization = dr[29].ToString()
                                },
                                AddDate    = Convert.ToDateTime(dr[14].ToString(), null),
                                UpdateDate = Convert.ToDateTime(dr[15].ToString(), null),
                            };

                            tickets.Add(ticket);
                        }

                        var ticketsSorted = tickets.OrderByDescending(o => o.UpdateDate).ToList();


                        var json = JsonConvert.SerializeObject(ticketsSorted);
                        Console.WriteLine(json);
                        return(ticketsSorted);
                    }
                }
                return(null);
            }
            catch (NpgsqlException err)
            {
                Console.Write(err);
                return(null);
            }
        }
Beispiel #4
0
        public static pillar.Ticket.Ticket Add(pillar.Ticket.Ticket ticket)
        {
            try
            {
                using (var conn = new NpgsqlConnection(connString))
                {
                    conn.Open();

                    using (var cmd = new NpgsqlCommand())
                    {
                        cmd.Connection  = conn;
                        cmd.CommandText =
                            "INSERT INTO tickets (description, status, agent, priority, \"type\", subject, opendate, firstreply, solvedate, reopendate, closeddate, duedate, userid, added, updated)" +
                            "VALUES (@description, @status, @agent, @priority, @type, @subject, @opendate, @firstreply, @solvedate, @reopendate, @closeddate, @duedate, @userid, @added, @updated);" +
                            "select currval('ticket_id_seq');";
                        cmd.Parameters.AddWithValue("description", ticket.Description);
                        cmd.Parameters.AddWithValue("status", ticket.Status);
                        cmd.Parameters.AddWithValue("agent", ticket.Agent);
                        cmd.Parameters.AddWithValue("priority", ticket.Priority);
                        cmd.Parameters.AddWithValue("type", ticket.Type);
                        cmd.Parameters.AddWithValue("subject", ticket.Subject);
                        cmd.Parameters.AddWithValue("opendate", ticket.OpenDate);
                        cmd.Parameters.AddWithValue("firstreply", ticket.FirstReplyDate);
                        cmd.Parameters.AddWithValue("solvedate", ticket.SolveDate);
                        cmd.Parameters.AddWithValue("reopendate", ticket.ReopenDate);
                        cmd.Parameters.AddWithValue("closeddate", ticket.FinalSolveDate);
                        cmd.Parameters.AddWithValue("duedate", ticket.DueDate);
                        cmd.Parameters.AddWithValue("userid", ticket.User.UserId);
                        cmd.Parameters.AddWithValue("added", ticket.AddDate);
                        cmd.Parameters.AddWithValue("updated", ticket.UpdateDate);

                        var dr = cmd.ExecuteReader(); // Will also Execute Insert since it's in the same statement
                        int ticketId;

                        while (dr.Read())
                        {
                            ticketId = dr.GetInt32(0);

                            var newTicket = new pillar.Ticket.Ticket
                            {
                                TicketId       = ticketId,
                                Description    = ticket.Description,
                                Status         = ticket.Status,
                                Agent          = ticket.Agent,
                                Priority       = ticket.Priority,
                                Type           = ticket.Type,
                                Subject        = ticket.Subject,
                                OpenDate       = ticket.OpenDate,
                                FirstReplyDate = ticket.FirstReplyDate,
                                SolveDate      = ticket.SolveDate,
                                ReopenDate     = ticket.ReopenDate,
                                FinalSolveDate = ticket.FinalSolveDate,
                                DueDate        = ticket.DueDate,
                                //UserId = Parse(dr[13].ToString()),
                                User = new User.User()
                                {
                                    UserId       = ticket.User.UserId,
                                    UserName     = ticket.User.UserName,
                                    Requester    = ticket.User.Requester,
                                    Title        = ticket.User.Title,
                                    Organization = ticket.User.Organization,
                                },
                                AddDate    = ticket.AddDate,
                                UpdateDate = ticket.UpdateDate,
                            };

                            Console.WriteLine($"Ticket #{ticketId} added on {ticket.OpenDate} for {ticket.Subject}.");
                            conn.Close();
                            var json = JsonConvert.SerializeObject(ticket);
                            Console.WriteLine(json);
                            return(newTicket);
                        }
                        conn.Close();
                        return(null);
                    }
                }
            }
            catch (NpgsqlException err)
            {
                Console.Write(err);
                return(null);
            }
        }