/// <summary> /// Создает дочерние документы и прикрепляет их к родительскому документу. /// <para></para> /// Дочерние документы добавляются в материлы заявок родительского документа. /// </summary> /// <param name="attachDto">Модель для прикрепления дочерних документов к родительскому документов.</param> /// <returns>Асинхронная операция.</returns> public async Task CreateMaterialsAndAttachThemToParent(AttachMaterialDto attachDto) { await AddAttachmentsToMaterials(new[] { attachDto.Parent }); IEnumerable <MaterialDetailDto> childMaterials = attachDto.Children; foreach (MaterialDetailDto childMaterial in childMaterials) { childMaterial.Id = await CreateDocumentAndGetId(childMaterial); } await AddAttachmentsToMaterials(childMaterials); List <int> childMaterialIds = childMaterials .Select(material => material.Id.Value) .ToList(); await _executor .GetHandler <LinkDocumentWithParentRequestsHandler>() .Process(handler => handler.ExecuteAsync(attachDto.Parent.Id ?? 0, childMaterialIds)); }
public async Task <IActionResult> AttachToParent([FromBody] AttachMaterialDto attachDto) { await _uploadService.CreateMaterialsAndAttachThemToParent(attachDto); return(Ok()); }