Esempio n. 1
0
        internal override DealParameter Init(XmlElement element)
        {
            var e = element.GetText("Event");

            switch (e)
            {
            case "LOCATION":
                var position = new Position
                {
                    Latitude  = double.Parse(element.GetText("Latitude")),
                    Longitude = double.Parse(element.GetText("Longitude")),
                    Precision = double.Parse(element.GetText("Precision"))
                };
                PositionStore.Set(element.GetText("FromUserName"), position);
                return(Result(MessageType.Position, position));

            case "subscribe":
                var           key                = element.GetText("EventKey");
                var           ticket             = element.GetText("Ticket");
                ScanParameter subscribeParameter = null;
                if (!string.IsNullOrEmpty(key) || !string.IsNullOrEmpty(ticket))
                {
                    subscribeParameter = new ScanParameter();
                    if (!string.IsNullOrEmpty(key))
                    {
                        subscribeParameter.Scene = key.Replace("qrscene_", string.Empty);
                    }
                    if (!string.IsNullOrEmpty(ticket))
                    {
                        subscribeParameter.Ticket = ticket;
                    }
                }
                return(Result(MessageType.Subscribe, subscribeParameter));

            case "unsubscribe":
                return(Result(MessageType.Unsubscribe, null));

            case "SCAN":
                ScanParameter scanParameter = new ScanParameter
                {
                    Scene  = element.GetText("EventKey"),
                    Ticket = element.GetText("Ticket")
                };
                return(Result(MessageType.Scan, scanParameter));

            case "CLICK":
                return(Result(MessageType.Click, element.GetText("EventKey")));

            case "VIEW":
                return(Result(MessageType.View, element.GetText("EventKey")));

            case "MASSSENDJOBFINISH":
                var massSendJobFinish = new MassSendJobFinish
                {
                    MsgId       = long.Parse(element.GetText("MsgID")),
                    Status      = element.GetText("Status"),
                    TotalCount  = int.Parse(element.GetText("TotalCount")),
                    FilterCount = int.Parse(element.GetText("FilterCount")),
                    SentCount   = int.Parse(element.GetText("SentCount")),
                    ErrorCount  = int.Parse(element.GetText("ErrorCount"))
                };
                return(Result(MessageType.MassSendJobFinish, massSendJobFinish));

            case "TEMPLATESENDJOBFINISH":
                var templateSendJobFinish = new TemplateSendJobFinish
                {
                    MsgId  = long.Parse(element.GetText("MsgID")),
                    Status = element.GetText("Status")
                };
                return(Result(MessageType.TemplateSendJobFinish, templateSendJobFinish));

            default:
                return(Result(MessageType.UnknowEvent, element));
            }
        }