Example #1
0
        public string GetCommitMessage(IntPtr hParentWnd, string parameters, string commonRoot, string[] pathList, string originalMessage)
        {
            String server;
            String ticketQuery;
            Selection selection = new Selection();

            if (!Validate(parameters, out server, out ticketQuery, out selection))
            {
                MessageBox.Show("Parameters are invalid", "TracExplorer");
                return originalMessage;
            }

            CommonRoot servers = CommonRoot.Instance;

            ServerDetails serverDetails;

            serverDetails = servers.Servers.Find(delegate(ServerDetails obj) { return (obj.Server == server); });

            if (serverDetails == null)
            {
                MessageBox.Show("Can't find server information!", "TracExplorer");
                return originalMessage;
            }

            List<TicketQueryDefinition> ticketQueries = serverDetails.TicketQueries;

            TicketQueryDefinition ticketQueryDef;

            ticketQueryDef = ticketQueries.Find(delegate(TicketQueryDefinition obj) { return (obj.Name == ticketQuery); });

            if (ticketQueryDef == null)
            {
                MessageBox.Show("Can't find ticket query!", "TracExplorer");
                return originalMessage;
            }

            if (selection.Items.Count <= 1)
            {
                MessageBox.Show("Can't find selection definitions!", "TracExplorer");
                return originalMessage;
            }

            TicketSelector form = new TicketSelector(serverDetails, ticketQueryDef, selection);

            if (form.ShowDialog() != DialogResult.OK)
                return originalMessage;

            StringBuilder result = new StringBuilder(originalMessage);
            if (originalMessage.Length != 0 && !originalMessage.EndsWith("\n"))
                result.AppendLine();

            // Correct wrong format in new line
            selection.Format = selection.Format.Replace("\\n", "\n");

            foreach (Ticket ticket in form.TicketsFixed)
            {
                result.AppendFormat(selection.Format, ticket.Selection, ticket.Id, ticket.Summary);
            }

            return result.ToString();
        }
Example #2
0
        private bool AddSelection(ref XmlDocument doc, Selection selection)
        {
            try
            {
                XmlElement childElement = doc.CreateElement("Selection");

                XmlAttribute formatAttribute = doc.CreateAttribute("Format");
                formatAttribute.Value = selection.Format;
                childElement.Attributes.Append(formatAttribute);

                foreach (string item in selection.Items)
                {
                    XmlElement itemElement = doc.CreateElement("Item");
                    itemElement.InnerText = item;
                    childElement.AppendChild(itemElement);
                }

                doc.DocumentElement.AppendChild(childElement);
                return true;
            }
            catch (XmlException)
            {
                return false;
            }
        }
Example #3
0
        private bool Validate(string parameters, out string server, out string ticketQuery, out Selection selection)
        {
            try
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(parameters);
                server = doc.DocumentElement.GetAttribute("server");
                ticketQuery = doc.DocumentElement.GetAttribute("ticketquery");

                selection = new Selection();

                // Add empty selection
                selection.Items.Add("");

                XmlElement childSelection = (XmlElement) doc.DocumentElement.FirstChild;

                selection.Format = childSelection.GetAttribute("Format");

                foreach (XmlElement childElement in childSelection.ChildNodes)
                {
                    String item = childElement.InnerText;
                    selection.Items.Add(item);
                }
            }
            catch (XmlException)
            {
                server = "";
                ticketQuery = "";
                selection = new Selection();
                return false;
            }
            return true;
        }
Example #4
0
        private String AddDefaultSelections(string parameters, Selection selection)
        {
            try
            {
                // Add default Selection definitions:
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(parameters);

                AddSelection(ref doc, selection);

                return doc.OuterXml;

            }
            catch (XmlException)
            {
                return null;
            }
        }