public virtual HttpRequest Create(PutDocumentRequest request)
        {
            var httpRequest = CreateFor<PutDocumentRequest>(HttpMethod.Put, GenerateRequestUrl(request.Id, request.Rev));

            httpRequest.SetIfMatch(request.Rev);
            httpRequest.SetContent(request.Content);

            return httpRequest;
        }
Example #2
0
        public async Task <IActionResult> Edit([Bind(include: "_id, _rev, name, description, isDone, tag")] TodoTask model)
        {
            using (var client = new MyCouchClient(new DbConnectionInfo("http://localhost:5984/", "tasks")))
            {
                var content = JsonConvert.SerializeObject(model);

                var request = new PutDocumentRequest(model._id, model._rev, content);

                var response = await client.Documents.PutAsync(request);

                return(RedirectToAction("Index", "Tasks"));
            }
        }
Example #3
0
        public static void GenerateDisambiguosPages()
        {
            IDictionary <string, string> mappingName = new Dictionary <string, string>
            {
                { "VS.core-docs", "DotNetCore" },
                { "MSDN.aspnetAPIDocs", "ASPDotNetCore" }
            };
            CancellationToken cancellationToken = new CancellationToken();
            HashSet <string>  blackList         = new HashSet <string> {
                "index", "toc.json", "_themes"
            };
            var duplicatedDcouments = DocumentDict.Where(e => !blackList.Contains(e.Key.Split('/').First()) && e.Value.Count > 1);

            foreach (var duplicatedDocument in duplicatedDcouments)
            {
                Console.WriteLine(duplicatedDocument.Key);
                var disabmbigousPage = GetDisambigousPage(duplicatedDocument.Key,
                                                          duplicatedDocument.Value.Select(
                                                              v => Tuple.Create <string, string>(v.DepotName, $"{v.AssetId}({mappingName[v.DepotName]})")).ToArray());
                var url = GetBlobUrlByCreatingOne(disabmbigousPage);
                var putDisambigousPageRequest = new PutDocumentRequest
                {
                    Metadata         = new Dictionary <string, object>(),
                    ContentSourceUri = GetCorrectedCanonicalUrl(url, duplicatedDocument.Key)
                };
                foreach (var item in duplicatedDocument.Value)
                {
                    var newAssetId         = $"{item.AssetId}({mappingName[item.DepotName]})";
                    var putDocumentRequest = new PutDocumentRequest
                    {
                        Metadata         = item.Metadata,
                        ContentSourceUri = GetCorrectedCanonicalUrl(InsertDisambiguatedDisclaimer(item.ContentUri, item.AssetId), newAssetId)
                    };
                    Client.PutDocument(newDepotName, newAssetId, item.Locale,
                                       item.ProductVersion, "master", putDocumentRequest, null, cancellationToken).Wait();
                    putDisambigousPageRequest.Metadata = item.Metadata;
                    Client.PutDocument(newDepotName, item.AssetId, item.Locale,
                                       item.ProductVersion, "master", putDisambigousPageRequest, null, cancellationToken).Wait();
                }
            }
            Console.ReadKey();
        }
Example #4
0
 public static Task <DocumentHeaderResponse> PerformAsync(this IMyCouchClient client, PutDocumentRequest request)
 {
     return(client.Documents.PutAsync(request));
 }