public static IList <FieldValueOrder> ToFieldValueOrder(this FormCollection collection) { if (collection == null) { throw new ArgumentNullException(nameof(collection)); } var list = new List <FieldValueOrder>(); var counter = 0; foreach (var key in collection.AllKeys.Distinct()) { int keyint; var lastkey = ""; var field = new FieldValueOrder(); var order = 1; var applicant = 1; if (key.Contains("_")) { var splitvalues = key.Split('_'); //only applicant if (splitvalues.Length - 1 == 1) { lastkey = splitvalues.First(); int.TryParse(splitvalues.Last(), out applicant); } // applicant & order if (splitvalues.Length - 1 == 2) { lastkey = splitvalues.First(); int.TryParse(splitvalues[1], out applicant); int.TryParse(splitvalues.Last(), out order); } } else { lastkey = key; } if (!int.TryParse(lastkey, out keyint)) { counter++; continue; } field.Applicant = applicant; field.Order = order; field.Key = lastkey; field.Value = collection[counter]; list.Add(field); counter++; } return(list); }
public static IReadOnlyCollection <FieldValueOrder> ToFieldValueOrder(this HttpFileCollectionBase files) { if (files == null) { throw new ArgumentNullException(nameof(files)); } var list = new List <FieldValueOrder>(); foreach (var key in files.AllKeys.Distinct()) { var fieldfile = files[key]; int keyint; var lastkey = ""; var field = new FieldValueOrder(); var order = 1; var applicant = 1; if (key.Contains("_")) { var splitvalues = key.Split('_'); //only applicant if (splitvalues.Length - 1 == 1) { lastkey = splitvalues.First(); int.TryParse(splitvalues.Last(), out applicant); } // applicant & order if (splitvalues.Length - 1 == 2) { lastkey = splitvalues.First(); int.TryParse(splitvalues[1], out applicant); int.TryParse(splitvalues.Last(), out order); } } else { lastkey = key; } if (!int.TryParse(lastkey, out keyint)) { continue; } if (fieldfile == null) { continue; } using (var inputStream = fieldfile.InputStream) { var memoryStream = inputStream as MemoryStream; if (memoryStream == null) { memoryStream = new MemoryStream(); inputStream.CopyTo(memoryStream); } var data = memoryStream.ToArray(); field.Applicant = applicant; field.Order = order; field.Key = lastkey; field.Bytes = data; field.Value = fieldfile.FileName; list.Add(field); } } return(list); }