public SegmentResult AddSegment(string segmentName, SegmentFilter filter) { var url = $"{this._baseUrl}/groups/addSegment/"; var request = new SegmentAddRequest { ApiKey = this._apiKey, GroupId = filter.GroupId, MatchType = filter.MatchType, Name = segmentName, Rules = new List <SegmentRule>() }; request.Rules = GetRules(filter); var xmlRequest = this._parser.Serialize(request); var httpResponse = this._httpClient.Request(url, xmlRequest); if (httpResponse.Status != HttpStatus.Successful) { return(new SegmentResult { Status = Status.Error, Message = "Http error" }); } var result = this._parser.Deserialize <SegmentResult>(httpResponse.Result); return(result); }
public void SerializeSegmentAddRequest() { IXmlParser xmlParser = new DefaultXmlParser(); var request = new SegmentAddRequest { ApiKey = "44-121312131223", GroupId = 42131, MatchType = MatchType.All, Name = "My New Segment", Rules = new List <SegmentRule> { new SegmentRule { Field = SegmentField.FirstName, Modifier = SegmentModifier.Contains, Value = "hotmail.com" }, new SegmentRule { Field = SegmentField.DateAdded, Modifier = SegmentModifier.IsAfter, Value = "2014-04-21" } } }; var requestXml = xmlParser.Serialize(request); var xml = File.ReadAllText("SegmentAddRequest.xml"); Assert.AreEqual(xml, requestXml); }