public IActionResult Post([FromBody] TagsExportWordsSettings settings)
        {
            //NGRAM COUNT LIST VALIDATION
            var nGramCount  = globalStore.DataSets.Get(DataSetName).DataSet.NGramCount;
            var nGramResult = CommonValidators.ValidateNGramList(settings.NGramList, nGramCount);

            if (nGramResult.IsFailure)
            {
                return(HttpErrorResult(StatusCodes.Status400BadRequest, nGramResult.Error));
            }

            //TAGS VALIDATION
            List <TagElastic> tags;

            if (settings.TagIdList == null)
            {
                tags = tagService.GetTagElasticLeafs(DataSetName);
            }
            else
            {
                tags = tagService.GetTagElastic(DataSetName, settings.TagIdList);
                if (tags.Count < settings.TagIdList.Count)
                {
                    var missingTagIds = settings.TagIdList.Except(tags.Select(t => t.Id)).ToList();
                    return(HttpErrorResult(StatusCodes.Status400BadRequest,
                                           string.Format(ServiceResources.TheFollowingTagIdsNotExistInTheDataSet_0, string.Join(", ", missingTagIds))));
                }
            }

            var process = tagService.ExportWords(DataSetName, settings, tags);

            return(HttpObjectResult(StatusCodes.Status202Accepted, process));
        }
Exemple #2
0
        public Process ExportWords(string dataSetName, TagsExportWordsSettings settings, List <TagElastic> tags)
        {
            var process = processHandler.Create(
                ProcessTypeEnum.TagsExportWords,
                dataSetName, settings,
                string.Format(TagResources.ExportingWordsFrom_0_TagOfDataset_1, tags.Count, dataSetName));

            processHandler.Start(process, (tokenSource) =>
                                 tagsHandler.ExportWords(process.Id, dataSetName, settings.TagIdList, settings.NGramList, tokenSource.Token, urlProvider.GetHostUrl()));

            return(process.ToProcessModel());
        }
Exemple #3
0
        public async Task <ClientResponseWithObject <Process> > WordsExportAsync(TagsExportWordsSettings settings)
        {
            var client = new ApiClient(_configuration, WordsExportEndpoint);

            return(await client.SendAsync <Process>(System.Net.Http.HttpMethod.Post, settings, null, null, Headers, true));
        }
 public Task <ClientResponseWithObject <Process> > WordsExportAsync(TagsExportWordsSettings settings)
 {
     throw new NotImplementedException();
 }