示例#1
0
        /// <summary>
        /// Updates from other RSSettings instances, leaves Id & SalesArea
        /// Update Mode:
        /// 0=Current sales area only (include demographics) - Not passed through
        /// 1=All sales areas (include demographics)
        /// 2=All sales areas (exclude demographics)
        /// 3=All sales areas (Demographics only)
        /// </summary>
        /// <param name="isrSettings"></param>
        /// <param name="updateMode"></param>
        public void UpdateFrom(RSSettings rsSettings, int updateMode)
        {
            // Update main settings
            if (updateMode == 1 || updateMode == 2)
            {
                DefaultDeliverySettingsList.Clear();
                foreach (var deliverySettings in rsSettings.DefaultDeliverySettingsList)
                {
                    DefaultDeliverySettingsList.Add((RSDeliverySettings)deliverySettings.Clone());
                }
            }

            // Update demographics
            if (updateMode == 1 || updateMode == 3)
            {
                DemographicsSettings.Clear();
                foreach (var demographicSettings in rsSettings.DemographicsSettings)
                {
                    var newDemographicSettings = new RSDemographicSettings()
                    {
                        DemographicId = demographicSettings.DemographicId
                    };
                    demographicSettings.DeliverySettingsList.ForEach(ds => newDemographicSettings.DeliverySettingsList.Add((RSDeliverySettings)ds.Clone()));
                    DemographicsSettings.Add(newDemographicSettings);
                }
            }
        }
示例#2
0
 public bool IsSame(RSDemographicSettings rsSettingsDemographicSettings)
 {
     if (DemographicId == rsSettingsDemographicSettings.DemographicId)
     {
         return(RSDeliverySettings.IsSame(this.DeliverySettingsList, rsSettingsDemographicSettings.DeliverySettingsList));
     }
     return(false);
 }
示例#3
0
        /// <summary>
        /// Returns whether instance has same settings as input
        /// Compare Mode:
        /// 0=Full settings comparison (include demographics)
        /// 1=Top level settings comparison (exclude demographics)
        /// 2=Demographic settings only
        /// </summary>
        /// <param name="isrSettings"></param>
        /// <param name="compareMode"></param>
        /// <returns></returns>
        public bool IsSame(RSSettings rsSettings, int compareMode)
        {
            // Compare main settings
            if (compareMode == 0 || compareMode == 1)
            {
                if (!RSDeliverySettings.IsSame(DefaultDeliverySettingsList, rsSettings.DefaultDeliverySettingsList))
                {
                    return(false);
                }
            }

            // Compare demographics
            if (compareMode == 0 || compareMode == 2)
            {
                return(RSDemographicSettings.IsSame(DemographicsSettings, rsSettings.DemographicsSettings));
            }
            return(true);
        }