public mitigationinfo UpdateMitigations(string build_id, string action, string comment, string flaw_id_list) { action = action.ToLower(); var acceptedActions = new[] { "comment", "fp", "appdesign", "osenv", "netenv", "rejected", "accepted" }; if (!acceptedActions.Contains(action)) { throw new ArgumentException("Action must be either \"comment\", \"fp\", \"appdesign\", \"osenv\", \"netenv\", \"rejected\", \"accepted\""); } if (action.Equals("accepted") || action.Equals("rejected")) { var currentMitigations = GetMitigationForFlaw(build_id, flaw_id_list); var mitigationActions = new[] { ActionTypeType.appdesign, ActionTypeType.osenv, ActionTypeType.netenv, ActionTypeType.fp }; if (!mitigationActions.Any(x => x == currentMitigations.First().mitigation_action.First().action)) { throw new ArgumentException("The latest action on this flaw is not \"appdesign\", \"osenv\", \"netenv\", \"fp\" so there is nothing to accept or reject."); } } var xml = _wrapper.UpdateMitigationInfo(build_id, action, comment, flaw_id_list); return(XmlParseHelper.Parse <mitigationinfo>(xml)); }