public void CanConvertFrom() { StringArrayConverter vrt = new StringArrayConverter(); Assert.IsTrue(vrt.CanConvertFrom(typeof(string)), "Conversion from a string instance must be supported."); Assert.IsFalse(vrt.CanConvertFrom(null)); }
protected void Page_Load(object sender, EventArgs e) { if (base.Request["types"] == null) { throw new BadQueryParameterException("types"); } try { StringArrayConverter stringArrayConverter = new StringArrayConverter(); this.Value = (string[])stringArrayConverter.ConvertFrom(base.Request["types"]); } catch (NotSupportedException innerException) { throw new BadQueryParameterException("types", innerException); } try { foreach (string value2 in this.Value) { Enum.Parse(typeof(KindKeyword), value2, true); } } catch (ArgumentException innerException2) { throw new BadQueryParameterException("types", innerException2); } }
protected internal virtual void verifyStringParameterQueryInvocations() { IDictionary <string, string> stringQueryParameters = CompleteStringQueryParameters; StringArrayConverter stringArrayConverter = new StringArrayConverter(); verify(mockedQuery).decisionInstanceId(stringQueryParameters["decisionInstanceId"]); verify(mockedQuery).decisionInstanceIdIn(stringArrayConverter.convertQueryParameterToType(stringQueryParameters["decisionInstanceIdIn"])); verify(mockedQuery).decisionDefinitionId(stringQueryParameters["decisionDefinitionId"]); verify(mockedQuery).decisionDefinitionIdIn(stringArrayConverter.convertQueryParameterToType(stringQueryParameters["decisionDefinitionIdIn"])); verify(mockedQuery).decisionDefinitionKey(stringQueryParameters["decisionDefinitionKey"]); verify(mockedQuery).decisionDefinitionKeyIn(stringArrayConverter.convertQueryParameterToType(stringQueryParameters["decisionDefinitionKeyIn"])); verify(mockedQuery).decisionDefinitionName(stringQueryParameters["decisionDefinitionName"]); verify(mockedQuery).decisionDefinitionNameLike(stringQueryParameters["decisionDefinitionNameLike"]); verify(mockedQuery).processDefinitionId(stringQueryParameters["processDefinitionId"]); verify(mockedQuery).processDefinitionKey(stringQueryParameters["processDefinitionKey"]); verify(mockedQuery).processInstanceId(stringQueryParameters["processInstanceId"]); verify(mockedQuery).caseDefinitionId(stringQueryParameters["caseDefinitionId"]); verify(mockedQuery).caseDefinitionKey(stringQueryParameters["caseDefinitionKey"]); verify(mockedQuery).caseInstanceId(stringQueryParameters["caseInstanceId"]); verify(mockedQuery).activityIdIn(stringArrayConverter.convertQueryParameterToType(stringQueryParameters["activityIdIn"])); verify(mockedQuery).activityInstanceIdIn(stringArrayConverter.convertQueryParameterToType(stringQueryParameters["activityInstanceIdIn"])); verify(mockedQuery).evaluatedBefore(DateTimeUtil.parseDate(stringQueryParameters["evaluatedBefore"])); verify(mockedQuery).evaluatedAfter(DateTimeUtil.parseDate(stringQueryParameters["evaluatedAfter"])); verify(mockedQuery).userId(stringQueryParameters["userId"]); verify(mockedQuery).rootDecisionInstanceId(stringQueryParameters["rootDecisionInstanceId"]); verify(mockedQuery).decisionRequirementsDefinitionId(stringQueryParameters["decisionRequirementsDefinitionId"]); verify(mockedQuery).decisionRequirementsDefinitionKey(stringQueryParameters["decisionRequirementsDefinitionKey"]); verify(mockedQuery).list(); }
public void SplitsStringBySemicolon() { var target = new StringArrayConverter(); var output = target.ConvertFrom("foo;bar ; baz"); var array = Assert.IsType <string[]>(output); Assert.Equal(new[] { "foo", "bar ", " baz" }, array); }
public void ReturnsSingleStringWhenThereIsNoDelimeter(string input) { var target = new StringArrayConverter(); var output = target.ConvertFrom(input); var array = Assert.IsType <string[]>(output); Assert.Equal(new[] { input }, array); }
public void ReturnsEmptyArrayWithEmpty() { var target = new StringArrayConverter(); var output = target.ConvertFrom(string.Empty); var array = Assert.IsType <string[]>(output); Assert.Empty(array); }
public void ConvertFromPreservesExtraneousWhitespace() { object[] expected = new object[] { "1 ", " Foo ", " 3" }; StringArrayConverter vrt = new StringArrayConverter(); object actual = vrt.ConvertFrom("1 , Foo , 3"); Assert.IsNotNull(actual); Assert.AreEqual(typeof(string[]), actual.GetType()); Assert.IsTrue(ArrayUtils.AreEqual(expected, (string[])actual), "Individual array elements not correctly converted (check the whitespace?)."); }
public static string[] ToArrayOfStrings(this string commaSeparatedString) { if (commaSeparatedString == null) { return(null); } StringArrayConverter stringArrayConverter = new StringArrayConverter(); return((from stringValue in ((string[])stringArrayConverter.ConvertFrom(commaSeparatedString)).AsEnumerable <string>() where stringValue != null && stringValue != string.Empty select stringValue).ToArray <string>()); }
public void ConvertFrom() { object[] expected = new object[] { "1", "Foo", "3" }; StringArrayConverter vrt = new StringArrayConverter(); object actual = vrt.ConvertFrom("1,Foo,3"); Assert.IsNotNull(actual); Assert.AreEqual(typeof(string[]), actual.GetType()); Assert.AreEqual(3, ((string[])actual).Length, "Wrong number of elements in the resulting array."); Assert.IsTrue(ArrayUtils.AreEqual(expected, (string[])actual), "Individual array elements not correctly converted."); }
public void NullingTheListSeparatorMakesItRevertToTheDefault() { object[] expected = new object[] { "1", "Foo", "3" }; StringArrayConverter vrt = new StringArrayConverter(); vrt.ListSeparator = null; object actual = vrt.ConvertFrom("1,Foo,3"); Assert.IsNotNull(actual); Assert.AreEqual(typeof(string[]), actual.GetType()); Assert.IsTrue(ArrayUtils.AreEqual(expected, (string[])actual), "Individual array elements not correctly converted."); }
public void CustomListSeparator() { object[] expected = new object[] { "1", "Foo", "3" }; StringArrayConverter vrt = new StringArrayConverter(); const string customSeparator = "#"; vrt.ListSeparator = customSeparator; object actual = vrt.ConvertFrom(string.Format("1{0}Foo{0}3", customSeparator)); Assert.IsNotNull(actual); Assert.AreEqual(typeof(string[]), actual.GetType()); Assert.IsTrue(ArrayUtils.AreEqual(expected, (string[])actual), "Individual array elements not correctly converted."); }
public override void SaveSettingsToStorage() { ThreadHelper.ThrowIfNotOnUIThread(); base.SaveSettingsToStorage(); var settingsManager = new ShellSettingsManager(ServiceProvider.GlobalProvider); var userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings); if (!userSettingsStore.CollectionExists(GeneralOptionsCollection)) { userSettingsStore.CreateCollection(GeneralOptionsCollection); } var converter = new StringArrayConverter(); userSettingsStore.SetString( GeneralOptionsCollection, nameof(LibraryPackFiles), converter.ConvertTo(this.LibraryPackFiles, typeof(string)) as string); }
public void EnsureCultureListSeparatorIsIgnored() { CultureInfo originalCulture = Thread.CurrentThread.CurrentCulture; try { CultureInfo frenchCulture = new CultureInfo("fr-FR"); Thread.CurrentThread.CurrentCulture = frenchCulture; object[] expected = new object[] { "1", "Foo", "3" }; StringArrayConverter vrt = new StringArrayConverter(); // France uses the ';' (semi-colon) to separate list items... object actual = vrt.ConvertFrom("1,Foo,3"); Assert.IsNotNull(actual); Assert.AreEqual(typeof(string[]), actual.GetType()); Assert.IsTrue(ArrayUtils.AreEqual(expected, (string[])actual), "Individual array elements not correctly converted."); } finally { Thread.CurrentThread.CurrentCulture = originalCulture; } }
public override void LoadSettingsFromStorage() { ThreadHelper.ThrowIfNotOnUIThread(); base.LoadSettingsFromStorage(); var settingsManager = new ShellSettingsManager(ServiceProvider.GlobalProvider); var userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings); if (!userSettingsStore.PropertyExists(GeneralOptionsCollection, nameof(LibraryPackFiles))) { _page.LibraryPackFiles = new List <string>(); return; } var converter = new StringArrayConverter(); this.LibraryPackFiles = converter.ConvertFrom( userSettingsStore.GetString(GeneralOptionsCollection, nameof(LibraryPackFiles))) as List <string>; // for debug //LibraryPackFiles.Add("C:\\Users\\Username\\Projects\\lib_hl\\libraries.xml"); _page.LibraryPackFiles = LibraryPackFiles; }
public void TryConvertTo_returns_true_if_value_is_null(StringArrayConverter sut) { var canConvert = sut.TryConvertTo(null, out _); Assert.IsTrue(canConvert); }
new private void SaveFormEntry(FormDescription description) { FormsManager manager = FormsManager.GetManager(); FormEntry userHostAddress = null; if (_isProgressiveForm && _priorFormEntry == null) { FieldControl keyField = this.FieldControls.Where(fc => ((IFormFieldControl)fc).MetaField.FieldName == _progressiveKeyFieldName).FirstOrDefault() as FieldControl; if (keyField != null && !String.IsNullOrWhiteSpace((string)keyField.Value)) { _priorFormEntry = GetPriorFormEntryByKeyField((string)keyField.Value); } } if (_isProgressiveForm && _priorFormEntry != null) { string entryType = String.Format("{0}.{1}", manager.Provider.FormsNamespace, this.FormData.Name); userHostAddress = manager.GetFormEntry(entryType, _priorFormEntry.Id); } else { userHostAddress = manager.CreateFormEntry(string.Format("{0}.{1}", manager.Provider.FormsNamespace, description.Name)); } foreach (IFormFieldControl formFieldControl in this.FieldControls) { FieldControl fieldControl = formFieldControl as FieldControl; object value = fieldControl.Value; if (fieldControl.GetType().Name == "FormFileUpload") { if (formFieldControl.MetaField.FieldName != "") { var uploadValue = value as UploadedFileCollection; var files = new Dictionary <string, List <FormHttpPostedFile> >(); List <FormHttpPostedFile> formHttpPostedFileList = new List <FormHttpPostedFile>(); foreach (UploadedFile uploadedFile in uploadValue) { if (uploadedFile != null) { formHttpPostedFileList.Add(new FormHttpPostedFile() { FileName = uploadedFile.FileName, InputStream = uploadedFile.InputStream, ContentType = uploadedFile.ContentType, ContentLength = uploadedFile.ContentLength }); } } files.Add(formFieldControl.MetaField.FieldName, formHttpPostedFileList); var type = Type.GetType("Telerik.Sitefinity.Modules.Forms.Web.FormsHelper,Telerik.Sitefinity"); var method = type.GetMethod("SaveFiles", BindingFlags.Static | BindingFlags.NonPublic); var updateMode = _priorFormEntry != null; method.Invoke(null, new object[] { files, description, userHostAddress, updateMode }); } } else if (!(value is List <string>)) { userHostAddress.SetValue(formFieldControl.MetaField.FieldName, value); } else { StringArrayConverter stringArrayConverter = new StringArrayConverter(); object obj = stringArrayConverter.ConvertTo((value as List <string>).ToArray(), typeof(string)); userHostAddress.SetValue(formFieldControl.MetaField.FieldName, obj); } } userHostAddress.IpAddress = this.Page.Request.UserHostAddress; userHostAddress.SubmittedOn = DateTime.UtcNow; Guid userId = ClaimsManager.GetCurrentUserId(); userHostAddress.UserId = userId == Guid.Empty ? Guid.Parse(_sfTrackingCookie.Value) : userId; if (userHostAddress.UserId == userId) { userHostAddress.Owner = userId; } if (SystemManager.CurrentContext.AppSettings.Multilingual) { userHostAddress.Language = CultureInfo.CurrentUICulture.Name; } FormDescription formData = this.FormData; formData.FormEntriesSeed = formData.FormEntriesSeed + (long)1; userHostAddress.ReferralCode = this.FormData.FormEntriesSeed.ToString(); manager.SaveChanges(); }
public void EmptyListSeparator() { StringArrayConverter vrt = new StringArrayConverter(); vrt.ListSeparator = string.Empty; }
public void CanConvertFromString() { var target = new StringArrayConverter(); Assert.True(target.CanConvertFrom(typeof(string))); }
static void Run(string[] args) { var methodName = args[0]; switch (methodName.ToLower()) { case "get-domaingpouserlocalgroupmapping": methodName = "Get_DomainGPOUserLocalGroupMapping"; break; case "find-gpolocation": methodName = "Find_GPOLocation"; break; case "get-domaingpocomputerlocalgroupmapping": methodName = "Get_DomainGPOComputerLocalGroupMapping"; break; case "find-gpocomputeradmin": methodName = "Find_GPOComputerAdmin"; break; case "get-domainobjectacl": methodName = "Get_DomainObjectAcl"; break; case "get-objectacl": methodName = "Get_ObjectAcl"; break; case "add-domainobjectacl": methodName = "Add_DomainObjectAcl"; break; case "add-objectacl": methodName = "Add_ObjectAcl"; break; case "remove-domainobjectacl": methodName = "Remove_DomainObjectAcl"; break; case "get-regloggedon": methodName = "Get_RegLoggedOn"; break; case "get-loggedonlocal": methodName = "Get_LoggedOnLocal"; break; case "get-netrdpsession": methodName = "Get_NetRDPSession"; break; case "test-adminaccess": methodName = "Test_AdminAccess"; break; case "invoke-checklocaladminaccess": methodName = "Invoke_CheckLocalAdminAccess"; break; case "get-wmiprocess": methodName = "Get_WMIProcess"; break; case "get-netprocess": methodName = "Get_NetProcess"; break; case "get-wmiregproxy": methodName = "Get_WMIRegProxy"; break; case "get-proxy": methodName = "Get_Proxy"; break; case "get-wmireglastloggedon": methodName = "Get_WMIRegLastLoggedOn"; break; case "get-lastloggedon": methodName = "Get_LastLoggedOn"; break; case "get-wmiregcachedrdpconnection": methodName = "Get_WMIRegCachedRDPConnection"; break; case "get-cachedrdpconnection": methodName = "Get_CachedRDPConnection"; break; case "get-wmiregmounteddrive": methodName = "Get_WMIRegMountedDrive"; break; case "get-registrymounteddrive": methodName = "Get_RegistryMountedDrive"; break; case "find-interestingdomainacl": methodName = "Find_InterestingDomainAcl"; break; case "invoke-aclscanner": methodName = "Invoke_ACLScanner"; break; case "get-netshare": methodName = "Get_NetShare"; break; case "get-netloggedon": methodName = "Get_NetLoggedon"; break; case "get-netlocalgroup": methodName = "Get_NetLocalGroup"; break; case "get-netlocalgroupmember": methodName = "Get_NetLocalGroupMember"; break; case "get-netsession": methodName = "Get_NetSession"; break; case "get-pathacl": methodName = "Get_PathAcl"; break; case "convertfrom-uacvalue": methodName = "ConvertFrom_UACValue"; break; case "get-principalcontext": methodName = "Get_PrincipalContext"; break; case "new-domaingroup": methodName = "New_DomainGroup"; break; case "new-domainuser": methodName = "New_DomainUser"; break; case "add-domaingroupmember": methodName = "Add_DomainGroupMember"; break; case "set-domainuserpassword": methodName = "Set_DomainUserPassword"; break; case "invoke-kerberoast": methodName = "Invoke_Kerberoast"; break; case "export-powerviewcsv": methodName = "Export_PowerViewCSV"; break; case "find-localadminaccess": methodName = "Find_LocalAdminAccess"; break; case "find-domainlocalgroupmember": methodName = "Find_DomainLocalGroupMember"; break; case "find-domainshare": methodName = "Find_DomainShare"; break; case "find-domainuserevent": methodName = "Find_DomainUserEvent"; break; case "find-domainprocess": methodName = "Find_DomainProcess"; break; case "find-domainuserlocation": methodName = "Find_DomainUserLocation"; break; case "find-interestingfile": methodName = "Find_InterestingFile"; break; case "find-interestingdomainsharefile": methodName = "Find_InterestingDomainShareFile"; break; case "find-domainobjectpropertyoutlier": methodName = "Find_DomainObjectPropertyOutlier"; break; case "testmethod": methodName = "TestMethod"; break; case "get-domain": methodName = "Get_Domain"; break; case "get-netdomain": methodName = "Get_NetDomain"; break; case "get-domaincomputer": methodName = "Get_DomainComputer"; break; case "get-netcomputer": methodName = "Get_NetComputer"; break; case "get-domaincontroller": methodName = "Get_DomainController"; break; case "get-netdomaincontroller": methodName = "Get_NetDomainController"; break; case "get-domainfileserver": methodName = "Get_DomainFileServer"; break; case "get-netfileserver": methodName = "Get_NetFileServer"; break; case "convert-adname": methodName = "Convert_ADName"; break; case "get-domainobject": methodName = "Get_DomainObject"; break; case "get-adobject": methodName = "Get_ADObject"; break; case "get-domainuser": methodName = "Get_DomainUser"; break; case "get-netuser": methodName = "Get_NetUser"; break; case "get-domaingroup": methodName = "Get_DomainGroup"; break; case "get-netgroup": methodName = "Get_NetGroup"; break; case "get-domaindfsshare": methodName = "Get_DomainDFSShare"; break; case "get-dfsshare": methodName = "Get_DFSshare"; break; case "get-domaindnsrecord": methodName = "Get_DomainDNSRecord"; break; case "get-dnsrecord": methodName = "Get_DNSRecord"; break; case "get-domaindnszone": methodName = "Get_DomainDNSZone"; break; case "get-dnszone": methodName = "Get_DNSZone"; break; case "get-domainforeigngroupmember": methodName = "Get_DomainForeignGroupMember"; break; case "find-foreigngroup": methodName = "Find_ForeignGroup"; break; case "get-domainforeignuser": methodName = "Get_DomainForeignUser"; break; case "find-foreignuser": methodName = "Find_ForeignUser"; break; case "convertfrom-sid": methodName = "ConvertFrom_SID"; break; case "convert-sidtoname": methodName = "Convert_SidToName"; break; case "get-domaingroupmember": methodName = "Get_DomainGroupMember"; break; case "get-netgroupmember": methodName = "Get_NetGroupMember"; break; case "get-domainmanagedsecuritygroup": methodName = "Get_DomainManagedSecurityGroup"; break; case "find-managedsecuritygroups": methodName = "Find_ManagedSecurityGroups"; break; case "get-domainou": methodName = "Get_DomainOU"; break; case "get-netou": methodName = "Get_NetOU"; break; case "get-domainsid": methodName = "Get_DomainSID"; break; case "get-forest": methodName = "Get_Forest"; break; case "get-netforest": methodName = "Get_NetForest"; break; case "get-foresttrust": methodName = "Get_ForestTrust"; break; case "get-netforesttrust": methodName = "Get_NetForestTrust"; break; case "get-domaintrust": methodName = "Get_DomainTrust"; break; case "get-netdomaintrust": methodName = "Get_NetDomainTrust"; break; case "get-forestdomain": methodName = "Get_ForestDomain"; break; case "get-netforestdomain": methodName = "Get_NetForestDomain"; break; case "get-domainsite": methodName = "Get_DomainSite"; break; case "get-netsite": methodName = "Get_NetSite"; break; case "get-domainsubnet": methodName = "Get_DomainSubnet"; break; case "get-netsubnet": methodName = "Get_NetSubnet"; break; case "get-domaintrustmapping": methodName = "Get_DomainTrustMapping"; break; case "invoke-mapdomaintrust": methodName = "Invoke_MapDomainTrust"; break; case "get-forestglobalcatalog": methodName = "Get_ForestGlobalCatalog"; break; case "get-netforestcatalog": methodName = "Get_NetForestCatalog"; break; case "get-domainuserevent": methodName = "Get_DomainUserEvent"; break; case "get-userevent": methodName = "Get_UserEvent"; break; case "get-domainguidmap": methodName = "Get_DomainGUIDMap"; break; case "get-guidmap": methodName = "Get_GUIDMap"; break; case "resolve-ipaddress": methodName = "Resolve_IPAddress"; break; case "get-ipaddress": methodName = "Get_IPAddress"; break; case "convertto-sid": methodName = "ConvertTo_SID"; break; case "invoke-userimpersonation": methodName = "Invoke_UserImpersonation"; break; case "invoke-reverttoself": methodName = "Invoke_RevertToSelf"; break; case "get-domainspnticket": methodName = "Get_DomainSPNTicket"; break; case "request-spnticket": methodName = "Request_SPNTicket"; break; case "get-netcomputersitename": methodName = "Get_NetComputerSiteName"; break; case "get-sitename": methodName = "Get_SiteName"; break; case "get-domaingpo": methodName = "Get_DomainGPO"; break; case "get-netgpo": methodName = "Get_NetGPO"; break; case "set-domainobject": methodName = "Set_DomainObject"; break; case "set-adobject": methodName = "Set_ADObject"; break; case "add-remoteconnection": methodName = "Add_RemoteConnection"; break; case "remove-remoteconnection": methodName = "Remove_RemoteConnection"; break; case "get-inicontent": methodName = "Get_IniContent"; break; case "get-gpttmpl": methodName = "Get_GptTmpl"; break; case "get-groupsxml": methodName = "Get_GroupsXML"; break; case "get-domainpolicydata": methodName = "Get_DomainPolicyData"; break; case "get-domainpolicy": methodName = "Get_DomainPolicy"; break; case "get-domaingpolocalgroup": methodName = "Get_DomainGPOLocalGroup"; break; case "get-netgpogroup": methodName = "Get_NetGPOGroup"; break; // Custom Commands case "get-executiongroups": methodName = "Get_ExecutionGroups"; break; case "find-entityhasfullcontrol": methodName = "Find_EntityHasFullControl"; break; case "get-remotesessions": methodName = "Get_RemoteSessions"; break; default: Console.WriteLine("No Valid Method entered"); Environment.Exit(0); break; } var method = typeof(PowerView).GetMethod(methodName); if (method == null) { Logger.Write_Warning($@"There is no method does match with '{methodName}'"); return; } if (args.Length > 1 && (args[1].ToLower() == "-help" || args[1].ToLower() == "help")) { Logger.Write_Output(Environment.NewLine + GetMethodHelp(method)); Environment.Exit(0); } ParameterInfo[] parameters = method.GetParameters(); if (parameters == null || parameters.Length != 1) { Logger.Write_Warning("The method has no parameter"); return; } Type paramType = Type.GetType(parameters[0].ParameterType.FullName); if (paramType == null) { Logger.Write_Warning($@"There is no type for '{parameters[0].ParameterType.FullName}'"); return; } object argObject = Activator.CreateInstance(paramType, false); if (argObject != null) { for (int i = 1; i < args.Length; i++) { var argName = args[i]; if (argName.StartsWith("-")) { argName = argName.TrimStart(new[] { '-' }); PropertyInfo pinfo = paramType.GetProperty(argName); if (pinfo == null) { continue; } i++; try { var strValue = ""; if (i < args.Length) { strValue = args[i]; } else { if (pinfo.PropertyType.FullName == "System.Boolean") { strValue = "true"; } } TypeConverter tc = TypeDescriptor.GetConverter(pinfo.PropertyType); if (tc is BooleanConverter) { if (strValue.StartsWith("-")) { i--; strValue = "true"; } } else if (tc is ArrayConverter) { tc = new StringArrayConverter(); } else if (pinfo.PropertyType.FullName == "System.Net.NetworkCredential") { tc = new NetworkCredentialConverter(); } var argValue = tc.ConvertFromString(strValue); pinfo.SetValue(argObject, argValue); } catch (Exception ex) { Logger.Write_Warning($@"Parsing Error {argName}: {ex.Message}"); } } } } // Leaving out try catch block to see errors for now var ret = method.Invoke(null, new[] { argObject }); ObjectDumper.Write(ret); }
public void TooLongListSeparator() { StringArrayConverter vrt = new StringArrayConverter(); vrt.ListSeparator = " "; }
public void ConvertFromNullReference() { StringArrayConverter vrt = new StringArrayConverter(); vrt.ConvertFrom(null); }
public void ConvertFromNonSupportedOptionBails() { StringArrayConverter vrt = new StringArrayConverter(); vrt.ConvertFrom(12); }
public void TryConvertTo_result_is_default_if_value_is_null(StringArrayConverter sut) { _ = sut.TryConvertTo(null, out object result); Assert.That(result, Is.EqualTo(default));
new private void SaveFormEntry(FormDescription description) { FormsManager manager = FormsManager.GetManager(); FormEntry userHostAddress = null; if (_isProgressiveForm && _priorFormEntry == null) { FieldControl keyField = this.FieldControls.Where(fc => ((IFormFieldControl)fc).MetaField.FieldName == _progressiveKeyFieldName).FirstOrDefault() as FieldControl; if (keyField != null && !String.IsNullOrWhiteSpace((string)keyField.Value)) { _priorFormEntry = GetPriorFormEntryByKeyField((string)keyField.Value); } } if (_isProgressiveForm && _priorFormEntry != null) { string entryType = String.Format("{0}.{1}", manager.Provider.FormsNamespace, this.FormData.Name); userHostAddress = manager.GetFormEntry(entryType, _priorFormEntry.Id); } else { userHostAddress = manager.CreateFormEntry(string.Format("{0}.{1}", manager.Provider.FormsNamespace, description.Name)); } foreach (IFormFieldControl formFieldControl in this.FieldControls) { FieldControl fieldControl = formFieldControl as FieldControl; object value = fieldControl.Value; if (fieldControl.GetType().Name == "FormFileUpload") { typeof(FormsControl) .GetMethod("SaveFiles", BindingFlags.Static | BindingFlags.NonPublic) .Invoke(null, new object[] { value as UploadedFileCollection, manager, description, userHostAddress, formFieldControl.MetaField.FieldName }); } else if (!(value is List <string>)) { userHostAddress.SetValue(formFieldControl.MetaField.FieldName, value); } else { StringArrayConverter stringArrayConverter = new StringArrayConverter(); object obj = stringArrayConverter.ConvertTo((value as List <string>).ToArray(), typeof(string)); userHostAddress.SetValue(formFieldControl.MetaField.FieldName, obj); } } userHostAddress.IpAddress = this.Page.Request.UserHostAddress; userHostAddress.SubmittedOn = DateTime.UtcNow; Guid userId = ClaimsManager.GetCurrentUserId(); userHostAddress.UserId = userId == Guid.Empty ? Guid.Parse(_sfTrackingCookie.Value) : userId; if (userHostAddress.UserId == userId) { userHostAddress.Owner = userId; } if (SystemManager.CurrentContext.AppSettings.Multilingual) { userHostAddress.Language = CultureInfo.CurrentUICulture.Name; } FormDescription formData = this.FormData; formData.FormEntriesSeed = formData.FormEntriesSeed + (long)1; userHostAddress.ReferralCode = this.FormData.FormEntriesSeed.ToString(); manager.SaveChanges(); }