/// <summary> /// Modify business channel override /// </summary> /// <param name="businessChannelOverride">BusinessChannelOverride to update</param> /// <param name="modifyVisible">modifyVisible</param> /// <param name="modifyCommissions">modifyCommissions</param> public void ModifyBusinessChannelOverride(BusinessChannelOverride businessChannelOverride, bool modifyVisible, bool modifyCommissions) { using (var tx = new BusinessTransaction()) { //Values needed for the previous Business Channel Override var oldBusinessChannelOverride = businessChannelOverrideDao.GetById(businessChannelOverride.Id); oldBusinessChannelOverride.Channel = channelDao.GetById(businessChannelOverride.ChannelId); oldBusinessChannelOverride.Business = businessDao.GetByKey(businessChannelOverride.BusinessId); SetOverrideValues(businessChannelOverride, modifyVisible, modifyCommissions, oldBusinessChannelOverride); //opted out if was opted in and now is not visible if (businessChannelOverride.IsVisible == false) { businessChannelOptInDao.RemoveByChannelAndBusiness(businessChannelOverride.BusinessId, businessChannelOverride.ChannelId); } businessChannelOverrideDao.Modify(businessChannelOverride); UpsertCommissionDisplay(businessChannelOverride); var channelName = oldBusinessChannelOverride.Channel.Name; // Record business event if (!businessChannelOverride.HasSameVisibility(oldBusinessChannelOverride)) { eventTrackingManager.CreateBusinessEventAsync(businessChannelOverride.BusinessId, BusinessEventTypesEnum.ChannelSettingUpdated, businessChannelOverride.ChannelId.ToString(), String.Format("{0}: Set channel to {1}", channelName, businessChannelOverride.IsVisible == true ? "visible" : "hidden")); } //Send CRM email message //if both overrides are the same, we don't bother if (!businessChannelOverride.HasSameCommissions(oldBusinessChannelOverride)) { eventTrackingManager.CreateBusinessEventAsync(businessChannelOverride.BusinessId, BusinessEventTypesEnum.ChannelSettingUpdated, businessChannelOverride.ChannelId.ToString(), String.Format("{0}: Edit Business Commission", channelName)); emailManager.SendCommissionUpdateEmail(businessChannelOverride, oldBusinessChannelOverride); } tx.Commit(); } }
/// <summary> /// Create business channel override /// </summary> /// <param name="modifyVisible">modifyVisible</param> /// <param name="modifyCommissions">modifyCommissions</param> /// <param name="businessChannelOverride">businessChannelOverride to create</param> public void CreateBusinessChannelOverride(BusinessChannelOverride businessChannelOverride, bool modifyVisible, bool modifyCommissions) { using (var tx = new BusinessTransaction()) { //Values needed for the previous BCO var channel = channelDao.GetById(businessChannelOverride.ChannelId); var business = businessDao.GetByKey(businessChannelOverride.BusinessId); var oldBusinessChannelOverride = new BusinessChannelOverride() { DisplayCommission = channel.CommissionDisplay, DistributorCommission = channel.DistributorCommission, EviivoCommission = channel.EviivoCommission, Business = business, Channel = channel }; SetOverrideValues(businessChannelOverride, modifyVisible, modifyCommissions, oldBusinessChannelOverride); //opted out if was opted in and now is not visible if (businessChannelOverride.IsVisible == false) { businessChannelOptInDao.RemoveByChannelAndBusiness(businessChannelOverride.BusinessId, businessChannelOverride.ChannelId); } businessChannelOverrideDao.Create(businessChannelOverride); UpsertCommissionDisplay(businessChannelOverride); // Record business events and sending mail if (!businessChannelOverride.HasSameVisibility(oldBusinessChannelOverride)) { eventTrackingManager.CreateBusinessEventAsync(businessChannelOverride.BusinessId, BusinessEventTypesEnum.ChannelSettingUpdated, businessChannelOverride.ChannelId.ToString(), String.Format("{0}: Set channel to {1}", channel.Name, businessChannelOverride.IsVisible == true ? "visible" : "hidden")); } if (businessChannelOverride.DistributorCommission != null || businessChannelOverride.EviivoCommission != null || businessChannelOverride.DisplayCommission != null) { eventTrackingManager.CreateBusinessEventAsync(businessChannelOverride.BusinessId, BusinessEventTypesEnum.ChannelSettingUpdated, businessChannelOverride.ChannelId.ToString(), String.Format("{0}: Edit Business Commission", channel.Name)); emailManager.SendCommissionUpdateEmail(businessChannelOverride, oldBusinessChannelOverride); } tx.Commit(); } }