protected void archivetickets_Click(object sender, EventArgs e) { DateTime datefrom = DateTime.Parse(archivefrom.Text); DateTime dateto = DateTime.Parse(archiveto.Text); if (config.HelpDesk.Provider == "xml") { StreamWriter sw = File.CreateText(HttpContext.Current.Server.MapPath("~/app_data/Tickets_" + datefrom.ToString("dd-MM-yy") + "_" + dateto.ToString("dd-MM-yy") + ".xml")); sw.WriteLine("<?xml version=\"1.0\"?>"); sw.WriteLine("<Tickets/>"); sw.Close(); sw.Dispose(); XmlDocument doc2 = new XmlDocument(); doc2.Load(HttpContext.Current.Server.MapPath("~/app_data/Tickets_" + datefrom.ToString("dd-MM-yy") + "_" + dateto.ToString("dd-MM-yy") + ".xml")); XmlDocument doc = new XmlDocument(); doc.Load(HttpContext.Current.Server.MapPath("~/App_Data/Tickets.xml")); foreach (XmlNode node in doc.SelectNodes("/Tickets/Ticket[@status='Fixed']")) { DateTime d = DateTime.Parse(node.SelectNodes("Note")[node.SelectNodes("Note").Count - 1].Attributes["datetime"].Value); bool faq = node.Attributes["faq"] != null; if (faq) { faq = bool.Parse(node.Attributes["faq"].Value); } if (datefrom.Date <= d.Date && dateto.Date > d.Date && !faq) { doc2.SelectSingleNode("/Tickets").AppendChild(doc2.ImportNode(node.Clone(), true)); doc.SelectSingleNode("/Tickets").RemoveChild(node); } } doc.Save(HttpContext.Current.Server.MapPath("~/app_data/Tickets.xml")); doc2.Save(HttpContext.Current.Server.MapPath("~/app_data/Tickets_" + datefrom.ToString("dd-MM-yy") + "_" + dateto.ToString("dd-MM-yy") + ".xml")); } else { Data.SQL.sql2linqDataContext sql = new Data.SQL.sql2linqDataContext(WebConfigurationManager.ConnectionStrings[config.HelpDesk.Provider].ConnectionString); foreach (Data.SQL.Ticket tick in sql.Tickets.Where(t => t.Archive == "" && !t.Faq)) { if (!API.isOpen(tick.Status)) { tick.Archive = datefrom.ToString("dd-MM-yy") + "_" + dateto.ToString("dd-MM-yy"); } } sql.SubmitChanges(); } }
protected void Migrate(string archive, XmlDocument doc, Data.SQL.sql2linqDataContext sql) { foreach (XmlNode node in doc.SelectNodes("/Tickets/Ticket")) { FullTicket ticket = new FullTicket(node); Data.SQL.Ticket tick = new Data.SQL.Ticket { Archive = archive, Faq = ticket.FAQ, Status = ticket.Status, AssignedTo = ticket.AssignedTo, ShowTo = ticket.ShowTo, ReadBy = ticket.ReadBy, Title = ticket.Subject, Priority = ticket.Priority }; foreach (Note n in ticket.Notes) { tick.Notes.Add(new Data.SQL.Note { DateTime = DateTime.Parse(n.Date), Hide = n.Hide, Username = n.Username, Content = n.NoteText }); } sql.Tickets.InsertOnSubmit(tick); } sql.SubmitChanges(); }