public void CreateFormEntriesDataTableTest_RemoveWYSIWYG() { Template template; TemplateViewModel templateViewModel; CreateTemplateAndField(new FormViewModel(), Constants.TemplateFieldType.TEXTBOX, "<p>hello</p><p>this is for <b>testing </b>mah</p>", out template, out templateViewModel); templateViewModel = _formManager.FindTemplateToEdit(template.TemplateID); Assert.IsNotNull(templateViewModel.Fields); Assert.AreEqual(1, templateViewModel.Fields.Count); templateViewModel.Entries = _formManager.HasSubmissions(templateViewModel).ToList(); Assert.AreEqual(0, templateViewModel.Entries.Count); fillin("1", templateViewModel, "SubmitFields[1].TextBox", "HelloTest"); FormExportViewModel model = new FormExportViewModel() { FormID = 1 }; DataTable result = _target.CreateFormEntriesDataTable(model).ValuesDataTable; Assert.IsNotNull(result); Assert.AreEqual(3, result.Columns.Count); DataColumn column = result.Columns[1]; Assert.AreEqual("hellothis is for testing mah", column.ColumnName); Assert.AreEqual(1, result.Rows.Count); DataRow row = result.Rows[0]; Assert.AreEqual("HelloTest", row["hellothis is for testing mah"]); }
public void CreateFormEntriesDataTableTest_FilteringWithQuoteValue() { Template template; TemplateViewModel templateViewModel; CreateTemplateAndField(new FormViewModel(), Constants.TemplateFieldType.TEXTBOX, "this is for testing", out template, out templateViewModel); templateViewModel = _formManager.FindTemplateToEdit(template.TemplateID); Assert.IsNotNull(templateViewModel.Fields); Assert.AreEqual(1, templateViewModel.Fields.Count); templateViewModel.Entries = _formManager.HasSubmissions(templateViewModel).ToList(); Assert.AreEqual(0, templateViewModel.Entries.Count); fillin("1", templateViewModel, "SubmitFields[1].TextBox", "ABC's HelloTest"); fillin("1", templateViewModel, "SubmitFields[1].TextBox", "ZXY's HelloTest"); fillin("1", templateViewModel, "SubmitFields[1].TextBox", "HHH's HelloTest"); Dictionary <string, string> criteriaValue = new Dictionary <string, string>(); criteriaValue.Add("1", "ABC's"); CriteriaFieldViewModel criteriaFieldViewModel = new CriteriaFieldViewModel() { TemplateFieldID = "1", CriteriaLogic = "contains", CriteriaValue = criteriaValue }; var criteriaFields = new List <CriteriaFieldViewModel>(); criteriaFields.Add(criteriaFieldViewModel); FormExportViewModel model = new FormExportViewModel() { FormID = 1, CriteriaFields = criteriaFields }; DataTable result = _target.CreateFormEntriesDataTable(model).ValuesDataTable; Assert.IsNotNull(result); Assert.AreEqual(3, result.Columns.Count); Assert.AreEqual("Nric", result.Columns[0].ColumnName); DataColumn column = result.Columns[1]; Assert.AreEqual("this is for testing", column.ColumnName); Assert.AreEqual(1, result.Rows.Count); DataRow row = result.Rows[0]; Assert.AreEqual("", row["Nric"]); Assert.AreEqual("ABC's HelloTest", row["this is for testing"]); }
public void CreateFormEntriesDataTableTest_VersionWithBasicComponent() { Template template; TemplateViewModel templateViewModel; CreateTemplateAndField(new FormViewModel(), Constants.TemplateFieldType.TEXTBOX, "this is for testing", out template, out templateViewModel); templateViewModel = _formManager.FindTemplateToEdit(template.TemplateID); Assert.IsNotNull(templateViewModel.Fields); Assert.AreEqual(1, templateViewModel.Fields.Count); templateViewModel.Entries = _formManager.HasSubmissions(templateViewModel).ToList(); Assert.AreEqual(0, templateViewModel.Entries.Count); fillin("1", templateViewModel, "SubmitFields[1].TextBox", "ABC HelloTest"); UpdateByAddingTemplateField(template, 2, Constants.TemplateFieldType.TEXTBOX, "this is for another testing", out templateViewModel); FormCollection submissionCollection = new FormCollection(); submissionCollection.Add("SubmitFields[1].TextBox", "i am second"); submissionCollection.Add("SubmitFields[2].TextBox", "i am second HelloTest"); IDictionary <string, string> submissionFields = new System.Collections.Generic.Dictionary <string, string>(); submissionFields.Add("1", "1"); submissionFields.Add("2", "2"); string fillinResult = _formAccessManager.FillIn(submissionFields, templateViewModel, submissionCollection); Assert.AreEqual(fillinResult, "success"); FormExportViewModel model = new FormExportViewModel() { FormID = 1 }; DataTable result = _target.CreateFormEntriesDataTable(model).ValuesDataTable; Assert.IsNotNull(result); Assert.AreEqual(5, result.Columns.Count); Assert.AreEqual("Nric", result.Columns[0].ColumnName); Assert.AreEqual("this is for testing", result.Columns[1].ColumnName); Assert.AreEqual("1: this is for testing", result.Columns[2].ColumnName); Assert.AreEqual("this is for another testing", result.Columns[3].ColumnName); Assert.AreEqual(2, result.Rows.Count); Assert.AreEqual("", result.Rows[0]["Nric"]); Assert.AreEqual("ABC HelloTest", result.Rows[0]["this is for testing"]); Assert.AreEqual("", result.Rows[1]["Nric"]); Assert.AreEqual("i am second", result.Rows[1]["1: this is for testing"]); Assert.AreEqual("i am second HelloTest", result.Rows[1]["this is for another testing"]); }
public void CreateFormEntriesDataTableTest_Address() { Template template; TemplateViewModel templateViewModel; CreateTemplateAndField(new FormViewModel(), Constants.TemplateFieldType.ADDRESS, "Address", out template, out templateViewModel); templateViewModel = _formManager.FindTemplateToEdit(template.TemplateID); Assert.IsNotNull(templateViewModel.Fields); Assert.AreEqual(1, templateViewModel.Fields.Count); templateViewModel.Entries = _formManager.HasSubmissions(templateViewModel).ToList(); Assert.AreEqual(0, templateViewModel.Entries.Count); FormCollection submissionCollection = new FormCollection(); submissionCollection.Add("SubmitFields[1].Blk", "777"); submissionCollection.Add("SubmitFields[1].Unit", "04-55"); submissionCollection.Add("SubmitFields[1].StreetAddress", "NUS ISS"); submissionCollection.Add("SubmitFields[1].ZipCode", "123456"); IDictionary <string, string> submissionFields = new System.Collections.Generic.Dictionary <string, string>(); submissionFields.Add("1", "1"); string fillinResult = _formAccessManager.FillIn(submissionFields, templateViewModel, submissionCollection); Assert.AreEqual(fillinResult, "success"); FormExportViewModel model = new FormExportViewModel() { FormID = 1 }; var result = _target.CreateFormEntriesDataTable(model).ValuesDataTable; Assert.IsNotNull(result); Assert.AreEqual(6, result.Columns.Count); Assert.AreEqual("Nric", result.Columns[0].ColumnName); Assert.AreEqual("Blk", result.Columns[1].ColumnName); Assert.AreEqual("Unit", result.Columns[2].ColumnName); Assert.AreEqual("Street Address", result.Columns[3].ColumnName); Assert.AreEqual("ZipCode", result.Columns[4].ColumnName); Assert.AreEqual(1, result.Rows.Count); Assert.AreEqual("", result.Rows[0]["Nric"]); Assert.AreEqual("777", result.Rows[0]["Blk"]); Assert.AreEqual("04-55", result.Rows[0]["Unit"]); Assert.AreEqual("NUS ISS", result.Rows[0]["Street Address"]); Assert.AreEqual("123456", result.Rows[0]["ZipCode"]); }
public void CreateFormEntriesDataTableTest_BirthdayPicker() { Template template; TemplateViewModel templateViewModel; CreateTemplateAndField(new FormViewModel(), Constants.TemplateFieldType.BIRTHDAYPICKER, "enter your birthday", out template, out templateViewModel); templateViewModel = _formManager.FindTemplateToEdit(template.TemplateID); Assert.IsNotNull(templateViewModel.Fields); Assert.AreEqual(1, templateViewModel.Fields.Count); templateViewModel.Entries = _formManager.HasSubmissions(templateViewModel).ToList(); Assert.AreEqual(0, templateViewModel.Entries.Count); FormCollection submissionCollection = new FormCollection(); submissionCollection.Add("SubmitFields[1].Day", "18"); submissionCollection.Add("SubmitFields[1].Month", "7"); submissionCollection.Add("SubmitFields[1].Year", "2017"); IDictionary <string, string> submissionFields = new System.Collections.Generic.Dictionary <string, string>(); submissionFields.Add("1", "1"); string fillinResult = _formAccessManager.FillIn(submissionFields, templateViewModel, submissionCollection); Assert.AreEqual(fillinResult, "success"); FormExportViewModel model = new FormExportViewModel() { FormID = 1 }; DataTable result = _target.CreateFormEntriesDataTable(model).ValuesDataTable; Assert.IsNotNull(result); Assert.AreEqual(3, result.Columns.Count); Assert.AreEqual("Nric", result.Columns[0].ColumnName); DataColumn column = result.Columns[1]; Assert.AreEqual("enter your birthday", column.ColumnName); Assert.AreEqual(1, result.Rows.Count); DataRow row = result.Rows[0]; Assert.AreEqual("", row["Nric"]); Assert.AreEqual("18 Jul 2017", row["enter your birthday"]); }
public void CreateFormEntriesDataTableTest_Sorting() { Template template; TemplateViewModel templateViewModel; CreateTemplateAndField(new FormViewModel(), Constants.TemplateFieldType.TEXTBOX, "this is for testing", out template, out templateViewModel); templateViewModel = _formManager.FindTemplateToEdit(template.TemplateID); Assert.IsNotNull(templateViewModel.Fields); Assert.AreEqual(1, templateViewModel.Fields.Count); templateViewModel.Entries = _formManager.HasSubmissions(templateViewModel).ToList(); Assert.AreEqual(0, templateViewModel.Entries.Count); fillin("1", templateViewModel, "SubmitFields[1].TextBox", "ABC HelloTest"); fillin("1", templateViewModel, "SubmitFields[1].TextBox", "ZXY HelloTest"); fillin("1", templateViewModel, "SubmitFields[1].TextBox", "HHH HelloTest"); SortFieldViewModel sortFieldViewModel = new SortFieldViewModel() { TemplateFieldID = "1", SortOrder = "DESC" }; var SortFieldViewModels = new List <SortFieldViewModel>(); SortFieldViewModels.Add(sortFieldViewModel); FormExportViewModel model = new FormExportViewModel() { FormID = 1, SortFields = SortFieldViewModels }; DataTable result = _target.CreateFormEntriesDataTable(model).ValuesDataTable; Assert.IsNotNull(result); Assert.AreEqual(3, result.Columns.Count); DataColumn column = result.Columns[1]; Assert.AreEqual("this is for testing", column.ColumnName); Assert.AreEqual(3, result.Rows.Count); DataRow row = result.Rows[0]; Assert.AreEqual("ZXY HelloTest", row["this is for testing"]); }
public void CreateFormEntriesDataTableTest_Bmi() { Template template; TemplateViewModel templateViewModel; CreateTemplateAndField(new FormViewModel(), Constants.TemplateFieldType.BMI, "bmi entered please", out template, out templateViewModel); templateViewModel = _formManager.FindTemplateToEdit(template.TemplateID); Assert.IsNotNull(templateViewModel.Fields); Assert.AreEqual(1, templateViewModel.Fields.Count); templateViewModel.Entries = _formManager.HasSubmissions(templateViewModel).ToList(); Assert.AreEqual(0, templateViewModel.Entries.Count); FormCollection submissionCollection = new FormCollection(); submissionCollection.Add("SubmitFields[1].Weight", "83"); submissionCollection.Add("SubmitFields[1].Height", "170"); IDictionary <string, string> submissionFields = new System.Collections.Generic.Dictionary <string, string>(); submissionFields.Add("1", "1"); string fillinResult = _formAccessManager.FillIn(submissionFields, templateViewModel, submissionCollection); Assert.AreEqual(fillinResult, "success"); FormExportViewModel model = new FormExportViewModel() { FormID = 1 }; DataTable result = _target.CreateFormEntriesDataTable(model).ValuesDataTable; Assert.IsNotNull(result); Assert.AreEqual(5, result.Columns.Count); Assert.AreEqual("Nric", result.Columns[0].ColumnName); Assert.AreEqual("Weight", result.Columns[1].ColumnName); Assert.AreEqual("Height", result.Columns[2].ColumnName); Assert.AreEqual("BMI", result.Columns[3].ColumnName); Assert.AreEqual(1, result.Rows.Count); Assert.AreEqual("", result.Rows[0]["Nric"]); Assert.AreEqual("83", result.Rows[0]["Weight"]); Assert.AreEqual("170", result.Rows[0]["Height"]); Assert.AreEqual("28.72", result.Rows[0]["BMI"]); }
/* * [HttpPost] * public ActionResult DeleteEntries(IEnumerable<string> selectedEntries, TemplateViewModel model) * { * // TODO This method not required? * Template template; * using (var formManager = new FormManager()) * { * template = formManager.FindTemplate(model.TemplateID.Value); * * // var form = this._formRepo.GetForm(model.Id.Value); * var templateView = TemplateViewModel.CreateFromObject(template); * * try * { * if (selectedEntries != null && selectedEntries.Any()) * { * this._formRepo.DeleteEntries(selectedEntries); * TempData["success"] = "The selected entries were deleted"; * } * } * catch * { * TempData["error"] = "An error occured while deleting entries. Try again later."; * } * } * * return RedirectToRoute("form-entries", new { templateid = model.TemplateID.Value }); * * } */ public ActionResult Export(int eventid) { if (!IsUserAuthenticated()) { return(RedirectToLogin()); } using (var formExportManager = new FormExportManager(GetLoginUser())) { string message = string.Empty; FormExportViewModel formExportViewModel = formExportManager.RetrieveAllForms(eventid, out message); if (formExportViewModel == null) { SetViewBagError(message); } return(View(formExportViewModel)); }; }
public ActionResult Export(FormExportViewModel model, FormCollection collection) { using (var formExportManager = new FormExportManager(GetLoginUser())) { var formExportResult = formExportManager.CreateFormEntriesDataTable(model); var gridView = new GridView(); gridView.DataSource = formExportResult.ValuesDataTable; gridView.DataBind(); Response.ClearContent(); Response.AddHeader("content-disposition", "attachment; filename={0}.xls".FormatWith(formExportResult.Title.ToSlug())); Response.ContentType = "application/vnd.ms-excel"; Response.ContentEncoding = System.Text.Encoding.Unicode; Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); gridView.RenderControl(htw); Response.Write(sw.ToString()); Response.End(); } return(RedirectToRoute("form-export", new { eventId = model.EventID })); }
public void CreateFormEntriesDataTableTest_SimpleFormWithParticipantJourney() { Template template; TemplateViewModel templateViewModel; FormViewModel formViewModel = new FormViewModel(); CreateTemplateAndField(formViewModel, Constants.TemplateFieldType.TEXTBOX, "Textbox 12345", out template, out templateViewModel); templateViewModel = _formManager.FindTemplateToEdit(template.TemplateID); Assert.IsNotNull(templateViewModel.Fields); Assert.AreEqual(1, templateViewModel.Fields.Count); templateViewModel.Entries = _formManager.HasSubmissions(templateViewModel).ToList(); Assert.AreEqual(0, templateViewModel.Entries.Count); FormCollection submissionCollection = new FormCollection(); submissionCollection.Add("SubmitFields[1].TextBox", "Very important"); IDictionary <string, string> submissionFields = new System.Collections.Generic.Dictionary <string, string>(); submissionFields.Add("1", "1"); string fillinResult = _formAccessManager.FillIn(submissionFields, templateViewModel, submissionCollection); Assert.AreEqual(fillinResult, "success"); templateViewModel.Entries = _formManager.HasSubmissions(templateViewModel).ToList(); Assert.AreEqual(1, templateViewModel.Entries.Count); var entryId = templateViewModel.Entries.FirstOrDefault().EntryId; Assert.AreNotEqual(Guid.Empty, entryId); PHSEvent phsEvent = new PHSEvent() { Title = "Test 15", Venue = "Test", StartDT = DateTime.Now.AddDays(-200), EndDT = DateTime.Now.AddDays(199), IsActive = false }; Modality modality = new Modality() { Name = "Test Modality" }; Participant participant = new Participant() { Nric = "S8250369B", DateOfBirth = new DateTime(1988, 11, 22), Gender = "Male", FullName = "Tester 123" }; _unitOfWork.Participants.Add(participant); _unitOfWork.Events.Add(phsEvent); participant.PHSEvents.Add(phsEvent); _unitOfWork.Participants.Add(participant); phsEvent.Modalities.Add(modality); _unitOfWork.Complete(); ParticipantJourneyModality journeyModality = new ParticipantJourneyModality() { ParticipantID = 1, PHSEventID = 1, ModalityID = 1, FormID = 1, TemplateID = 1, EntryId = new Guid(entryId) }; _unitOfWork.ParticipantJourneyModalities.Add(journeyModality); _unitOfWork.Complete(); FormExportViewModel model = new FormExportViewModel() { FormID = 1 }; var result = _target.CreateFormEntriesDataTable(model).ValuesDataTable; Assert.IsNotNull(result); Assert.AreEqual(3, result.Columns.Count); Assert.AreEqual("Nric", result.Columns[0].ColumnName); Assert.AreEqual("Textbox 12345", result.Columns[1].ColumnName); Assert.AreEqual(1, result.Rows.Count); Assert.AreEqual("S8250369B", result.Rows[0]["Nric"]); Assert.AreEqual("Very important", result.Rows[0]["Textbox 12345"]); }