public void Execute()
        {
            Session session = SessionHelper.GetSession(_callbackQueryEventArgs.CallbackQuery.From.Id);

            if (!session.ChannelId.Equals(0))
            {
                ChannelEntity  channel  = _queryChannelService.Get(session.ChannelId).ResponseData;
                RssEntity      rss      = _queryRssService.Get(Convert.ToInt32(_callbackQueryEventArgs.CallbackQuery.Data.Substring(16, _callbackQueryEventArgs.CallbackQuery.Data.Length - 16))).ResponseData;
                Response <int> response = _commandRssChatService.Add(new RssChatRelationEntity()
                {
                    Url = rss.Url, ChatId = 0, AliasName = rss.AliasName, UserId = session.UserId
                }, channel.Name);
                if (response.Type.Equals(ResponseType.Success))
                {
                    _telegramBotClient.SendTextMessageAsync(_callbackQueryEventArgs.CallbackQuery.From.Id, "selected rss is attached to channel.");
                }
                else if (response.Type.Equals(ResponseType.AlreadyExist))
                {
                    _telegramBotClient.SendTextMessageAsync(_callbackQueryEventArgs.CallbackQuery.From.Id, "chosen rss is already attached to selected channel.");
                }
                else
                {
                    _telegramBotClient.SendTextMessageAsync(_callbackQueryEventArgs.CallbackQuery.From.Id, "null data [SESSION ERROR]");
                }
            }
            else
            {
                _telegramBotClient.SendTextMessageAsync(_callbackQueryEventArgs.CallbackQuery.From.Id, "choose group/channel first.");
            }
        }
Пример #2
0
        public Response <int> Add(RssEntity input)
        {
            Response <RssEntity> validation = _queryRssAggregate.Get(input.UserId, input.AliasName);

            if (validation.ResponseData != null)
            {
                return(Response <int> .Create(0, CDO.Enums.Response.ResponseType.AlreadyExist));
            }
            return(_commandRssAggregate.Add(input));
        }
Пример #3
0
        public Response <int> Remove(RssEntity input)
        {
            Response <RssEntity> validation = _queryRssAggregate.Get(Convert.ToInt32(input.AliasName));

            if (validation.ResponseData != null)
            {
                return(_commandRssAggregate.Remove(validation.ResponseData));
            }
            else
            {
                return(Response <int> .Create(0, CDO.Enums.Response.ResponseType.NotFound));
            }
        }
Пример #4
0
        public RssEntity Get(string feed)
        {
            XmlTextReader reader = new XmlTextReader(feed);
            XmlDocument   doc    = new XmlDocument();

            doc.Load(reader);
            namespaceMgr = new XmlNamespaceManager(doc.NameTable);
            XmlNodeList channels = doc.SelectNodes("rss/channel");
            RssEntity   entity   = new RssEntity();

            foreach (XmlNode item in channels)
            {
                RssChannel channel = new RssChannel();
                channel.description = GetText(item, "description");
                channel.generator   = GetText(item, "generator");
                channel.language    = GetText(item, "language");
                string lastBuildDate = GetText(item, "lastBuildDate");
                if (!string.IsNullOrEmpty(lastBuildDate))
                {
                    channel.lastBuildDate = Convert.ToDateTime(lastBuildDate);
                }
                channel.link  = GetText(item, "link");
                channel.title = GetText(item, "title");
                channel.Items = new List <RssItem>();
                XmlNodeList items = item.SelectNodes("item");
                if (items == null)
                {
                    continue;
                }
                foreach (XmlNode rssItem in items)
                {
                    RssItem ritem = new RssItem();
                    foreach (XmlNode itemDetail in rssItem.ChildNodes)
                    {
                        SetPropertyValue <RssItem>(ritem, itemDetail.LocalName, itemDetail.InnerText);
                    }
                    channel.Items.Add(ritem);
                }
                entity.Channels.Add(channel);
            }

            return(entity);
        }
 public Response <int> Update(RssEntity input)
 {
     _commandRssRepo.Update(input);
     return(Response <int> .Create(input.Id, ResponseType.Success));
 }
Пример #6
0
 public Response <int> Update(RssEntity input)
 {
     return(_commandRssAggregate.Update(input));
 }