示例#1
0
        public async Task <IActionResult> GetContractAdviceTemplatesByTags(string company, [FromBody, Required] IEnumerable <TagDto> request)
        {
            List <TemplatesBestMatchDto> templateList = new List <TemplatesBestMatchDto>();

            IEnumerable <EntitiesBestMatchDto> result = await _tagService.ListContractAdviceTemplatesByTagsAsync(company, request);

            var documentTemplates = await _physicalDocumentGenerationService.GetTemplates(PhysicalDocumentType.ContractAdvice, company, true);

            foreach (var item in result.ToList())
            {
                var template = documentTemplates.FirstOrDefault(x => x.Id == item.EntityExternalId);
                if (template == null)
                {
                    continue;
                }

                templateList.Add(new TemplatesBestMatchDto()
                {
                    EntityId           = item.EntityId,
                    PhysicalDocumentId = item.EntityExternalId,
                    BestMatch          = item.BestMatch,
                    Name        = template.Name,
                    Description = template.Description
                });
            }

            return(this.Ok(templateList));
        }
        public async Task <ActionResult <IEnumerable <TemplateWithTagsDto> > > GetContractAdviceTemplatesWithTagsByCompanyAsync(string company)
        {
            var templatesResult = new List <TemplateWithTagsDto>();

            var templates = await physicalDocumentGenerationService.GetTemplates(PhysicalDocumentType.ContractAdvice, company);

            if (templates.Any())
            {
                var templatesIds = templates.Select(t => t.Id).ToList();
                var entityTags   = await tagServiceForContractAdvice.GetContractAdviceTemplateWithTagsByIdsAsync(company, templatesIds);

                foreach (var templateId in templatesIds)
                {
                    var entities = entityTags.Where(e => e.EntityExternalId == templateId).Distinct();

                    foreach (var entity in entities)
                    {
                        templatesResult.Add(
                            new TemplateWithTagsDto
                        {
                            EntityId         = entity.EntityId,
                            EntityExternalId = entity.EntityExternalId,
                            Name             = templates.FirstOrDefault(t => t.Id == templateId).Name,
                            Tags             = entity.Tags,
                            IsDeactivated    = entity.IsDeactivated
                        });
                    }
                }
            }

            return(Ok(templatesResult));
        }
        public async Task <ActionResult <CollectionViewModel <PhysicalDocumentTemplateDto> > > GetTemplates(
            string company,
            [Range(1, long.MaxValue)] long documentTypeId,
            string module)
        {
            var documentTemplates = await _physicalDocumentGenerationService.GetTemplates((PhysicalDocumentType)documentTypeId, company, true, module);

            var templates = documentTemplates
                            .Select(i => new PhysicalDocumentTemplateDto
            {
                DocumentTemplateId = i.Id,
                Name             = i.Name,
                Path             = i.Path,
                Description      = i.Description,
                CreatedDateTime  = i.CreatedDateTime,
                CreatedBy        = i.CreatedBy,
                ModifiedDateTime = i.ModifiedDateTime,
                ModifiedBy       = i.ModifiedBy
            }).ToList();

            var response = new CollectionViewModel <PhysicalDocumentTemplateDto>(templates);

            return(Ok(response));
        }