aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Native/Tango.Emulations.Native/PMR/Debugging/StartDebugLogRequest.pb-c.c
blob: 4c9f854c8c9a16155715cf3028936694df422f09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: StartDebugLogRequest.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "StartDebugLogRequest.pb-c.h"
void   start_debug_log_request__init
                     (StartDebugLogRequest         *message)
{
  static const StartDebugLogRequest init_value = START_DEBUG_LOG_REQUEST__INIT;
  *message = init_value;
}
size_t start_debug_log_request__get_packed_size
                     (const StartDebugLogRequest *message)
{
  assert(message->base.descriptor == &start_debug_log_request__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t start_debug_log_request__pack
                     (const StartDebugLogRequest *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &start_debug_log_request__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t start_debug_log_request__pack_to_buffer
                     (const StartDebugLogRequest *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &start_debug_log_request__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
StartDebugLogRequest *
       start_debug_log_request__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (StartDebugLogRequest *)
     protobuf_c_message_unpack (&start_debug_log_request__descriptor,
                                allocator, len, data);
}
void   start_debug_log_request__free_unpacked
                     (StartDebugLogRequest *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &start_debug_log_request__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
#define start_debug_log_request__field_descriptors NULL
#define start_debug_log_request__field_indices_by_name NULL
#define start_debug_log_request__number_ranges NULL
const ProtobufCMessageDescriptor start_debug_log_request__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "StartDebugLogRequest",
  "StartDebugLogRequest",
  "StartDebugLogRequest",
  "",
  sizeof(StartDebugLogRequest),
  0,
  start_debug_log_request__field_descriptors,
  start_debug_log_request__field_indices_by_name,
  0,  start_debug_log_request__number_ranges,
  (ProtobufCMessageInit) start_debug_log_request__init,
  NULL,NULL,NULL    /* reserved[123] */
};
lass="w"> ITeamFoundationServiceClient tfs = new TeamFoundationServiceClient("https://twinetfs.visualstudio.com/DefaultCollection", String.Empty, "szzfokrceo4rhd4eqi5qpmxn3pa5iwl3q7tlqd36l2m7smz2ynoa"); var project = tfs.GetProject("Tango").Result; var allItems = tfs.GetAllWorkItems(project).Result.OrderByDescending(x => x.Type).OrderBy(x => x.Severity).ToList(); var activeItems = allItems.Where(x => x.State == State.Active || x.State == State.New).ToList(); var resolvedItems = allItems.Where(x => x.State == State.Resolved).ToList(); Document document = new Document(); document.Info.Title = "Tango Bug Report"; document.Info.Author = "Twine Solutions LTD"; document.DefaultPageSetup.TopMargin = 5; document.DefaultPageSetup.RightMargin = 5; document.DefaultPageSetup.LeftMargin = 5; Style style = document.Styles["Normal"]; style.Font.Size = 7; var section = document.AddSection(); section.PageSetup.PageFormat = PageFormat.A4; var headParagraph = section.AddParagraph(); headParagraph.Format.Alignment = ParagraphAlignment.Left; headParagraph.Format.Font.Size = 16; headParagraph.Format.Font.Bold = true; headParagraph.Format.SpaceBefore = "8mm"; headParagraph.Format.SpaceAfter = "5mm"; headParagraph.Format.RightIndent = "5mm"; headParagraph.Format.Font.Color = Colors.DimGray; var img = headParagraph.AddImage(Path.Combine(startPath, "twine-logo.jpg")); headParagraph.AddSpace(5); var t = headParagraph.AddText(" Twine Solutions VSTS Report"); var pp = section.AddParagraph(String.Format("This report was generated on {0}. Below you can find a daily summery of the Tango project, work items state and urgency.", DateTime.Now.ToShortDateString())); pp.Format.LeftIndent = "2cm"; AddTable(section, "All Active Items", activeItems); section.AddPageBreak(); AddTable(section, "Created Today", activeItems.Where(x => x.CreatedDate.Date == DateTime.Now.Date)); section.AddPageBreak(); AddTable(section, "Resolved Today", resolvedItems.Where(x => x.ResolvedDate.Date == DateTime.Now.Date)); section.AddPageBreak(); AddChart(section, ChartType.Column2D, "Items Per Member", activeItems.GroupBy(x => x.AssignedTo), nameof(TeamMember.DisplayName)); section.AddPageBreak(); AddChart(section, ChartType.Bar2D, "Items Per Area", activeItems.GroupBy(x => x.Area.Name), null); section.AddPageBreak(); foreach (var g in activeItems.GroupBy(x => x.Area.Name)) { AddTable(section, g.Key + " Items", g); section.AddPageBreak(); } var group = activeItems.GroupBy(x => x.AssignedTo); var file = TemporaryManager.Default.CreateFile(); PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(false, PdfFontEmbedding.None); pdfRenderer.Document = document; pdfRenderer.RenderDocument(); pdfRenderer.PdfDocument.Save(file.Path); ITeamFoundationEmailClient emailClient = new TeamFoundationEmailClient(new System.Net.NetworkCredential("roy@twine-s.com", "Maya2018")); Email mail = new Email(); mail.Attachments.Add(new Attachment() { FilePath = file.Path, Name = "VSTS-REPORT.pdf" }); mail.From = project.Members.SingleOrDefault(x => x.DisplayName.Contains("Roy")); mail.To.Add(mail.From); mail.Subject = "VSTS Daily Report"; mail.Body = "Attached is a daily report containing Tango project work items."; emailClient.Send(mail).Wait(); file.Delete(); } private static Chart AddChart<T>(Section section, ChartType chartType, String header, IEnumerable<IGrouping<T, WorkItem>> workItemGroups, String propName) { var headParagraph = section.AddParagraph(header); headParagraph.Format.Alignment = ParagraphAlignment.Left; headParagraph.Format.Font.Size = 16; headParagraph.Format.Font.Bold = true; headParagraph.Format.SpaceBefore = "8mm"; headParagraph.Format.SpaceAfter = "5mm"; Chart chart = section.AddChart(chartType); chart.Width = section.Document.DefaultPageSetup.PageWidth - 5; chart.Height = "10cm"; workItemGroups = workItemGroups.OrderByDescending(x => x.Count()); Series series = chart.SeriesCollection.AddSeries(); series.Add(workItemGroups.Select(x => (double)x.Count()).ToArray()); XSeries xseries = chart.XValues.AddXSeries(); if (propName != null) { xseries.Add(workItemGroups.Select(x => x.Key.GetType().GetProperty(propName, BindingFlags.Public | BindingFlags.Instance).GetValue(x.Key).ToString()).ToArray()); } else { xseries.Add(workItemGroups.Select(x => x.Key.ToString()).ToArray()); } var elements = series.Elements.Cast<Point>().ToArray(); for (int i = 0; i < elements.Length; i++) { elements[i].FillFormat.Color = _colors[i]; } chart.XAxis.MajorTickMark = TickMarkType.Outside; chart.XAxis.Title.Caption = propName; chart.YAxis.MajorTickMark = TickMarkType.Outside; chart.YAxis.HasMajorGridlines = true; chart.PlotArea.LineFormat.Color = Colors.White; chart.PlotArea.LineFormat.Width = 1; chart.PlotArea.LineFormat.Visible = true; return chart; } private static Table AddTable(Section section, String header, IEnumerable<WorkItem> workItems) { String startPath = AssemblyHelper.GetCurrentAssemblyFolder(); var headParagraph = section.AddParagraph(header); headParagraph.Format.Alignment = ParagraphAlignment.Left; headParagraph.Format.Font.Size = 16; headParagraph.Format.Font.Bold = true; headParagraph.Format.SpaceBefore = "8mm"; headParagraph.Format.SpaceAfter = "5mm"; var table = section.AddTable(); table.Borders.Color = Colors.Black; table.Borders.Width = 0.25; table.Borders.Left.Width = 0.5; table.Borders.Right.Width = 0.5; table.Rows.LeftIndent = 0; table.BottomPadding = "2mm"; table.TopPadding = "2mm"; table.LeftPadding = "2mm"; table.RightPadding = "2mm"; // Before you can add a row, you must define the columns table.AddColumn("1cm"); table.AddColumn(); table.AddColumn("4cm"); table.AddColumn(); table.AddColumn(); table.AddColumn(); table.AddColumn("1.5cm"); table.AddColumn("1.5cm"); table.AddColumn("1.5cm"); // Create the header of the table Row row = table.AddRow(); row.HeadingFormat = true; row.Shading.Color = Colors.Gainsboro; row.Cells[0].AddParagraph("Work Item"); row.Cells[1].AddParagraph("Created Date"); row.Cells[2].AddParagraph("Title"); row.Cells[3].AddParagraph("Area"); row.Cells[4].AddParagraph("Created By"); row.Cells[5].AddParagraph("Assigned To"); row.Cells[6].AddParagraph("Severity"); row.Cells[7].AddParagraph("Priority"); row.Cells[8].AddParagraph("State"); foreach (var item in workItems) { Row r = table.AddRow(); var image = r.Cells[0].AddImage(Path.Combine(startPath, item.Type == WorkItemType.Bug ? "bug.png" : "task.png")); image.Width = 15; image.Height = 15; r.Cells[1].AddParagraph(item.CreatedDate.ToShortDateString()); var linkParagraph = r.Cells[2].AddParagraph(); var link = linkParagraph.AddHyperlink(String.Format("https://twinetfs.visualstudio.com/DefaultCollection/Tango/_queries?id={0}&_a=edit", item.ID), HyperlinkType.Web); link.AddFormattedText(item.Title); r.Cells[3].AddParagraph(item.Area.Name); r.Cells[4].AddParagraph(item.CreatedBy.DisplayName); r.Cells[5].AddParagraph(item.AssignedTo.DisplayName); var p = r.Cells[6].AddParagraph(item.Severity.ToString()); if (item.Severity == Severity.Critical || item.Severity == Severity.High) { p.Format.Font.Color = Colors.Red; } r.Cells[7].AddParagraph(item.Priority.ToDescription()); r.Cells[8].AddParagraph(item.State.ToString()); } return table; } } }