private decimal?PartnerLoadInternal(PartnerWrapper item, ICollection <AddressBook> wmsaddresscol, List <ErrorWrapper> retMessage, IBaseManager <Partner> mgr, IUnitOfWork uow) { var partner = new Partner(); partner = MapTo(item, partner); if (string.IsNullOrEmpty(partner.PartnerName) && string.IsNullOrEmpty(partner.PartnerFullName)) { const string message = "Партнер не создан. Наименование партнера не может быть пустым."; retMessage.Add(new ErrorWrapper { ERRORCODE = MessageHelper.WarningCode.ToString(), ERRORMESSAGE = message }); Log.Info(message); return(null); } AddOrUpdatePartnerAddress(partner, wmsaddresscol, item.DONOTUPDATELEGALADDRESS > 0); SetXmlIgnore(partner, false); mgr.Insert(ref partner); Log.InfoFormat("Загружен партнер «{0}» с ID = {1}", item.PARTNERNAME, partner.PartnerId); var ewr = new ErrorWrapper { ERRORCODE = MessageHelper.SuccessCode.ToString(), ERRORMESSAGE = string.Format("Загружен партнер «{0}»", item.PARTNERNAME) }; retMessage.Add(ewr); if (item.GPVs != null) { using (var gpvMgr = IoC.Instance.Resolve <IBaseManager <PartnerGpv> >()) { gpvMgr.SetUnitOfWork(uow); foreach (var gpvObj in item.GPVs) { var gpv = new PartnerGpv(); gpv = MapTo(gpvObj, gpv); gpv.GParamValKey = partner.PartnerId.To <decimal>(); SetXmlIgnore(gpv, false); gpvMgr.Insert(ref gpv); Log.InfoFormat("Загружена GPV {0} (ID = {1})", gpv.GlobalParamCode_R, gpv.GParamID); } } } return(partner.PartnerId); }
private void ProcessLoadGpv(PartnerWrapper item, decimal partnerId, IUnitOfWork uow) { using (var gpvMgr = IoC.Instance.Resolve <IBaseManager <PartnerGpv> >()) { gpvMgr.SetUnitOfWork(uow); var valuesGpv = "'" + string.Join("','", item.GPVs.Select(i => i.GLOBALPARAMCODE_R_PARTNERGPV)) + "'"; var gpvFilter = string.Format("{0} = '{1}' and {2} = 'PARTNER' and {3} in ({4})", SourceNameHelper.Instance.GetPropertySourceName(typeof(PartnerGpv), PartnerGpv.GParamValKeyPropertyName), partnerId, SourceNameHelper.Instance.GetPropertySourceName(typeof(PartnerGpv), PartnerGpv.GParamVal2EntityPropertyName), SourceNameHelper.Instance.GetPropertySourceName(typeof(PartnerGpv), PartnerGpv.GlobalParamCodePropertyName), valuesGpv); var gpvs = gpvMgr.GetFiltered(gpvFilter).ToArray(); foreach (var gpvWrapper in item.GPVs) { if (gpvWrapper.GPARAMVALVALUE_PARTNERGPV == "1") { if (gpvs.Any(i => i.GlobalParamCode_R == gpvWrapper.GLOBALPARAMCODE_R_PARTNERGPV && i.GparamValValue == "1")) { Log.DebugFormat("Существует требуемый GPV «{0}»", gpvWrapper.GLOBALPARAMCODE_R_PARTNERGPV); } else { var existGpv = gpvs.FirstOrDefault(i => i.GlobalParamCode_R == gpvWrapper.GLOBALPARAMCODE_R_PARTNERGPV); var gpv = new PartnerGpv(); if (existGpv != null) { gpv = existGpv; gpv.GparamValValue = "1"; SetXmlIgnore(gpv, true); gpvMgr.Update(gpv); Log.InfoFormat("Обновлен GPV «{0}» (ID = {1})", gpv.GlobalParamCode_R, gpv.GParamID); } else { gpv = MapTo(gpvWrapper, gpv); gpv.GParamValKey = partnerId; SetXmlIgnore(gpv, false); gpvMgr.Insert(ref gpv); Log.InfoFormat("Загружена GPV «{0}» (ID = {1})", gpv.GlobalParamCode_R, gpv.GParamID); } } } else { if (gpvs.Any(i => i.GlobalParamCode_R == gpvWrapper.GLOBALPARAMCODE_R_PARTNERGPV)) { Log.DebugFormat("Существует требуемый GPV «{0}»", gpvWrapper.GLOBALPARAMCODE_R_PARTNERGPV); } else { var gpv = new PartnerGpv(); gpv = MapTo(gpvWrapper, gpv); gpv.GParamValKey = partnerId; SetXmlIgnore(gpv, false); gpvMgr.Insert(ref gpv); Log.InfoFormat("Загружена GPV «{0}» (ID = {1})", gpv.GlobalParamCode_R, gpv.GParamID); } } } } }