Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
                        }
                    }
                }
            }
        }