示例#1
0
        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"]);
        }
示例#2
0
        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"]);
        }
示例#3
0
        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"]);
        }
示例#4
0
        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"]);
        }
示例#5
0
        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"]);
        }
示例#6
0
        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"]);
        }
示例#7
0
        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"]);
        }
示例#8
0
        /*
         * [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));
            };
        }
示例#9
0
        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 }));
        }
示例#10
0
        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"]);
        }