コード例 #1
0
        public async Task <IActionResult> SaveLoanSetting([FromBody] LoanSettingEditDto dto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            LoanSetting setting = DoGetLoanSetting();

            if (setting.MinDepositDay != dto.MinDepositDay)
            {
                setting.MinDepositDay = dto.MinDepositDay;
            }
            if (setting.MinDepositAmount != dto.MinDepositAmount)
            {
                setting.MinDepositAmount = dto.MinDepositAmount;
            }
            var deletedRates = setting.InterestRates.Where(p => !dto.InterestRates.Any(l => l.ID == p.ID));
            var addedRates   = dto.InterestRates.Where(p => !setting.InterestRates.Any(l => l.ID == p.ID));

            foreach (var r in deletedRates)
            {
                setting.InterestRates.Remove(r);
            }
            foreach (var r in addedRates)
            {
                setting.InterestRates.Add(InterestRate.Create(r.StartExecutionDate, r.Rate, User.Identity.Name));
            }
            await _context.SaveChangesAsync();

            return(this.AlpsActionOk(setting));
        }
コード例 #2
0
        private LoanSetting DoGetLoanSetting()
        {
            LoanSetting setting = _context.LoanSettings.Include(p => p.InterestRates).FirstOrDefault();

            if (setting == null)
            {
                setting = LoanSetting.Create(0, 0);
                _context.LoanSettings.Add(setting);
            }
            _context.SaveChanges();
            return(setting);
        }