Example #1
0
        public static IEnumerable <NetPromoterRating> RatingsfromFormRecords(FormWithRecords FormData, string NpsFieldAlias)
        {
            var npsDataRaw = FormData.AllFieldData(NpsFieldAlias);
            var npsDataSet = new List <NetPromoterRating>();

            foreach (var datapoint in npsDataRaw)
            {
                npsDataSet.Add(RatingFromJson(datapoint.Value.ValuesAsString()));
            }

            return(npsDataSet);
        }
Example #2
0
        public HttpResponseMessage GenerateFormClass(string FormGuid)
        {
            var returnSB = new StringBuilder();

            var formData    = new FormWithRecords(FormGuid);
            var formClass   = new StringBuilder();
            var recordClass = new StringBuilder();

            var formClassName = formData.Form.Name.MakeCodeSafe("", true);

            //TODO: HLF - Update with new Record and FormsHelper syntax

            formClass.AppendLine($@"
public partial class Form{formClassName}
    {{
        public FormWithRecords FormWithRecords {{ get; internal set; }}
        public IEnumerable<Form{formClassName}Record> Records {{ get; internal set; }}

        public Form{formClassName}(string FormGuid)
        {{
            this.FormWithRecords = new FormWithRecords(FormGuid);

            var formRecords = new List<Form{formClassName}Record>();
            foreach (var record in FormWithRecords.RecordsAll)
            {{
                var intValue = 0;
                var intTest = false;

                var formGuid = new Guid(FormGuid);
                var typedRecord = new Form{formClassName}Record();

                //Standard Record Info
                typedRecord.RecordId = record.Id;
                typedRecord.State = record.State;
                typedRecord.RecordUniqueId = FormHelper.GetRecordGuid(FormGuid, record.Id);
                typedRecord.Created = record.Created;
                typedRecord.IP = record.IP;
                typedRecord.MemberKey = record.MemberKey;
                typedRecord.UmbracoPageId = record.UmbracoPageId;
                typedRecord.Updated = record.Updated;

                //Custom Field Values
            ");

            recordClass.AppendLine($@"
            public class Form{formClassName}Record
    {{
        public string IP {{get; internal set; }}
        public string RecordUniqueId {{ get; internal set; }}
        public string RecordId {{ get; internal set; }}
        public FormState? State {{ get; internal set; }}
        public object MemberKey {{ get; internal set; }}
        public int UmbracoPageId {{ get; internal set; }}
        public DateTime Created {{ get; internal set; }}
        public DateTime Updated {{ get; internal set; }}
                                   ");

            foreach (var field in formData.Fields)
            {
                var fieldAlias = field.Alias;
                if (field.FieldType.DataType == FieldDataType.String ||
                    field.FieldType.DataType == FieldDataType.LongString)
                {
                    //Add field to contructor for form class
                    formClass.AppendLine($@"
                typedRecord.{fieldAlias} = record.GetField(""{fieldAlias}"").ValuesAsString();
                                   ");

                    //Add field as property to record class
                    recordClass.AppendLine($@"
                public string {fieldAlias} {{ get; internal set; }}
                                   ");
                }
                else if (field.FieldType.DataType == FieldDataType.Integer)
                {
                    //Add field to contructor for form class
                    formClass.AppendLine($@"
                  intValue = 0;
                intTest = Int32.TryParse(record.GetField(""{fieldAlias}"").ValuesAsString(), out intValue);
                typedRecord.{fieldAlias} = intValue;
                    ");

                    //Add field as property to record class
                    recordClass.AppendLine($@"
                public int {fieldAlias} {{ get; internal set; }}
                                   ");
                }
                else if (field.FieldType.DataType == FieldDataType.DateTime)
                {
                    //Add field to contructor for form class
                    formClass.AppendLine($@"
                typedRecord.{fieldAlias} = DateTime.Parse(record.GetField(""{fieldAlias}"").ValuesAsString());
                                   ");

                    //Add field as property to record class
                    recordClass.AppendLine($@"
                public DateTime {fieldAlias} {{ get; internal set; }}
                                   ");
                }
            }

            //Finalize the classes and combine
            recordClass.AppendLine($@"
                    public Form{formClassName}Record() {{ }}
    }}
                                   ");

            formClass.AppendLine($@"
            }}
        }}
  
    }}
                                   ");

            returnSB.Append(formClass);
            returnSB.AppendLine("");
            returnSB.Append(recordClass);


            return(new HttpResponseMessage()
            {
                Content = new StringContent(
                    returnSB.ToString(),
                    Encoding.UTF8,
                    "text/html"
                    )
            });
        }
Example #3
0
        public static NetPromoterScore GetNetPromoterScore(FormWithRecords FormData, string NpsFieldAlias)
        {
            var ratings = RatingsfromFormRecords(FormData, NpsFieldAlias);

            return(new NetPromoterScore(ratings));
        }
Example #4
0
        public static IEnumerable <NetPromoterRating> RatingsfromFormRecords(string FormGuid, string NpsFieldAlias)
        {
            var formData = new FormWithRecords(FormGuid);

            return(RatingsfromFormRecords(formData, NpsFieldAlias));
        }