using System;

namespace TweetLib.Utils.Data {
	public sealed class InjectedString {
		public enum Position {
			Before,
			After
		}

		private readonly Position position;
		private readonly string search;
		private readonly string html;

		public InjectedString(Position position, string search, string html) {
			this.position = position;
			this.search = search;
			this.html = html;
		}

		public string InjectInto(string targetHTML) {
			int index = targetHTML.IndexOf(search, StringComparison.Ordinal);

			if (index == -1) {
				return targetHTML;
			}

			int cutIndex;

			switch (position) {
				case Position.Before:
					cutIndex = index;
					break;

				case Position.After:
					cutIndex = index + search.Length;
					break;

				default:
					return targetHTML;
			}

			return targetHTML.Insert(cutIndex, html);
		}
	}
}