public void SaveExchnageRateHistory() { try { var rate = dbContext.OperationZoneExchangeRates.Where(p => p.IsActive == true).ToList(); if (rate != null) { OperationZoneExchangeRateHistory hrate; foreach (var Obj in rate) { hrate = new OperationZoneExchangeRateHistory(); hrate.OperationZoneId = Obj.OperationZoneId; hrate.CurrencyCode = Obj.CurrencyCode; hrate.ExchangeRate = Obj.ExchangeRate; hrate.ExchangeType = Obj.ExchangeType; hrate.StartDate = DateTime.UtcNow.AddDays(-1); hrate.FinishDate = DateTime.UtcNow; dbContext.OperationZoneExchangeRateHistories.Add(hrate); dbContext.SaveChanges(); } } } catch (Exception ex) { } }
public void SaveExchangeRate(List <FrayteExchangeRate> exchangeRate) { try { OperationZoneExchangeRate exRate; if (exchangeRate != null && exchangeRate.Count > 0) { foreach (var rr in exchangeRate) { if (rr.OperationZoneExchangeRateId > 0) { exRate = dbContext.OperationZoneExchangeRates.Find(rr.OperationZoneExchangeRateId); if (exRate != null) { exRate.OperationZoneId = rr.OperationZone.OperationZoneId; if (rr.IsActive) { exRate.ExchangeRate = rr.ExchangeRate; } else { exRate.ExchangeRate = 0; } exRate.IsActive = rr.IsActive; dbContext.Entry(exRate).State = System.Data.Entity.EntityState.Modified; dbContext.SaveChanges(); } //Insert ExchangeRate In History OperationZoneExchangeRateHistory hrate = new OperationZoneExchangeRateHistory(); hrate.OperationZoneId = rr.OperationZone.OperationZoneId; hrate.CurrencyCode = rr.CurrencyDetail.CurrencyCode; hrate.ExchangeRate = rr.ExchangeRate; hrate.ExchangeType = rr.ExchangeType; hrate.StartDate = DateTime.UtcNow.AddDays(-1); hrate.FinishDate = DateTime.UtcNow; dbContext.OperationZoneExchangeRateHistories.Add(hrate); dbContext.SaveChanges(); } else { exRate = dbContext.OperationZoneExchangeRates.Where(p => p.OperationZoneId == rr.OperationZone.OperationZoneId && p.CurrencyCode == rr.CurrencyDetail.CurrencyCode).FirstOrDefault(); if (exRate != null) { exRate.ExchangeRate = rr.IsActive ? rr.ExchangeRate : 0; exRate.IsActive = rr.IsActive; dbContext.SaveChanges(); } else if (rr.IsActive) { exRate = new OperationZoneExchangeRate(); exRate.OperationZoneId = rr.OperationZone.OperationZoneId; exRate.CurrencyCode = rr.CurrencyDetail.CurrencyCode; exRate.ExchangeRate = rr.ExchangeRate; exRate.ExchangeType = rr.ExchangeType; exRate.IsActive = true; dbContext.OperationZoneExchangeRates.Add(exRate); dbContext.SaveChanges(); } } } } } catch (Exception ex) { } }