Exemplo n.º 1
0
        public static string GetTempFormValue(this HtmlHelper helper, TemplateFieldViewModel model, string fieldType = "", string returnIfNull = "")
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("SubmitFields[{0}].".FormatWith(model.DomId));
            if (fieldType.IsNullOrEmpty())
            {
                sb.Append(model.FieldType.ToString().ToTitleCase());
            }
            else
            {
                sb.Append(fieldType);
            }
            var item = helper.ViewData[sb.ToString().ToLower()];

            if (item != null)
            {
                if (!string.IsNullOrEmpty(item.ToString()))
                {
                    /*
                     * if (model.FieldType.Equals(Constants.TemplateFieldType.CHECKBOX))
                     * {
                     *  string value = item.ToString();
                     *  string newValue = "";
                     *  foreach (var option in model.Options.Split(Constants.Form_Option_Split))
                     *  {
                     *      if (value.Contains(option))
                     *      {
                     *          newValue += Constants.Form_Option_Split_Concate + option;
                     *      }
                     *  }
                     *
                     *
                     *  if (value.Contains("OthersOption"))
                     *  {
                     *      //string othersOptionValue = form.SubmittedFieldValue(field.DomId, "OthersOption");
                     *      newValue += Constants.Form_Option_Split_Concate + "OthersOption";
                     *  }
                     *
                     *
                     *  if (newValue.Substring(0, 1).Equals(Constants.Form_Option_Split_Concate))
                     *  {
                     *      newValue = newValue.Remove(0, 1);
                     *  }
                     *
                     *  return newValue;
                     * }
                     *
                     * else
                     * {
                     *  return item.ToString();
                     * }
                     */
                    return(item.ToString());
                }
            }

            return(returnIfNull);
        }
Exemplo n.º 2
0
        public static bool IsAnyTempFormValueSelected(this HtmlHelper helper, TemplateFieldViewModel model)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("SubmitFields[{0}].".FormatWith(model.DomId));
            sb.Append(model.FieldType.ToString());
            var key = sb.ToString().ToLower();

            return(helper.ViewData.Any(vd => string.Compare(vd.Key, key, true) == 0));
        }
