I have an existing method which essentially hardcodes an Enum value into it.
What I want to do, however, is to pass an Enum value to the method. Then, substitute the passed in value for the hardcoded field. The value that I want to substitute is: ImpactType.Item3ModerateLimited (at the end of the code).
Way method is right now:
strRemedyTktResponse = IssueRemedyTicket(sb1.ToString()); private string IssueRemedyTicket(string webServiceErrInfo) { string strResponse = string.Empty; IncidentService.HPD_IncidentInterface_Create_WSService webService = new IncidentService.HPD_IncidentInterface_Create_WSService(); try { webService.AuthenticationInfoValue = new IncidentService.AuthenticationInfo(); webService.AuthenticationInfoValue.userName = "smocustomer"; webService.AuthenticationInfoValue.password = "ryder123"; webService.Timeout = 1000 * 60; strResponse = webService.HelpDesk_Submit_Service( new[] { ConfigurationManager.AppSettings["AssignedGroup"].ToString() } //Assigned_Group , "" //Assigned_Group_Shift_Name , "Ryder System, Inc." //Assigned_Support_Company , "FMS" //Assigned_Support_Organization , "" //Assignee , "Software" //Categorization_Tier_1 , "Handheld Computer" //Categorization_Tier_2 , "Webservice Failure" //Categorization_Tier_3 , "" //CI_Name , "" //Closure_Manufacturer , "" //Closure_Product_Category_Tier1 , "" //Closure_Product_Category_Tier1 , "" //Closure_Product_Category_Tier3 , "" //Product_Model_Version , "" //Closure_Product_Name , "" //Department , "SMO" //First_Name , ImpactType.Item3ModerateLimited Definition of ImpactType field:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18408")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:HPD_IncidentInterface_Create_WS")] public enum ImpactType { /// <remarks/> [System.Xml.Serialization.XmlEnumAttribute("1-Extensive/Widespread")] Item1ExtensiveWidespread, /// <remarks/> [System.Xml.Serialization.XmlEnumAttribute("2-Significant/Large")] Item2SignificantLarge, /// <remarks/> [System.Xml.Serialization.XmlEnumAttribute("3-Moderate/Limited")] Item3ModerateLimited, /// <remarks/> [System.Xml.Serialization.XmlEnumAttribute("4-Minor/Localized")] Item4MinorLocalized, } *I was thinking about doing something like below, but am getting the following error on the "Name" property.
Cannot convert from 'string' to 'ImpactType' *
private string IssueRemedyTicket(string webServiceErrInfo, int impactType) { string strResponse = string.Empty; IncidentService.HPD_IncidentInterface_Create_WSService webService = new IncidentService.HPD_IncidentInterface_Create_WSService(); try { webService.AuthenticationInfoValue = new IncidentService.AuthenticationInfo(); webService.AuthenticationInfoValue.userName = "smocustomer"; webService.AuthenticationInfoValue.password = "ryder123"; webService.Timeout = 1000 * 60; var value = ""; if (impactType == 2) value = ImpactType.Item2SignificantLarge.ToString(); else value = ImpactType.Item3ModerateLimited.ToString(); strResponse = webService.HelpDesk_Submit_Service( new[] { ConfigurationManager.AppSettings["AssignedGroup"].ToString() } //Assigned_Group , "" //Assigned_Group_Shift_Name , "Ryder System, Inc." //Assigned_Support_Company , "FMS" //Assigned_Support_Organization , "" //Assignee , "Software" //Categorization_Tier_1 , "Handheld Computer" //Categorization_Tier_2 , "Webservice Failure" //Categorization_Tier_3 , "" //CI_Name , "" //Closure_Manufacturer , "" //Closure_Product_Category_Tier1 , "" //Closure_Product_Category_Tier1 , "" //Closure_Product_Category_Tier3 , "" //Product_Model_Version , "" //Closure_Product_Name , "" //Department , "SMO" //First_Name , ((XmlEnumAttribute)typeof(ImpactType) .GetMember(value.ToString())[0] .GetCustomAttributes(typeof(XmlEnumAttribute), false)[0]).Name
private string IssueRemedyTicket(string webServiceErrInfo, ImpactType impactType)and passing it into thewebService.HelpDesk_Submit_Servicecall like:, impactType?XmlEnumAttributevalue? If so, you can use reflection as shown here stackoverflow.com/questions/18737950/…