public void SendTickets(Socket handler, string departmentId) { Console.WriteLine($"Sending tickets to {departmentId}"); List <SecondaryTicket> tickets; if (!secondaryTickets.TryGetValue(departmentId, out tickets)) { tickets = new List <SecondaryTicket>(); } Console.WriteLine(tickets.Count); List <SecondaryTicket> departmentTickets = new List <SecondaryTicket>(); for (int i = 0; i < tickets.Count; i++) { SecondaryTicket ticket = tickets[i]; departmentTickets.Add(ticket); db.SetSecondaryTicketReceived(ticket.Id.ToString(), true); } string jsonString = $"SECONDARYTICKETS {Newtonsoft.Json.JsonConvert.SerializeObject(departmentTickets)}"; Send(handler, jsonString); }
public SecondaryTicket AddSecondaryTicket(string originalTicketId, string solver, string secondarySolver, string title, string question) { SecondaryTicket st = new SecondaryTicket(ObjectId.GenerateNewId(), new ObjectId(originalTicketId), solver, secondarySolver, title, question); secondaryTickets.InsertOne(st); return(st); }
public DataTable GetSecondaryTicketsBySolver(string solver) { try { List <SecondaryTicket> tickets = db.GetSecondaryTicketsBySolver(solver); DataTable dt = new DataTable("secondaryTickets"); dt.Columns.Add("id"); dt.Columns.Add("originalticketId"); dt.Columns.Add("solver"); dt.Columns.Add("secondarysolver"); dt.Columns.Add("date"); dt.Columns.Add("title"); for (int i = 0; i < tickets.Count; i++) { SecondaryTicket ticket = tickets[i]; List <string> arr = new List <string>(); arr.Add(ticket.Id.ToString()); arr.Add(ticket.originalTicketId.ToString()); arr.Add(ticket.solver); arr.Add(ticket.secondarySolver); arr.Add(ticket.date.ToString()); arr.Add(ticket.title); for (int u = 0; u < ticket.questions.Count; u++) { if (!dt.Columns.Contains("question:" + u)) { dt.Columns.Add("question:" + u); } if (!dt.Columns.Contains("answers: " + u)) { dt.Columns.Add("answers: " + u); } arr.Add(ticket.questions[u]); arr.Add(ticket.answers[u]); } dt.Rows.Add(arr.ToArray()); } return(dt); } catch (Exception e) { Console.WriteLine(e); } return(null); }
public int AddSecondaryTicket(string originalTicketId, string solver, string secondarySolver, string title, string question) { SecondaryTicket st = db.AddSecondaryTicket(originalTicketId, solver, secondarySolver, title, question); db.ChangeTicketStatus(originalTicketId, TicketStatus.WaitingForAnswers); departmentQueue.FetchSecondaryTickets(); return(0); }
public void FetchSecondaryTickets() { List <SecondaryTicket> tickets = db.GetSecondaryTickets(); for (int i = 0; i < tickets.Count; i++) { SecondaryTicket ticket = tickets[i]; //if (!ticket.received) AddSecondaryTicket(ticket); } }
public void ChangeSecondaryTicketAnswer(string id, string response) { Console.WriteLine($"adding answer {response} to {id}"); var filter = Builders <SecondaryTicket> .Filter.Eq("Id", new ObjectId(id)); SecondaryTicket st = secondaryTickets.Find(x => x.Id == new ObjectId(id)).ToList()[0]; st.answers[st.answers.Count - 1] = response; var update = Builders <SecondaryTicket> .Update.Set("answers", st.answers); secondaryTickets.UpdateOne(filter, update); }
public bool AddSecondaryTicket(SecondaryTicket st) { if (secondaryTickets.ContainsKey(st.secondarySolver)) { if (!secondaryTickets.TryGetValue(st.secondarySolver, out List <SecondaryTicket> tickets)) { return(false); } List <SecondaryTicket> old = new List <SecondaryTicket>(tickets); int index = old.FindIndex(x => x.Id == st.Id); if (index == -1) { tickets.Add(st); } else { tickets[index] = st; } if (!secondaryTickets.TryUpdate(st.secondarySolver, tickets, old)) { return(false); } } else { List <SecondaryTicket> list = new List <SecondaryTicket>(); list.Add(st); if (!secondaryTickets.TryAdd(st.secondarySolver, list)) { return(false); } } return(true); }
public DataTable GetSecondaryTickets() { List <SecondaryTicket> tickets = db.GetSecondaryTickets(); DataTable dt = new DataTable("secondaryTickets"); dt.Columns.Add("id"); dt.Columns.Add("originalticketId"); dt.Columns.Add("solver"); dt.Columns.Add("secondarysolver"); dt.Columns.Add("date"); dt.Columns.Add("title"); for (int i = 0; i < tickets.Count; i++) { SecondaryTicket ticket = tickets[i]; List <string> arr = new List <string>(); arr.Add(ticket.Id.ToString()); arr.Add(ticket.originalTicketId.ToString()); arr.Add(ticket.solver); arr.Add(ticket.secondarySolver); arr.Add(ticket.date.ToString()); arr.Add(ticket.title); for (int u = 0; u < ticket.questions.Count; u++) { dt.Columns.Add("question:" + u); dt.Columns.Add("answers: " + u); arr.Add(ticket.questions[u]); arr.Add(ticket.answers[u]); } dt.Rows.Add(arr.ToArray()); } return(dt); }