Exemplo n.º 3
0
 public void UpdateTemplateFieldValue(TemplateFieldValue fieldValue, TemplateFieldViewModel field, string value, string userId = "")
 {
     if (field.FieldType != Constants.TemplateFieldType.HEADER)
     {
         dbContext.Entry(fieldValue).State = EntityState.Modified;
         fieldValue.Value           = value;
         fieldValue.UpdatedBy       = field.UpdatedBy;
         fieldValue.UpdatedDateTime = field.UpdatedDateTime;
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Find if the checkbox is checked from saved submission
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="model"></param>
        /// <param name="value"></param>
        /// <returns>True if checkbox is checked</returns>
        public static bool IsSubmittedValueSelected(this HtmlHelper helper, TemplateFieldViewModel model, string value)
        {
            if (model.FieldType != TemplateFieldType.CHECKBOX && model.FieldType != TemplateFieldType.RADIOBUTTON)
            {
                return(false);
            }

            var selectedValue = string.Empty;

            if (string.IsNullOrEmpty(model.EntryId) || model.EntryId.Equals(Guid.Empty.ToString()))
            {
                if (!model.IsValueRequiredForRegistration)
                {
                    return(false);
                }

                else
                {
                    selectedValue = GetTempRegistrationFormValue(helper, model);
                }
            }

            else
            {
                using (var formManager = new FormManager())
                {
                    selectedValue = formManager.FindSaveValue(model.EntryId, model.TemplateFieldID ?? default(int));
                }
            }

            if (string.IsNullOrEmpty(selectedValue))
            {
                return(false);
            }

            else if (value.Equals("OthersOption"))
            {
                return(true);
            }

            string[] options = selectedValue.Split(Form_Option_Split);
            foreach (string option in options)
            {
                if (value.Trim() == option.Trim())
                {
                    return(true);
                }
            }

            return(false);
        }
Exemplo n.º 5
0
        public TemplateFieldViewModel FindTemplateField(int templateFieldID)
        {
            using (var unitOfWork = CreateUnitOfWork())
            {
                TemplateField templateField = unitOfWork.FormRepository.GetTemplateField(templateFieldID);

                if (templateField == null)
                {
                    return(null);
                }

                return(TemplateFieldViewModel.CreateFromObject(templateField));
            }
        }
Exemplo n.º 6
0
        protected bool isConditionalFieldRequired(TemplateFieldViewModel field, IDictionary <int, string> submissionFields)
        {
            bool result = false;

            if (submissionFields.ContainsKey(field.ConditionTemplateFieldID.Value))
            {
                string enteredValue = submissionFields[field.ConditionTemplateFieldID.Value];
                if (!string.IsNullOrEmpty(enteredValue))
                {
                    if (field.ConditionCriteria.Equals("=="))
                    {
                        if (field.ConditionOptions.Contains(enteredValue))
                        {
                            result = true;
                        }

                        else if (enteredValue.Contains(field.ConditionOptions))
                        {
                            result = true;
                        }

                        else
                        {
                            result = false;
                        }
                    }

                    else if (field.ConditionCriteria.Equals("!="))
                    {
                        if (field.ConditionOptions.Contains(enteredValue))
                        {
                            result = false;
                        }

                        else if (enteredValue.Contains(field.ConditionOptions))
                        {
                            result = false;
                        }

                        else
                        {
                            result = true;
                        }
                    }
                }
            }

            return(result);
        }
Exemplo n.º 7
0
        public void InsertTemplateFieldValue(TemplateFieldViewModel field, string value, Guid entryId, string userId = "")
        {
            if (field.FieldType != Constants.TemplateFieldType.HEADER)
            {
                var fieldVal = new TemplateFieldValue
                {
                    TemplateFieldID = field.TemplateFieldID.Value,
                    Value           = value,
                    EntryId         = entryId,
                    DateAdded       = DateTime.Now,
                    CreatedBy       = field.CreatedBy,
                    CreatedDateTime = field.CreatedDateTime
                };

                dbContext.Set <TemplateFieldValue>().Add(fieldVal);
                //  this.SaveChanges();
            }
        }
Exemplo n.º 8
0
        public static bool IsTempFormValueSelected(this HtmlHelper helper, TemplateFieldViewModel model, string value)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("SubmitFields[{0}].".FormatWith(model.DomId));
            sb.Append(model.FieldType.ToString().ToTitleCase());
            var key = sb.ToString().ToLower();

            if (helper.ViewData[key] != null)
            {
                var values = helper.ViewData[key].ToString().Split(Form_Option_Split);
                if (values.Any(v => string.Compare(v.Trim(), value.Trim(), true) == 0))
                {
                    return(true);
                }
            }

            return(false);
        }
Exemplo n.º 9
0
        //public static FileValueObject GetFileValueFromJsonObject(this string value)
        //{
        //    try
        //    {
        //        return value.FromJson<FileValueObject>();
        //    }
        //    catch
        //    {
        //        return null;
        //    }
        //}

        public static void SetFieldErrors(this TemplateFieldViewModel field)
        {
            field.Errors = "Invalid entry submitted for {0}".FormatWith(field.Label);
            if (field.FieldType == Constants.TemplateFieldType.FILEPICKER)
            {
                field.Errors = field.Errors.ConcatWith(", file must be betweeen {0}kb and {1}kb large ".FormatWith(field.MinFileSize.ToString(), field.MaxFileSize.ToString()));
                if (!string.IsNullOrEmpty(field.ValidFileExtensions))
                {
                    field.Errors = field.Errors.ConcatWith(" and have the extensions {0}.".FormatWith(field.ValidFileExtensions));
                }
                else
                {
                    field.Errors = field.Errors.ConcatWith(".");
                }
            }
            else if (field.FieldType == Constants.TemplateFieldType.NRICPICKER)
            {
                field.Errors = "Invalid NRIC";
            }
        }
Exemplo n.º 10
0
        protected override void HandleTemplateFieldValue(TemplateFieldViewModel field, string value, Guid entryId)
        {
            ParticipantJourneyModality participantJourneyModality = FindParticipantJourneyModality();

            if (participantJourneyModality != null)
            {
                if (participantJourneyModality.EntryId == Guid.Empty)
                {
                    field.CreatedDateTime = DateTime.Now;
                    field.CreatedBy       = GetLoginUserName();
                    UnitOfWork.FormRepository.InsertTemplateFieldValue(field, value, entryId);
                }

                else
                {
                    Guid existingEntryId          = participantJourneyModality.EntryId;
                    TemplateFieldValue fieldValue = UnitOfWork.FormRepository.GetTemplateFieldValue(field, existingEntryId);
                    if (fieldValue != null)
                    {
                        field.UpdatedDateTime = DateTime.Now;
                        field.UpdatedBy       = GetLoginUserName();
                        UnitOfWork.FormRepository.UpdateTemplateFieldValue(fieldValue, field, value);
                    }

                    else
                    {
                        field.CreatedDateTime = DateTime.Now;
                        field.CreatedBy       = GetLoginUserName();
                        UnitOfWork.FormRepository.InsertTemplateFieldValue(field, value, existingEntryId);
                    }
                }
            }

            else
            {
                throw new Exception("No participantJourneyModality found");
            }
        }
Exemplo n.º 11
0
 public static bool IsReadOnlyMode(this TemplateFieldViewModel field)
 {
     return(field.Mode == Constants.TemplateFieldMode.READONLY);
 }
Exemplo n.º 12
0
 public static bool IsInputMode(this TemplateFieldViewModel field)
 {
     return(field.Mode == Constants.TemplateFieldMode.INPUT);
 }
Exemplo n.º 13
0
        public static string GetTempRegistrationFormValue(this HtmlHelper helper, TemplateFieldViewModel model, string fieldType = "", string returnIfNull = "")
        {
            if (!string.IsNullOrEmpty(model.RegistrationFieldName))
            {
                using (var participantjourneyManager = new ParticipantJourneyManager())
                {
                    var participant = participantjourneyManager.FindParticipant(model.ParticipantNric);

                    if (participant != null)
                    {
                        var value = GetValueFromParticipant(helper, model.RegistrationFieldName, participant);

                        if (value != null)
                        {
                            switch (model.FieldType)
                            {
                            case TemplateFieldType.ADDRESS:

                                AddressViewModel addressViewModel = AddressViewModel.Initialize(participant.Address);

                                if (fieldType == "Blk")
                                {
                                    return(addressViewModel.Blk);
                                }
                                else if (fieldType == "Unit")
                                {
                                    return(addressViewModel.Unit);
                                }
                                else if (fieldType == "StreetAddress")
                                {
                                    return(addressViewModel.StreetAddress);
                                }
                                else if (fieldType == "ZipCode")
                                {
                                    return(participant.PostalCode);
                                }

                                break;

                            case TemplateFieldType.BIRTHDAYPICKER:
                                var birthdayValue = participant.DateOfBirth.Value.ToString("dd/M/yyyy");

                                if (!string.IsNullOrEmpty(birthdayValue))
                                {
                                    string[] values = birthdayValue.Split("/");

                                    if (fieldType == "Day")
                                    {
                                        int dayValue = int.Parse(values[0]);
                                        return((dayValue < 10) ? ("0" + dayValue) : values[0]);
                                    }

                                    else if (fieldType == "Month")
                                    {
                                        return(values[1]);
                                    }

                                    else if (fieldType == "Year")
                                    {
                                        return(values[2].Substring(0, 4));
                                    }
                                }

                                else
                                {
                                    return("");
                                }

                                break;

                            default:
                                return(value.ToString());
                            }
                        }
                    }
                }
            }

            return(returnIfNull);
        }
Exemplo n.º 14
0
 public static bool IsEditMode(this TemplateFieldViewModel field)
 {
     return(field.Mode == Constants.TemplateFieldMode.EDIT);
 }
Exemplo n.º 15
0
 public static string ValidationId(this TemplateFieldViewModel field)
 {
     return("{0}-{1}".FormatWith(field.FieldType.ToString().ToLower(), field.TemplateFieldID.ToString()));
 }
Exemplo n.º 16
0
        public void UpdateTemplate(TemplateViewModel model, FormCollection collection, IDictionary <string, string> Fields)
        {
            using (var unitOfWork = CreateUnitOfWork())
            {
                var template = FindTemplate(model.TemplateID.Value);

                using (TransactionScope scope = new TransactionScope())
                {
                    model.UpdatedDateTime = DateTime.Now;
                    model.UpdatedBy       = GetLoginUserName();

                    // first update the form metadata
                    unitOfWork.FormRepository.UpdateTemplate(model, template);

                    // then if fields were passed in, update them
                    if (Fields.Count() > 0)
                    {
                        foreach (var kvp in Fields)
                        {
                            var domId = Convert.ToInt32(kvp.Key);
                            if (domId >= 0)
                            {
                                var fieldType = collection.FormFieldValue(domId, "FieldType");
                                var fieldId   = collection.FormFieldValue(domId, "Id");
                                var minAge    = collection.FormFieldValue(domId, "MinimumAge").IsInt(18);
                                var maxAge    = collection.FormFieldValue(domId, "MaximumAge").IsInt(100);

                                if (minAge >= maxAge)
                                {
                                    minAge = 18;
                                    maxAge = 100;
                                }

                                var fieldTypeEnum = (Constants.TemplateFieldType)Enum.Parse(typeof(Constants.TemplateFieldType), fieldType.ToUpper());

                                var fieldView = new TemplateFieldViewModel
                                {
                                    DomId                    = Convert.ToInt32(domId),
                                    FieldType                = fieldTypeEnum,
                                    MaxCharacters            = collection.FormFieldValue(domId, "MaxCharacters").IsInt(),
                                    Text                     = collection.FormFieldValue(domId, "Text"),
                                    Label                    = collection.FormFieldValue(domId, "Label"),
                                    IsRequired               = collection.FormFieldValue(domId, "IsRequired").IsBool(),
                                    Options                  = collection.FormFieldValue(domId, "Options"),
                                    SelectedOption           = collection.FormFieldValue(domId, "SelectedOption"),
                                    AddOthersOption          = collection.FormFieldValue(domId, "AddOthersOption").IsBool(),
                                    OthersOption             = collection.FormFieldValue(domId, "OthersOption"),
                                    OthersPlaceHolder        = collection.FormFieldValue(domId, "OthersPlaceHolder"),
                                    HoverText                = collection.FormFieldValue(domId, "HoverText"),
                                    Hint                     = collection.FormFieldValue(domId, "Hint"),
                                    MinimumAge               = minAge,
                                    MaximumAge               = maxAge,
                                    HelpText                 = collection.FormFieldValue(domId, "HelpText"),
                                    SubLabel                 = collection.FormFieldValue(domId, "SubLabel"),
                                    Size                     = collection.FormFieldValue(domId, "Size"),
                                    Columns                  = collection.FormFieldValue(domId, "Columns").IsInt(20),
                                    Rows                     = collection.FormFieldValue(domId, "Columns").IsInt(2),
                                    Validation               = collection.FormFieldValue(domId, "Validation"),
                                    Order                    = collection.FormFieldValue(domId, "Order").IsInt(1),
                                    MaxFileSize              = collection.FormFieldValue(domId, "MaxFileSize").IsInt(5000),
                                    MinFileSize              = collection.FormFieldValue(domId, "MinFileSize").IsInt(5),
                                    ValidFileExtensions      = collection.FormFieldValue(domId, "ValidExtensions"),
                                    ImageBase64              = collection.FormFieldValue(domId, "ImageBase64"),
                                    MatrixColumn             = collection.FormFieldValue(domId, "MatrixColumn"),
                                    MatrixRow                = collection.FormFieldValue(domId, "MatrixRow"),
                                    PreRegistrationFieldName = collection.FormFieldValue(domId, "PreRegistrationFieldName"),
                                    RegistrationFieldName    = collection.FormFieldValue(domId, "RegistrationFieldName"),
                                    SummaryFieldName         = collection.FormFieldValue(domId, "SummaryFieldName"),
                                    SummaryType              = collection.FormFieldValue(domId, "SummaryType"),
                                    ConditionCriteria        = collection.FormFieldValue(domId, "ConditionCriteria"),
                                    ConditionOptions         = collection.FormFieldValue(domId, "ConditionOptions"),
                                    CreatedBy                = GetLoginUserName(),
                                    CreatedDateTime          = DateTime.Now,
                                    UpdatedDateTime          = DateTime.Now,
                                    UpdatedBy                = GetLoginUserName()
                                };

                                var conditionTemplateFieldID = collection.FormFieldValue(domId, "ConditionTemplateFieldID");

                                if (!string.IsNullOrEmpty(conditionTemplateFieldID))
                                {
                                    fieldView.ConditionTemplateFieldID = Convert.ToInt32(conditionTemplateFieldID);
                                }

                                var standardReferenceID = collection.FormFieldValue(domId, "StandardReferenceID");

                                if (!string.IsNullOrEmpty(standardReferenceID))
                                {
                                    fieldView.StandardReferenceID = Convert.ToInt32(standardReferenceID);
                                }

                                if (!fieldId.IsNullOrEmpty() && fieldId.IsInteger())
                                {
                                    fieldView.TemplateFieldID = Convert.ToInt32(fieldId);
                                }

                                unitOfWork.FormRepository.UpdateTemplateField(template, fieldView);
                            }
                        }
                    }

                    unitOfWork.Complete();
                    scope.Complete();
                }
            }
        }
Exemplo n.º 17
0
        public static string SubmittedValue(this TemplateFieldViewModel field, FormCollection form)
        {
            var    fType = field.FieldType.ToString().ToTitleCase();
            string value = "";

            switch (field.FieldType)
            {
            case Constants.TemplateFieldType.MATRIX:
                StringBuilder builder = new StringBuilder();

                for (int x = 0; x < 100; x++)
                {
                    value = form.SubmittedFieldValue(field.DomId, "[" + x + "].RadioButton");

                    if (value == null)
                    {
                        break;
                    }

                    if (x == 0)
                    {
                        builder.Append(value);
                    }
                    else
                    {
                        builder.Append(Constants.Form_Option_Split + value);
                    }
                }

                value = builder.ToString();

                break;

            case Constants.TemplateFieldType.BMI:
                var bmi = new BMIViewModel
                {
                    Weight = form.SubmittedFieldValue(field.DomId, "Weight"),
                    Height = form.SubmittedFieldValue(field.DomId, "Height"),
                };

                if (bmi.Weight == "" || bmi.Height == "")
                {
                    value = "";
                }
                else
                {
                    value = bmi.ToJson();
                }

                break;

            case Constants.TemplateFieldType.NRICPICKER:
                string icNumber = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                //string icFirstDigit = form.SubmittedFieldValue(field.DomId, "FirstDigit");
                //  string icLastDigit = form.SubmittedFieldValue(field.DomId, "LastDigit");

                value = icNumber;
                break;

            case Constants.TemplateFieldType.EMAIL:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                break;

            case Constants.TemplateFieldType.ADDRESS:
                var address = new AddressViewModel
                {
                    Blk           = form.SubmittedFieldValue(field.DomId, "Blk"),
                    Unit          = form.SubmittedFieldValue(field.DomId, "Unit"),
                    StreetAddress = form.SubmittedFieldValue(field.DomId, "StreetAddress"),
                    ZipCode       = form.SubmittedFieldValue(field.DomId, "ZipCode"),
                };

                if (address.Blk.IsEmptyOrWhiteSpace() && address.StreetAddress.IsEmptyOrWhiteSpace())
                {
                    value = "";
                }
                else
                {
                    value = address.ToJson();
                }
                break;

            case Constants.TemplateFieldType.BIRTHDAYPICKER:
                var day   = form.SubmittedFieldValue(field.DomId, "Day");
                var month = form.SubmittedFieldValue(field.DomId, "Month");
                var year  = form.SubmittedFieldValue(field.DomId, "Year");

                if (day.IsNullOrEmpty() && month.IsNullOrEmpty() && year.IsNullOrEmpty())
                {
                    value = "";
                }
                else
                {
                    DateTime date = new DateTime(Int32.Parse(year), Int32.Parse(month), Int32.Parse(day));
                    value = date.ToString("dd/M/yyyy hh:mm:ss tt");

                    /*
                     * var dateValue = "{0}-{1}-{2}".FormatWith(month, day, year);
                     * //var format = new string[] { "M-dd-yyyy" };
                     * DateTime date;
                     * if (DateTime.TryParseExact(dateValue, "M-dd-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out date))
                     * {
                     *  value = date.ToString("dd/M/yyyy hh:mm:ss tt");
                     * }
                     * else
                     * {
                     *  value = "";
                     * }*/
                }
                break;

            case Constants.TemplateFieldType.CHECKBOX:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                if (!value.IsNullOrEmpty())
                {
                    string newValue = "";
                    foreach (var option in field.Options.Split(Constants.Form_Option_Split))
                    {
                        if (value.Contains(option))
                        {
                            newValue += Constants.Form_Option_Split_Concate + option;
                        }
                    }


                    if (value.Contains("OthersOption"))
                    {
                        string othersOptionValue = form.SubmittedFieldValue(field.DomId, "OthersOption");
                        newValue += Constants.Form_Option_Split_Concate + othersOptionValue;
                    }


                    if (newValue.Substring(0, 1).Equals(Constants.Form_Option_Split_Concate))
                    {
                        newValue = newValue.Remove(0, 1);
                    }

                    value = newValue;
                }
                break;

            case Constants.TemplateFieldType.PHONE:
                var area   = form.SubmittedFieldValue(field.DomId, "AreaCode");
                var number = form.SubmittedFieldValue(field.DomId, "Number");
                if (string.IsNullOrEmpty(area) && string.IsNullOrEmpty(number))
                {
                    value = "";
                }
                else
                {
                    value = "{0}-{1}".FormatWith(area, number);
                }
                break;

            case Constants.TemplateFieldType.DROPDOWNLIST:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                break;

            case Constants.TemplateFieldType.RADIOBUTTON:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                if (!value.IsNullOrEmpty() && value.Equals("OthersOption"))
                {
                    value = form.SubmittedFieldValue(field.DomId, "OthersOption");
                }
                break;

            case Constants.TemplateFieldType.FULLNAME:
                var fName    = form.SubmittedFieldValue(field.DomId, "FirstName");
                var lName    = form.SubmittedFieldValue(field.DomId, "LastName");
                var initials = form.SubmittedFieldValue(field.DomId, "Initials");
                if (string.IsNullOrEmpty(fName) && string.IsNullOrEmpty(lName))
                {
                    value = "";
                }
                else
                {
                    value = "{0} {1} {2}".FormatWith(fName, initials, lName);
                }
                break;

            case Constants.TemplateFieldType.TEXTAREA:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                break;

            case Constants.TemplateFieldType.TEXTBOX:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                break;

            case Constants.TemplateFieldType.TEXTBOXNUMBER:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                break;

            case Constants.TemplateFieldType.SIGNATURE:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                break;

            case Constants.TemplateFieldType.DOCTORMEMO:
                value = form.SubmittedFieldValue(field.DomId, "TextArea");
                break;

            case Constants.TemplateFieldType.FILEPICKER:
                //HttpPostedFile file = HttpContext.Current.Request.Files[SubmittedFieldName(field.DomId, fType.ToTitleCase())];
                //value = "";
                //if (file != null && file.ContentLength > 0)
                //{
                //    var extension = Path.GetExtension(file.FileName);

                //    var valueObject = new FileValueObject()
                //    {
                //        FileName = file.FileName,
                //        SaveName = Guid.NewGuid().ToString() + extension,
                //        SavePath = WebConfig.Get("filesavepath"),
                //        IsSavedInCloud = UtilityHelper.UseCloudStorage(),
                //        Extension = extension
                //    };

                //    value = valueObject.ToJson();
                //}
                break;
            }

            return(value);
        }
Exemplo n.º 18
0
        public static bool SubmittedValueIsValid(this TemplateFieldViewModel field, FormCollection form)
        {
            var    fType = field.FieldType.ToString().ToTitleCase();
            string value = "";

            switch (field.FieldType)
            {
            case Constants.TemplateFieldType.TEXTBOXNUMBER:
                string textnumber = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                if (string.IsNullOrEmpty(textnumber))
                {
                    return(true);
                }
                return(textnumber.IsNumeric());

            case Constants.TemplateFieldType.NRICPICKER:
                string icNumber = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                // string icFirstDigit = form.SubmittedFieldValue(field.DomId, "FirstDigit");
                // string icLastDigit = form.SubmittedFieldValue(field.DomId, "LastDigit");

                return(NricChecker.IsNRICValid(icNumber));

            case Constants.TemplateFieldType.CHECKBOX:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                if (!value.IsNullOrEmpty() && value.Contains("OthersOption"))
                {
                    string othersOptionValue = form.SubmittedFieldValue(field.DomId, "OthersOption");
                    if (othersOptionValue.IsNullOrEmpty())
                    {
                        return(false);
                    }
                }
                return(true);

            case Constants.TemplateFieldType.RADIOBUTTON:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                if (!value.IsNullOrEmpty() && value.Equals("OthersOption"))
                {
                    value = form.SubmittedFieldValue(field.DomId, "OthersOption");
                    if (value.IsNullOrEmpty())
                    {
                        return(false);
                    }
                }
                return(true);

            case Constants.TemplateFieldType.EMAIL:
                value = form.SubmittedFieldValue(field.DomId, fType.ToTitleCase());
                if (value.IsNullOrEmpty())
                {
                    return(true);
                }
                return(value.IsValidEmail());

            case Constants.TemplateFieldType.ADDRESS:
                return(true);

            case Constants.TemplateFieldType.PHONE:
                var area   = form.SubmittedFieldValue(field.DomId, "AreaCode");
                var number = form.SubmittedFieldValue(field.DomId, "Number");
                if (area.IsNullOrEmpty() && number.IsNullOrEmpty())
                {
                    return(true);
                }
                else if ((area.IsNullOrEmpty() && !number.IsNullOrEmpty()) || (!area.IsNullOrEmpty() && number.IsNullOrEmpty()))
                {
                    return(false);
                }
                else
                {
                    return(area.IsNumeric() && number.IsNumeric());
                }

            case Constants.TemplateFieldType.BIRTHDAYPICKER:
                var day   = form.SubmittedFieldValue(field.DomId, "Day");
                var month = form.SubmittedFieldValue(field.DomId, "Month");
                var year  = form.SubmittedFieldValue(field.DomId, "Year");

                if (day.IsNullOrEmpty() && month.IsNullOrEmpty() && year.IsNullOrEmpty())
                {
                    return(true);
                }

                try
                {
                    if (!string.IsNullOrEmpty(day))
                    {
                        int dayValue = Int32.Parse(day);
                        if (dayValue <= 0 || dayValue >= 32)
                        {
                            return(false);
                        }
                    }

                    if (!string.IsNullOrEmpty(month))
                    {
                        int monthValue = Int32.Parse(month);
                        if (monthValue <= 0 || monthValue >= 13)
                        {
                            return(false);
                        }
                    }

                    if (!string.IsNullOrEmpty(year))
                    {
                        int yearValue = Int32.Parse(year);
                        if (yearValue <= 1916 || yearValue >= 2999)
                        {
                            return(false);
                        }
                    }


                    return(true);
                }

                catch (FormatException)
                {
                    return(false);
                }

            /*
             * var dateValue = "{0}-{1}-{2}".FormatWith(month, day, year);
             * var format = new string[] { "M-dd-yyyy" };
             * DateTime date;
             * return DateTime.TryParseExact(dateValue, "M-dd-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out date);
             */
            case Constants.TemplateFieldType.FILEPICKER:
                HttpPostedFile file            = HttpContext.Current.Request.Files[SubmittedFieldName(field.DomId, fType.ToTitleCase())];
                var            maxSize         = field.MaxFileSize * 1024;
                var            minSize         = field.MinFileSize * 1024;
                var            validExtensions = field.ValidFileExtensions;

                if (file != null && file.ContentLength > 0)
                {
                    var extension = System.IO.Path.GetExtension(file.FileName);
                    // check filesize is within range of Max and Min
                    if (!(file.ContentLength >= minSize && file.ContentLength <= maxSize))
                    {
                        return(false);
                    }

                    // check file extension is valid
                    if (!validExtensions.IsNullOrEmpty())
                    {
                        var  validExtensionArr = validExtensions.Split(",").Select(ext => ext.Trim()).ToList();
                        bool isValidExt        = false;
                        foreach (var ext in validExtensionArr)
                        {
                            var updatedExt = ext;
                            if (!ext.StartsWith("."))
                            {
                                updatedExt = "." + ext;
                            }

                            if (updatedExt.IsTheSameAs(extension))
                            {
                                isValidExt = true;
                            }
                        }

                        return(isValidExt);
                    }
                }

                return(true);
            }

            return(true);
        }
Exemplo n.º 19
0
 protected virtual void HandleTemplateFieldValue(TemplateFieldViewModel field, string value, Guid entryId)
 {
     field.CreatedDateTime = DateTime.Now;
     field.CreatedBy       = GetLoginUserName();
     UnitOfWork.FormRepository.InsertTemplateFieldValue(field, value, entryId);
 }
Exemplo n.º 20
0
        public static string GetSubmittedOtherOptionsTextValue(this HtmlHelper helper, TemplateFieldViewModel model, string fieldType = "", string returnIfNull = "")
        {
            string tempValue = GetTempFormValue(helper, model, fieldType, returnIfNull);

            if (!string.IsNullOrEmpty(tempValue))
            {
                return(tempValue);
            }

            if (string.IsNullOrEmpty(model.EntryId) || model.EntryId.Equals(Guid.Empty.ToString()))
            {
                if (!model.IsValueRequiredForRegistration)
                {
                    return("");
                }

                else
                {
                    return(GetTempRegistrationFormValue(helper, model, fieldType));
                }
            }

            else
            {
                using (var formManager = new FormManager())
                {
                    switch (model.FieldType)
                    {
                    case TemplateFieldType.ADDRESS:

                        var addressValue = formManager.FindSaveValue(model.EntryId, model.TemplateFieldID ?? default(int));

                        AddressViewModel address = addressValue.FromJson <AddressViewModel>();

                        if (address != null)
                        {
                            if (fieldType == "Blk")
                            {
                                return(address.Blk);
                            }
                            else if (fieldType == "Unit")
                            {
                                return(address.Unit);
                            }
                            else if (fieldType == "StreetAddress")
                            {
                                return(address.StreetAddress);
                            }
                            else if (fieldType == "ZipCode")
                            {
                                return(address.ZipCode);
                            }
                        }
                        break;

                    case TemplateFieldType.BMI:

                        var bmiValue = formManager.FindSaveValue(model.EntryId, model.TemplateFieldID ?? default(int));

                        BMIViewModel bmi = bmiValue.FromJson <BMIViewModel>();

                        if (fieldType == "Weight")
                        {
                            return(bmi.Weight);
                        }
                        else if (fieldType == "Height")
                        {
                            return(bmi.Height);
                        }

                        break;

                    case TemplateFieldType.BIRTHDAYPICKER:
                        var birthdayValue = formManager.FindSaveValue(model.EntryId, model.TemplateFieldID ?? default(int));

                        if (!string.IsNullOrEmpty(birthdayValue))
                        {
                            string[] values = birthdayValue.Split("/");

                            if (fieldType == "Day")
                            {
                                int dayValue = int.Parse(values[0]);
                                return((dayValue < 10) ? ("0" + dayValue) : values[0]);
                            }

                            else if (fieldType == "Month")
                            {
                                return(values[1]);
                            }

                            else if (fieldType == "Year")
                            {
                                return(values[2].Substring(0, 4));
                            }
                        }

                        else
                        {
                            return("");
                        }

                        break;

                    default:
                        return(formManager.FindSaveValue(model.EntryId, model.TemplateFieldID ?? default(int)));
                    }
                }
            }

            return("");
        }
Exemplo n.º 21
0
 public TemplateFieldValue GetTemplateFieldValue(TemplateFieldViewModel field, Guid entryId)
 {
     return(dbContext.Set <TemplateFieldValue>().Where(u => u.EntryId.Equals(entryId) && u.TemplateFieldID == field.TemplateFieldID).FirstOrDefault());
 }
Exemplo n.º 22
0
        public static bool IsDisplayField(this HtmlHelper helper, TemplateFieldViewModel model)
        {
            bool result = true;

            if (model.ConditionTemplateFieldID.HasValue)
            {
                if (string.IsNullOrEmpty(model.ConditionCriteria) || string.IsNullOrEmpty(model.ConditionOptions))
                {
                    result = true;
                }

                else if (string.IsNullOrEmpty(model.EntryId) || model.EntryId.Equals(Guid.Empty.ToString()))
                {
                    result = false;
                }

                else
                {
                    using (var formManager = new FormManager())
                    {
                        TemplateFieldViewModel conditionTemplateFieldViewModel = formManager.FindTemplateField(model.ConditionTemplateFieldID.Value);

                        if (conditionTemplateFieldViewModel != null)
                        {
                            conditionTemplateFieldViewModel.EntryId = model.EntryId;

                            string conditionTemplateFieldValue = GetSubmittedTextValue(helper, conditionTemplateFieldViewModel);
                            if (!string.IsNullOrEmpty(conditionTemplateFieldValue))
                            {
                                if (model.ConditionCriteria.Equals("=="))
                                {
                                    if (model.ConditionOptions.Contains(conditionTemplateFieldValue))
                                    {
                                        result = true;
                                    }

                                    else if (conditionTemplateFieldValue.Contains(model.ConditionOptions))
                                    {
                                        result = true;
                                    }

                                    else
                                    {
                                        result = false;
                                    }
                                }

                                else if (model.ConditionCriteria.Equals("!="))
                                {
                                    if (model.ConditionOptions.Contains(conditionTemplateFieldValue))
                                    {
                                        result = false;
                                    }

                                    else if (conditionTemplateFieldValue.Contains(model.ConditionOptions))
                                    {
                                        result = false;
                                    }

                                    else
                                    {
                                        result = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            return(result);
        }
Exemplo n.º 23
0
        public void UpdateTemplateField(Template template1, TemplateFieldViewModel fieldView)
        {
            if (template1 == null)
            {
                throw new Exception("Cannot update a field when a form is null");
            }

            dbContext.Entry(template1).State = EntityState.Modified;

            if (!fieldView.TemplateFieldID.HasValue)
            {
                // create
                var fField = new TemplateField
                {
                    DomId = fieldView.DomId,
                    // Label = fieldView.Label.LimitWithElipses(40),

                    Label                    = fieldView.Label,
                    Text                     = fieldView.Text.Trim(),
                    FieldType                = fieldView.FieldType.ToString(),
                    IsRequired               = fieldView.IsRequired,
                    MaxChars                 = fieldView.MaxCharacters,
                    HoverText                = fieldView.HoverText.Trim(),
                    Hint                     = fieldView.Hint.Trim(),
                    SubLabel                 = fieldView.SubLabel.Trim(),
                    Size                     = fieldView.Size,
                    Columns                  = fieldView.Columns,
                    Rows                     = fieldView.Rows,
                    Options                  = fieldView.Options,
                    SelectedOption           = fieldView.SelectedOption,
                    AddOthersOption          = fieldView.AddOthersOption,
                    OthersOption             = fieldView.OthersOption,
                    OthersPlaceHolder        = fieldView.OthersPlaceHolder,
                    HelpText                 = fieldView.HelpText.Trim(),
                    Validation               = fieldView.Validation,
                    Order                    = fieldView.Order,
                    MinimumAge               = fieldView.MinimumAge,
                    MaximumAge               = fieldView.MaximumAge,
                    MaxFilesizeInKb          = fieldView.MaxFileSize,
                    MinFilesizeInKb          = fieldView.MinFileSize,
                    ValidFileExtensions      = fieldView.ValidFileExtensions,
                    DateAdded                = DateTime.Now,
                    ImageBase64              = fieldView.ImageBase64,
                    MatrixRow                = fieldView.MatrixRow,
                    MatrixColumn             = fieldView.MatrixColumn,
                    PreRegistrationFieldName = fieldView.PreRegistrationFieldName,
                    RegistrationFieldName    = fieldView.RegistrationFieldName,
                    SummaryFieldName         = fieldView.SummaryFieldName,
                    SummaryType              = fieldView.SummaryType,
                    ConditionCriteria        = fieldView.ConditionCriteria,
                    ConditionOptions         = fieldView.ConditionOptions,
                    ConditionTemplateFieldID = fieldView.ConditionTemplateFieldID,
                    StandardReferenceID      = fieldView.StandardReferenceID,
                    CreatedBy                = fieldView.CreatedBy,
                    CreatedDateTime          = fieldView.CreatedDateTime
                };

                template1.TemplateFields.Add(fField);
                // this.SaveChanges();
            }
            else
            {
                var fField = dbContext.Set <TemplateField>().Where(field => field.TemplateFieldID == fieldView.TemplateFieldID.Value).FirstOrDefault();
                if (fField != null)
                {
                    //  fField.Label = fieldView.Label.LimitWithElipses(45);
                    fField.Label                    = fieldView.Label;
                    fField.Text                     = fieldView.Text.Trim();
                    fField.FieldType                = fieldView.FieldType.ToString();
                    fField.IsRequired               = fieldView.IsRequired;
                    fField.MaxChars                 = fieldView.MaxCharacters;
                    fField.HoverText                = fieldView.HoverText.Trim();
                    fField.Hint                     = fieldView.Hint.Trim();
                    fField.SubLabel                 = fieldView.SubLabel.Trim();
                    fField.Size                     = fieldView.Size;
                    fField.Columns                  = fieldView.Columns;
                    fField.Rows                     = fieldView.Rows;
                    fField.Options                  = fieldView.Options;
                    fField.SelectedOption           = fieldView.SelectedOption;
                    fField.AddOthersOption          = fieldView.AddOthersOption;
                    fField.OthersOption             = fieldView.OthersOption;
                    fField.OthersPlaceHolder        = fieldView.OthersPlaceHolder;
                    fField.HelpText                 = fieldView.HelpText.Trim();
                    fField.Validation               = fieldView.Validation;
                    fField.Order                    = fieldView.Order;
                    fField.MinimumAge               = fieldView.MinimumAge;
                    fField.MaximumAge               = fieldView.MaximumAge;
                    fField.MaxFilesizeInKb          = fieldView.MaxFileSize;
                    fField.MinFilesizeInKb          = fieldView.MinFileSize;
                    fField.ValidFileExtensions      = fieldView.ValidFileExtensions;
                    fField.ImageBase64              = fieldView.ImageBase64;
                    fField.MatrixColumn             = fieldView.MatrixColumn;
                    fField.MatrixRow                = fieldView.MatrixRow;
                    fField.PreRegistrationFieldName = fieldView.PreRegistrationFieldName;
                    fField.RegistrationFieldName    = fieldView.RegistrationFieldName;
                    fField.SummaryFieldName         = fieldView.SummaryFieldName;
                    fField.SummaryType              = fieldView.SummaryType;
                    fField.ConditionCriteria        = fieldView.ConditionCriteria;
                    fField.ConditionOptions         = fieldView.ConditionOptions;
                    fField.ConditionTemplateFieldID = fieldView.ConditionTemplateFieldID;
                    fField.StandardReferenceID      = fieldView.StandardReferenceID;
                    fField.UpdatedBy                = fieldView.UpdatedBy;
                    fField.UpdatedDateTime          = fieldView.UpdatedDateTime;
                }

                //  this.SaveChanges();
            }
        }
Exemplo n.º 24
0
 public static string SubmittedFieldName(this TemplateFieldViewModel field)
 {
     return(SubmittedFieldName(field.DomId, field.FieldType.ToString().ToTitleCase()));
 }