public IHttpActionResult SaveFile(int id) { Survey survey = surveyService.GetWithResult(id); if (survey == null) { return(NotFound()); } survey.Questions.ToList().ForEach(q => { q.QuestionAnswers = q.QuestionAnswers.OrderBy(qa => qa.OrdinalNumber).ToList(); }); var users = surveyService.UsersWhoFilledSurvey(survey.Users.Select(u => u.UserId).ToList()); SurveyResultViewModel surveyVM = AutoMapper.Mapper.Map <Survey, SurveyResultViewModel>(survey); this.SetSurveyResultVMValues(surveyVM, survey, users, 0, true); using (var xlPackage = new ExcelPackage()) { var ws = xlPackage.Workbook.Worksheets.Add("Anketa: " + survey.Name); CreateExcelFile createEF = new CreateExcelFile(surveyService); if (!survey.Anonymous) { createEF.CreateSurveyWorksheet(ws, surveyVM); } createEF.CreateQuestionsOnSurveyWorksheet(ws, surveyVM); surveyVM.Questions.ToList().ForEach(q => { createEF.CreateQuestionWorksheet(xlPackage, q, surveyVM, survey); }); users.ForEach(u => { var answers = surveyService.GetAnswersForUser(u.Id).ToList(); createEF.CreateUserWorksheet(xlPackage, u, survey, answers, users.IndexOf(u)); }); ExcelFiles obj = new ExcelFiles() { Bytes = xlPackage.GetAsByteArray(), SurveyId = survey.Id, CreationDate = DateTime.Now, Name = survey.Name + DateTime.Now.ToString() + ".xlsx" }; surveyService.AddExcel(obj); unitOfWork.Commit(); } return(Ok()); }