public void Add(SearchIndex index)
        {
            var existing = Find(index.Url);

            if (existing == null)
            {
                db.Add(index.Url, index);
            }
        }
        /// <summary>
        /// Adds new search index to elastic search
        /// </summary>
        /// <param name="index"></param>
        public void Add(SearchIndex index)
        {
            var existing = Find(index.Url);

            if (existing == null)
            {
                _client.IndexDocument(index);
            }
        }
        public void Update(SearchIndex index)
        {
            var old = Find(index.Url);

            if (old != null)
            {
                index.Created    = old.Created;
                index.LastUpdate = DateTime.UtcNow;
                db[index.Url]    = index;
            }
            else
            {
                throw new Exception("Cannot update record that does not exist");
            }
        }
        /// <summary>
        /// Updates existing index in storage
        /// </summary>
        /// <param name="index"></param>
        public void Update(SearchIndex index)
        {
            var old = Find(index.Url);

            if (old != null)
            {
                index.Created    = old.Created;
                index.LastUpdate = DateTime.UtcNow;
                _client.Update <SearchIndex>(index.Url, (u => u.Doc(index)
                                                         ));
            }
            else
            {
                throw new Exception("Cannot update record that does not exist");
            }
        }