示例#1
0
        public LoanPercentSetting Find([FromBody] LoanPercentQueryModel query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }
            query.BranchId = _branchContext.Branch.Id;

            return(_repository.Find(query));
        }
        public async Task <Stream> Build(Contract model)
        {
            var template = Template();
            var stream   = await _storage.Load(template, ContainerName.AnnuityTemplates);

            var user    = _userRepository.Get(_sessionContext.UserId);
            var profile = _loanPercentRepository.Find(new LoanPercentQueryModel
            {
                BranchId       = _branchContext.Branch.Id,
                CollateralType = model.CollateralType,
                CardType       = model.ContractData.Client.CardType,
                LoanCost       = model.LoanCost,
                LoanPeriod     = model.LoanPeriod
            });

            var memoryStream = new MemoryStream();
            await stream.CopyToAsync(memoryStream);

            memoryStream.Position = 0;

            using (var document = WordprocessingDocument.Open(memoryStream, true))
            {
                var paragraphs = document.MainDocumentPart.Document.Body.Descendants <Paragraph>();
                foreach (var paragraph in paragraphs)
                {
                    var text = SearchParts(paragraph.InnerText, model, user, profile);
                    if (!paragraph.InnerText.Equals(text))
                    {
                        var properties = paragraph.Descendants <RunProperties>().FirstOrDefault();

                        paragraph.RemoveAllChildren <Run>();
                        var run = paragraph.AppendChild(new Run());
                        if (properties != null)
                        {
                            run.RunProperties = (RunProperties)properties.Clone();
                        }
                        run.AppendChild(new Text(text));
                    }
                }

                return(memoryStream);
            }
        }