/// <summary>
        /// Maakt excel file met alle stories en taken van de sprint cardwall en geeft filename terug
        /// </summary>
        /// <param name="sprint">Sprint</param>
        public string ExportSprintCardwall(Sprint sprint)
        {
            SetCultureInfo();

            string fileName = String.Format("SprintCardwall_{0}_{1}.xls", DateTime.Now.ToString("yyyy-MM-dd"), sprint.Goal);

            ExcelStorage provider = new ExcelStorage(typeof(Cardwall));
            provider.StartRow = 3;
            provider.StartColumn = 1;
            provider.FileName = ConfigurationManager.AppSettings["exportLocation"] + fileName;
            provider.TemplateFile = ConfigurationManager.AppSettings["sprintCardwallTemplate"];

            List<Cardwall> res = new List<Cardwall>();

            foreach (SprintStory sprintStory in sprint.SprintStories)
            {
                Cardwall storyRow = new Cardwall();

                storyRow.StoryId = sprintStory.Id.ToString();
                storyRow.StoryTitle = sprintStory.Story.Title;
                storyRow.StoryPriority = Enum.GetName(typeof(Priority), sprintStory.Story.ProductBacklogPriority);
                storyRow.StoryEstimatedHours = TimeSpanInMinuten(sprintStory.Story.Estimation).ToString();
                res.Add(storyRow);

                foreach (Task task in sprintStory.Story.Tasks)
                {
                    Cardwall taskRow = new Cardwall();

                    switch(task.State)
                    {
                        case State.Open:
                            taskRow.TaskOpenId = task.Id.ToString();
                            taskRow.TaskOpenTitle = task.Title;
                            taskRow.TaskOpenAssignee = task.AssignedUserName;
                            taskRow.TaskOpenTimeSpent = TimeSpanInMinuten(task.TotalTimeSpent()).ToString();
                            break;
                        case State.Taken:
                            taskRow.TaskInProgressId = task.Id.ToString();
                            taskRow.TaskInProgressTitle = task.Title;
                            taskRow.TaskInProgressAssignee = task.AssignedUserName;
                            taskRow.TaskInProgressTimeSpent = TimeSpanInMinuten(task.TotalTimeSpent()).ToString();
                            break;
                        case State.Closed:
                            taskRow.TaskDoneId = task.Id.ToString();
                            taskRow.TaskDoneTitle = task.Title;
                            taskRow.TaskDoneAssignee = task.AssignedUserName;
                            taskRow.TaskDoneTimeSpent = TimeSpanInMinuten(task.TotalTimeSpent()).ToString();
                            break;
                    }

                    res.Add(taskRow);
                }
            }

            provider.InsertRecords(res.ToArray());

            RestoreCultureInfo();

            return fileName;
        }
        /// <summary>
        /// Maakt excel file met alle stories en taken van de sprint cardwall en geeft filename terug
        /// </summary>
        /// <param name="sprint">Sprint</param>
        public string ExportSprintCardwall(Sprint sprint)
        {
            SetCultureInfo();

            string fileName = String.Format("SprintCardwall_{0}_{1}.xls", DateTime.Now.ToString("yyyy-MM-dd"), sprint.Doel);

            ExcelStorage provider = new ExcelStorage(typeof(Cardwall));
            provider.StartRow = 3;
            provider.StartColumn = 1;
            provider.FileName = ConfigurationManager.AppSettings["exportLocation"] + fileName;
            provider.TemplateFile = ConfigurationManager.AppSettings["sprintCardwallTemplate"];

            List<Cardwall> res = new List<Cardwall>();

            foreach (SprintStory sprintStory in sprint.SprintStories)
            {
                Cardwall storyRow = new Cardwall();

                storyRow.StoryId = sprintStory.Id.ToString();
                storyRow.StoryTitle = sprintStory.Story.Titel;
                storyRow.StoryPrioriteit = Enum.GetName(typeof(Prioriteit), sprintStory.Story.ProductBacklogPrioriteit);
                storyRow.StoryGeschatteUren = TimeSpanInMinuten(sprintStory.Story.Schatting).ToString();
                res.Add(storyRow);

                foreach (Task task in sprintStory.Story.Tasks)
                {
                    Cardwall taskRow = new Cardwall();

                    switch(task.Status)
                    {
                        case Status.NietOpgepakt:
                            taskRow.TaskOpenId = task.Id.ToString();
                            taskRow.TaskOpenTitle = task.Titel;
                            taskRow.TaskOpenBehandelaar = task.BehandelaarNaam;
                            taskRow.TaskOpenBestedeUren = TimeSpanInMinuten(task.TotaalBestedeTijd()).ToString();
                            break;
                        case Status.Opgepakt:
                            taskRow.TaskInProgressId = task.Id.ToString();
                            taskRow.TaskInProgressTitle = task.Titel;
                            taskRow.TaskInProgressBehandelaar = task.BehandelaarNaam;
                            taskRow.TaskInProgressBestedeUren = TimeSpanInMinuten(task.TotaalBestedeTijd()).ToString();
                            break;
                        case Status.Afgesloten:
                            taskRow.TaskDoneId = task.Id.ToString();
                            taskRow.TaskDoneTitle = task.Titel;
                            taskRow.TaskDoneBehandelaar = task.BehandelaarNaam;
                            taskRow.TaskDoneBestedeUren = TimeSpanInMinuten(task.TotaalBestedeTijd()).ToString();
                            break;
                    }

                    res.Add(taskRow);
                }
            }

            provider.InsertRecords(res.ToArray());

            RestoreCultureInfo();

            return fileName;
        }