private void SaveToDB(MobicomMerchantReport.MerchantReport report) { foreach (var reportMerchant in report.Merchant) { Merchant merchant = _entities.Merchants.SingleOrDefault(m => m.Code == reportMerchant.id && m.BankId == _bank.Id); if (merchant == null) { merchant = _entities.Merchants.CreateObject(); merchant.Id = Guid.NewGuid(); merchant.Bank = _bank; _entities.AddToMerchants(merchant); } merchant.CreateTime = reportMerchant.CreateTime; merchant.EditTime = reportMerchant.EditTime; merchant.CloseTime = reportMerchant.CloseTime; merchant.OwnerId = reportMerchant.Owner.id; merchant.Name = reportMerchant.name; merchant.Code = reportMerchant.id; foreach (var reportProvider in reportMerchant.ProviderLinks) { var operatorId = GetOperatorIdByCode(reportProvider.id); Merchants2Operators m2o = _entities.Merchants2Operators.SingleOrDefault(i => i.Merchant.Id == merchant.Id && i.OperatorParameter.Code == reportProvider.id); OperatorParameter operatorParameter; if (m2o == null) { operatorParameter = _entities.OperatorParameters.CreateObject(); operatorParameter.Id = Guid.NewGuid(); _entities.AddToOperatorParameters(operatorParameter); m2o = _entities.Merchants2Operators.CreateObject(); m2o.Id = Guid.NewGuid(); m2o.Merchant = merchant; m2o.OperatorParameter = operatorParameter; m2o.BrandId = operatorId; _entities.AddToMerchants2Operators(m2o); } else { operatorParameter = m2o.OperatorParameter; } operatorParameter.Code = reportProvider.id; operatorParameter.ProviderCode = reportProvider.Category.providerCode; operatorParameter.MinAmount = reportProvider.Category.MinAmount; operatorParameter.MaxAmount = reportProvider.Category.MaxAmount; operatorParameter.AbonentInterest = reportProvider.Category.AbonentInterest; operatorParameter.Active = reportProvider.Category.active; } } _entities.SaveChanges(); }
private void TrySaveChanges() { try { _storage.SaveChanges(); } catch (Exception e) { EventLog.WriteEntry("UniplatServiceWCF", "Ошибка сохранения данных в БД : " + e, EventLogEntryType.Error); _storage = new UPSEntities(); } }