Example #1
0
        public int SaveOrUpdate(CurrencyRate entity)
        {
            if (String.IsNullOrEmpty(entity.FromCurrency) || String.IsNullOrEmpty(entity.ToCurrency) || entity.Rate < 0)
            {
                throw new ArgumentException();
            }

            if (entity.ID > 0 && entity.Rate == 0)
            {
                return(Delete(entity.ID));
            }

            var dbEntity = new DbCurrencyRate
            {
                Id            = entity.ID,
                FromCurrency  = entity.FromCurrency.ToUpper(),
                ToCurrency    = entity.ToCurrency.ToUpper(),
                Rate          = entity.Rate,
                CreateOn      = entity.CreateOn == DateTime.MinValue ? DateTime.UtcNow : entity.CreateOn,
                CreateBy      = entity.CreateBy == Guid.Empty ? _securityContext.CurrentAccount.ID : entity.CreateBy,
                LastModifedOn = DateTime.UtcNow,
                LastModifedBy = _securityContext.CurrentAccount.ID,
                TenantId      = TenantID
            };

            CrmDbContext.Update(dbEntity);
            CrmDbContext.SaveChanges();

            return(dbEntity.Id);
        }
Example #2
0
        public List <CurrencyRate> SetCurrencyRates(List <CurrencyRate> rates)
        {
            using var tx = CrmDbContext.Database.BeginTransaction();

            var items = Query(CrmDbContext.CurrencyRate).AsNoTracking();

            CrmDbContext.RemoveRange(items);

            foreach (var rate in rates)
            {
                var itemToInsert = new DbCurrencyRate
                {
                    FromCurrency  = rate.FromCurrency.ToUpper(),
                    ToCurrency    = rate.ToCurrency.ToUpper(),
                    Rate          = rate.Rate,
                    CreateBy      = _securityContext.CurrentAccount.ID,
                    CreateOn      = DateTime.UtcNow,
                    LastModifedBy = _securityContext.CurrentAccount.ID,
                    LastModifedOn = DateTime.UtcNow,
                    TenantId      = TenantID
                };

                CrmDbContext.CurrencyRate.Add(itemToInsert);

                CrmDbContext.SaveChanges();

                rate.ID = itemToInsert.Id;
            }

            tx.Commit();

            return(rates);
        }