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)); }
public IActionResult GetLoanSetting() { var setting = DoGetLoanSetting(); var dto = new LoanSettingEditDto { MinDepositAmount = setting.MinDepositAmount, MinDepositDay = setting.MinDepositDay, InterestRates = setting.InterestRates.Select(l => new InterestRateEditDto { ID = l.ID, Publisher = l.Publisher, Rate = l.Rate, StartExecutionDate = l.StartExecutionDate.ToLocalTime(), PublishDate = l.PublishDate }).ToList() }; return(this.AlpsActionOk(dto)); }