// PUT api/ManageSurvey/5 public IHttpActionResult PutSurvey(int id, Survey survey) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != survey.SurveyId) { return BadRequest(); } db.Entry(survey).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!SurveyExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public IHttpActionResult PostSurvey(Survey survey) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.Surveys.Add(survey); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = survey.SurveyId }, survey); }
public virtual ActionResult Import(ImportSurveyViewModel viewModel) { if (!ModelState.IsValid) { return View(viewModel); } var survey = new Survey(); survey.Title = viewModel.Name; survey.CreatedDate = DateTime.Now; survey.UpdatedDate = DateTime.Now; if (viewModel.SurveyType == SurveyType.PIT) { survey.IsPIT = true; } if (viewModel.SurveyType == SurveyType.Encampment) { survey.IsEncampment = true; } db.Surveys.Add(survey); db.SaveChanges(); var uploadPath = "C:\\CTASurveys\\"; if (!Directory.Exists(uploadPath)) { Directory.CreateDirectory(uploadPath); } var fileName = Path.GetFileName(viewModel.ExcelDocument.FileName); viewModel.ExcelDocument.SaveAs(string.Format("{0}{1}", uploadPath, fileName)); fileName = string.Format("{0}{1}", uploadPath, fileName); var connectionString = string.Format( "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", fileName); var adapter = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}$]", viewModel.SheetName), connectionString); var ds = new DataSet(); adapter.Fill(ds, "sccSurvey"); DataTable data = ds.Tables["sccSurvey"]; var questionParents = new List<QuestionWrapper>(); var questions = new List<Question>(); foreach (DataRow row in data.Rows) { if (!string.IsNullOrEmpty(row["QuestionId"].ToString())) { var question = new Question(); question.QuestionText = row["QuestionText"].ToString().Trim(); if (row["Options"].ToString() != "NULL") { question.Options = row["Options"].ToString().Trim(); } question.QuestionType = (Question.QType) Enum.Parse(typeof (Question.QType), row["QuestionType"].ToString()); question.Active = row["Active"].ToString() == "1"; question.TextBoxDataType = row["TextBoxDataType"].ToString(); if (data.Columns.Contains("RequiredQuestion")) { question.Required = row["RequiredQuestion"].ToString() == "Y"; } var questionWrapper = new QuestionWrapper(); questionWrapper.Id = int.Parse(row["QuestionId"].ToString()); questionWrapper.ParentQuestion = question; questionParents.Add(questionWrapper); if (row["ParentQuestionId"].ToString() != "NULL") { var parentId = int.Parse(row["ParentQuestionId"].ToString()); question.ParentRequiredAnswer = row["ParentRequiredAnswer"].ToString(); var parent = questionParents.First(q => q.Id == parentId); parent.Children.Add(question); } db.Questions.Add(question); questions.Add(question); } } db.SaveChanges(); foreach (var q in questionParents) { foreach (var c in q.Children) { c.ParentQuestionId = q.ParentQuestion.QuestionId; } } var i = 0; foreach (var q in questions) { var surveyQuestion = new SurveyQuestion(); surveyQuestion.Survey = survey; surveyQuestion.Question = q; surveyQuestion.OrderId = i++; db.SurveyQuestions.Add(surveyQuestion); } db.SaveChanges(); return null; }