public Task <NumberTagResolveResult> Resolve(GenerateNumberRequest request, IEnumerable <string> tags, CancellationToken cancellationToken) { var result = new NumberTagResolveResult { Date = Date, Values = Values.Where(x => tags.Contains(x.Key)).ToDictionary(x => x.Key, x => x.Value, Numerator.TagComparer) }; return(Task.FromResult(result)); }
public async Task <NumberTagResolveResult> Resolve(GenerateNumberRequest request, IEnumerable <string> tags, CancellationToken cancellationToken) { if (request.EntityTypeCode == DocumentType.EntityTypeCode) { var searchResult = await _repository.Search(new DocumentSearchRequest { Uid = request.EntityUid }, cancellationToken); var document = searchResult.Rows.FirstOrDefault(); if (document != null) { DocumentType documentType = null; var result = new NumberTagResolveResult { Date = document.DocumentDate, Values = new Dictionary <string, string>(Numerator.TagComparer) }; foreach (var tag in tags) { // todo: read document type and company number tags from separate table (service) if (tag == SupportedTags.DocumentType) { if (documentType == null) { var classifierRepository = _classifierRepositoryFactory.GetNamedOrDefaultService(ClassifierTypeCode.DocumentType); documentType = (DocumentType)await classifierRepository.Get(ClassifierTypeCode.DocumentType, document.DocumentTypeUid, cancellationToken); } result.Values[tag] = "CRR"; // documentType.Code; } else if (tag == SupportedTags.Company) { // todo: resolve tag } } return(result); } } return(null); }