Example #1
0
        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);
        }
Example #2
0
        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);
        }