Example #1
0
        public static DateTime?DateTimeFromSLMessage(SLMessage message)
        {
            string   timestamp       = message.ts.Substring(0, message.ts.IndexOf('.'));
            DateTime initialDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
            long     timeInterval    = 0;

            if (long.TryParse(timestamp, out timeInterval))
            {
                return(initialDateTime = initialDateTime.AddSeconds(timeInterval).ToLocalTime());
            }
            return(null);
        }
        private List <SLMessage> ExtractChannelsHistory(dynamic data)
        {
            List <SLMessage> messageList        = new List <SLMessage>();
            bool             convertationResult = false;

            dynamic messages = DictionaryExtension.TryGetValue(data, "messages", out convertationResult);

            foreach (dynamic item in messages)
            {
                SLMessage message = new SLMessage();
                message.type = DictionaryExtension.TryGetValue(item, "type", out convertationResult);
                message.text = DictionaryExtension.TryGetValue(item, "text", out convertationResult);
                //TODO: message.file_description
                message.user_id = DictionaryExtension.TryGetValue(item, "user", out convertationResult);
                message.upload  = DictionaryExtension.TryGetValue(item, "upload", out convertationResult);
                message.ts      = DictionaryExtension.TryGetValue(item, "ts", out convertationResult);
                messageList.Add(message);
            }

            messageList.OrderBy(message => DateTimeHelper.DateTimeFromSLMessage(message)).ToList().Reverse();
            return(messageList);
        }
        private List <SLMessage> ExtractGroupsHistory(dynamic data)
        {
            List <SLMessage> messageList        = new List <SLMessage>();
            bool             convertationResult = false;

            dynamic messages = DictionaryExtension.TryGetValue(data, "messages", out convertationResult);

            foreach (dynamic item in messages)
            {
                SLMessage message = new SLMessage();
                message.type = DictionaryExtension.TryGetValue(item, "type", out convertationResult);
                message.text = DictionaryExtension.TryGetValue(item, "text", out convertationResult);

                var fileData = DictionaryExtension.TryGetValue(item, "file", out convertationResult);
                if (fileData != null)
                {
                    message.file_description.id        = DictionaryExtension.TryGetValue(fileData, "id", out convertationResult);
                    message.file_description.timestamp = DictionaryExtension.TryGetValue(fileData, "timestamp", out convertationResult);
                    message.file_description.name      = DictionaryExtension.TryGetValue(fileData, "name", out convertationResult);
                    message.file_description.title     = DictionaryExtension.TryGetValue(fileData, "title", out convertationResult);
                    message.file_description.mimetype  = DictionaryExtension.TryGetValue(fileData, "mimetype", out convertationResult);
                    message.file_description.filetype  = DictionaryExtension.TryGetValue(fileData, "filetype", out convertationResult);
                    message.file_description.user_id   = DictionaryExtension.TryGetValue(fileData, "user", out convertationResult);
                    //message.file_description.pretty_type = DictionaryExtension.TryGetValue(fileData, "pretty_type", out convertationResult);
                    //message.file_description.editable = DictionaryExtension.TryGetValue(fileData, "editable", out convertationResult);
                    //message.file_description.size = DictionaryExtension.TryGetValue(fileData, "size", out convertationResult);
                    //message.file_description.mode = DictionaryExtension.TryGetValue(fileData, "mode", out convertationResult);
                    //message.file_description.is_external = DictionaryExtension.TryGetValue(fileData, "is_external", out convertationResult);
                    //message.file_description.external_type = DictionaryExtension.TryGetValue(fileData, "external_type", out convertationResult);
                    //message.file_description.is_public = DictionaryExtension.TryGetValue(fileData, "is_public", out convertationResult);
                    //message.file_description.public_url_shared = DictionaryExtension.TryGetValue(fileData, "public_url_shared", out convertationResult);
                    //message.file_description.url = DictionaryExtension.TryGetValue(fileData, "url", out convertationResult);
                    //message.file_description.url_download = DictionaryExtension.TryGetValue(fileData, "url_download", out convertationResult);
                    //message.file_description.url_private = DictionaryExtension.TryGetValue(fileData, "url_private", out convertationResult);
                    //message.file_description.url_private_download = DictionaryExtension.TryGetValue(fileData, "url_private_download", out convertationResult);
                    //message.file_description.permalink = DictionaryExtension.TryGetValue(fileData, "permalink", out convertationResult);
                    //message.file_description.permalink_public = DictionaryExtension.TryGetValue(fileData, "permalink_public", out convertationResult);
                    //message.file_description.edit_link = DictionaryExtension.TryGetValue(fileData, "editlink", out convertationResult);
                    //message.file_description.preview = DictionaryExtension.TryGetValue(fileData, "preview", out convertationResult);
                    //message.file_description.preview_highlight = DictionaryExtension.TryGetValue(fileData, "preview_highlight", out convertationResult);
                    //message.file_description.lines = DictionaryExtension.TryGetValue(fileData, "lines", out convertationResult);
                    //message.file_description.lines_more = DictionaryExtension.TryGetValue(fileData, "lines_more", out convertationResult);

                    //var channelsData = DictionaryExtension.TryGetValue(fileData, "channels", out convertationResult);
                    //if (channelsData != null)
                    //{
                    //    foreach (string channel_id in channelsData)
                    //    {
                    //        message.file_description.channels_ids.Add(channel_id);
                    //    }
                    //}

                    //var groupsData = DictionaryExtension.TryGetValue(fileData, "groups", out convertationResult);
                    //if (groupsData != null)
                    //{
                    //    foreach (string group_id in channelsData)
                    //    {
                    //        message.file_description.groups_ids.Add(group_id);
                    //    }
                    //}

                    //var imsData = DictionaryExtension.TryGetValue(fileData, "ims", out convertationResult);
                    //if (imsData != null)
                    //{
                    //    foreach (string ims_id in imsData)
                    //    {
                    //        message.file_description.ims_ids.Add(ims_id);
                    //    }
                    //}

                    //message.file_description.comments_count = DictionaryExtension.TryGetValue(fileData, "comments_count", out convertationResult);
                }

                message.user_id = DictionaryExtension.TryGetValue(item, "user", out convertationResult);
                message.upload  = DictionaryExtension.TryGetValue(item, "upload", out convertationResult);
                message.ts      = DictionaryExtension.TryGetValue(item, "ts", out convertationResult);
                messageList.Add(message);
            }

            messageList.OrderBy(message => DateTimeHelper.DateTimeFromSLMessage(message)).ToList().Reverse();
            return(messageList);
        }
 public SLChatPostMessageResult()
 {
     message = new SLMessage();
 }