public void Update(DomainCustomerCredit domainCredit) { var credit = Mapper.Map <CustomerCredit>(domainCredit); Uow.CustomerCreditRepository.Update(credit); Uow.SaveChanges(); }
public void Add(int creditRequestId) { var creditRequest = Uow.CreditRequestRepository.Get(creditRequestId); var dateNow = GlobalValues.BankDateTime; var credit = new DomainCustomerCredit() { CreditId = creditRequest.CreditId, CreditSum = creditRequest.Sum, Currency = creditRequest.Currency, CustomerId = creditRequest.CustomerId, StartDate = dateNow.Date, EndDate = dateNow.Date.AddMonths(creditRequest.MonthCount), ContractNumber = GenerateContractNumber(), Bill = new DomainBill() { Number = GenerateBillNumber(), CustomerId = creditRequest.CustomerId, Sum = creditRequest.Sum }, CreditRequestId = creditRequestId }; var bankBill = Uow.BillRepository.GetByNumber(ConfigurationManager.AppSettings.Get("BankBillNumber")); if (bankBill.Sum - creditRequest.Sum < 0) { throw BankClientException.ThrowNotHaveMoney(); } bankBill.Sum -= creditRequest.Sum; var paymentPlan = new CalculationCreditService().CalculatePaymentPlan(credit.CreditSum, creditRequest.Credit.PercentRate, creditRequest.MonthCount, credit.StartDate).ToList(); credit.CreditPaymentPlanItems = paymentPlan; Uow.CustomerCreditRepository.Add(Mapper.Map <CustomerCredit>(credit)); Uow.SaveChanges(); credit.Customer = Mapper.Map <DomainCustomer>(Uow.CustomerRepository.Get(credit.CustomerId)); credit.Credit = Mapper.Map <DomainCredit>(Uow.CreditRepository.Get(credit.CreditId)); new CreditDocService().FillConcreteContract(credit); }
public void FillConcreteContract(DomainCustomerCredit customerCredit) { if (!File.Exists(_templateDocPath)) { Directory.CreateDirectory(Path.GetDirectoryName(_templateDocPath)); GenerateCreditContractTemplate(); } var byteArray = File.ReadAllBytes(_templateDocPath); // using (var fs = new FileStream(string.Format("{0}{1}.docx", CreditContractsDocPath, customerCredit.ContractNumber),FileMode.Create)) { using (var stream = new MemoryStream()) { stream.Write(byteArray, 0, byteArray.Length); using (var wordDoc = WordprocessingDocument.Open(stream, true)) { var body = wordDoc.MainDocumentPart.Document.Body; var runs = body.Descendants <Run>().ToList(); var i = 0; //contract number FindAndReplace(ref i, runs, ContractNumberPlace, " " + customerCredit.ContractNumber); //day & month FindAndReplace(ref i, runs, DaymonthPlace, customerCredit.StartDate.ToString("dd MM")); //year FindAndReplace(ref i, runs, YearPlace, " " + customerCredit.StartDate.ToString("yyyy")); //customerPlace FindAndReplace(ref i, runs, CustomerPlace, string.Format("{0} {1}{2}", customerCredit.Customer.Lastname, customerCredit.Customer.Firstname, customerCredit.Customer.Patronymic != null ? " " + customerCredit.Customer.Patronymic : ""), UnderlineValues.None); //credit name FindAndReplace(ref i, runs, CreditPlace, customerCredit.Credit.Name); //sum FindAndReplace(ref i, runs, CreditSumPlace, customerCredit.CreditSum.ToString()); //since FindAndReplace(ref i, runs, SincePlace, customerCredit.StartDate.ToString("dd.MM.yyyy")); //end date FindAndReplace(ref i, runs, UntilPlace, customerCredit.EndDate.ToString("dd.MM.yyyy")); //percent rate FindAndReplace(ref i, runs, PercentRatePlace, customerCredit.Credit.PercentRate.ToString()); //payment day FindAndReplace(ref i, runs, PaymentDayPlace, customerCredit.StartDate.ToString("dd")); wordDoc.MainDocumentPart.Document.Save(); // wordDoc.MainDocumentPart.Document.Save(fs); File.WriteAllBytes( string.Format("{0}{1}.docx", _creditContractsDocPath, customerCredit.ContractNumber), stream.ToArray()); } } } }