public string GetUiDataCsv(SprintProgressVm sprintProgressVm)//TODO convert to property on SprintProgressVm.cs
        {
            var separatorChar = ',';

            var csv = $"{sprintProgressVm.UiDataObject.IterationDetails.Iteration}{separatorChar}{sprintProgressVm.UiDataObject.IterationDetails.Start}{separatorChar}{sprintProgressVm.UiDataObject.IterationDetails.End}{Environment.NewLine}";

            var csvFileDescription = new CsvFileDescription
            {
                SeparatorChar = separatorChar,// '\t' for tab delimited
                UseOutputFormatForParsingCsvValue = true
            };

            using (var memoryStream = new MemoryStream())
            {
                using (TextWriter textWriter = new StreamWriter(memoryStream))
                {
                    var csvContext = new CsvContext();
                    csvContext.Write(sprintProgressVm.UiDataObject.WorkItemData.ToList(), textWriter, csvFileDescription);
                    textWriter.Flush();
                    memoryStream.Position = 0;
                    csv += Encoding.ASCII.GetString(memoryStream.ToArray());
                }
            }

            return(csv);
        }
        public string GetUiDataXml(SprintProgressVm sprintProgressVm)//TODO convert to property on SprintProgressVm.cs
        {
            var xmlSerializer = new XmlSerializer(typeof(UiDataObject));

            var xml = "";

            using (var stringWriter = new StringWriter())
            {
                using (var xmlTextWriter = XmlTextWriter.Create(stringWriter))
                {
                    xmlSerializer.Serialize(xmlTextWriter, sprintProgressVm.UiDataObject);
                    xml = stringWriter.ToString();
                }
            }

            return(xml);
        }
        private SprintProgressVm GetSprintProgressVm(SprintProgressDto sprintProgressDto)
        {
            var sprintProgressVm = new SprintProgressVm();

            sprintProgressVm.IterationNumber = sprintProgressDto.IterationNumber;
            sprintProgressVm.SprintEnd       = sprintProgressDto.SprintEnd;
            sprintProgressVm.SprintStart     = sprintProgressDto.SprintStart;
            sprintProgressVm.WorkItemVms     = new List <WorkItemVm>();

            if (sprintProgressDto.WorkItemDtos != null && sprintProgressDto.WorkItemDtos.Any())
            {
                foreach (var workItemDto in sprintProgressDto.WorkItemDtos)
                {
                    var workItemVm = GetWorkItemVm(workItemDto);
                    sprintProgressVm.WorkItemVms.Add(workItemVm);
                }
            }

            return(sprintProgressVm);
        }
        public string GetUiDataJson(SprintProgressVm sprintProgressVm)//TODO convert to property on SprintProgressVm.cs
        {
            var jsonString = JsonConvert.SerializeObject(sprintProgressVm.UiDataObject, Newtonsoft.Json.Formatting.Indented);

            return(jsonString);
        }