Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class RedditFeedValueReader: IValueReader
- {
- public readonly string FieldName;
- public bool UseValueProperty { get; set; }
- public RedditFeedValueReader(string fieldName)
- {
- this.FieldName = fieldName;
- }
- public ReadResult CanRead(object source, DataAccessContext context)
- {
- bool flag = source != null && source is RedditSharp.Things.Post;
- return new ReadResult(DateTime.Now)
- {
- ReadValue = source,
- WasValueRead = flag,
- };
- }
- public ReadResult Read(object source, DataAccessContext context)
- {
- var flag = false;
- object readValue = (object) null;
- var feeditem = source as RedditSharp.Things.Post;
- if (feeditem != null)
- {
- if (FieldName == "Title" && !string.IsNullOrEmpty(feeditem.Title))
- {
- readValue = feeditem.Title;
- flag = true;
- }
- else if (FieldName == "AuthorName" && !string.IsNullOrEmpty(feeditem.AuthorName))
- {
- readValue = feeditem.AuthorName;
- flag = true;
- }
- else if (FieldName == "SelfText" && !string.IsNullOrEmpty(feeditem.SelfText))
- {
- readValue = feeditem.SelfText;
- flag = true;
- }
- else if (FieldName == "Url" && !string.IsNullOrEmpty(feeditem.Url.ToString()))
- {
- readValue = feeditem.Url;
- flag = true;
- }
- }
- return new ReadResult(DateTime.Now)
- {
- WasValueRead = flag,
- ReadValue = readValue
- };
- }
- }
- private static readonly Guid TemplateId = Guid.Parse("{68BD9AAD-635F-40F3-9ACD-711662C59EEC}");
- private IValueReader ValueReader { get; set; }
- private IValueWriter ValueWriter { get; set; }
- public RedditFeedFieldValueAccessorConverter(IItemModelRepository repository) : base(repository)
- {
- this.SupportedTemplateIds.Add(TemplateId);
- }
- protected override ConvertResult<IValueAccessor> ConvertSupportedItem(ItemModel source)
- {
- var accessor = base.Convert(source);
- if (accessor == null)
- {
- return null;
- }
- var fieldName = base.GetStringValue(source, RedditFeedFieldValueValueAccessorItemModel.RedditFeedFieldName);
- if (string.IsNullOrEmpty(fieldName))
- {
- return null;
- }
- ValueWriter = this.GetValueWriter(source);
- // ValueReader= this.GetValueReader(source) ?? new RedditFeedValueReader(fieldName);
- if (accessor.ValueReader == null)
- {
- accessor.ValueReader = new RedditFeedValueReader(fieldName);
- }
- if (ValueWriter == null)
- {
- ValueWriter = new PropertyValueWriter(fieldName);
- }
- return this.PositiveResult((IValueAccessor) new ValueAccessor());
- }
- public class RedditFeedFieldValueAccessorConverter:ValueAccessorConverter
- {
- private static readonly Guid TemplateId = Guid.Parse("{68BD9AAD-635F-40F3-9ACD-711662C59EEC}");
- private IValueReader ValueReader { get; set; }
- private IValueWriter ValueWriter { get; set; }
- public RedditFeedFieldValueAccessorConverter(IItemModelRepository repository) : base(repository)
- {
- this.SupportedTemplateIds.Add(TemplateId);
- }
- protected override ConvertResult<IValueAccessor> ConvertSupportedItem(ItemModel source)
- {
- var accessor = base.Convert(source);
- if (accessor == null)
- {
- return null;
- }
- var fieldName = base.GetStringValue(source, RedditFeedFieldValueValueAccessorItemModel.RedditFeedFieldName);
- if (string.IsNullOrEmpty(fieldName))
- {
- return null;
- }
- ValueWriter = this.GetValueWriter(source);
- // ValueReader= this.GetValueReader(source) ?? new RedditFeedValueReader(fieldName);
- if (accessor.ValueReader == null)
- {
- accessor.ValueReader = new RedditFeedValueReader(fieldName);
- }
- if (ValueWriter == null)
- {
- ValueWriter = new PropertyValueWriter(fieldName);
- }
- return this.PositiveResult((IValueAccessor) new ValueAccessor());
- }
- [SupportedIds("{68BD9AAD-635F-40F3-9ACD-711662C59EEC}")]
- public class RedditFeedFieldValueAccessorConverter : ValueAccessorConverter
- {
- public RedditFeedFieldValueAccessorConverter(IItemModelRepository repository) : base(repository)
- {
- }
- protected override IValueReader GetValueReader(ItemModel source)
- {
- IValueReader valueReader = base.GetValueReader(source);
- if (valueReader != null)
- {
- return valueReader;
- }
- var fieldName = base.GetStringValue(source, RedditFeedFieldValueValueAccessorItemModel.RedditFeedFieldName);
- if (string.IsNullOrEmpty(fieldName))
- {
- return null;
- }
- return new RedditFeedValueReader(fieldName);
- }
- protected override IValueWriter GetValueWriter(ItemModel source)
- {
- IValueWriter valueWriter = base.GetValueWriter(source);
- if (valueWriter != null)
- {
- return valueWriter;
- }
- var fieldName = base.GetStringValue(source, RedditFeedFieldValueValueAccessorItemModel.RedditFeedFieldName);
- if (string.IsNullOrEmpty(fieldName))
- {
- return null;
- }
- return new PropertyValueWriter(fieldName);
- }
- }
Add Comment
Please, Sign In to add comment