void ValidateActivity(Guid id, string activityName) { var entity = this.Get(id); var channelcode = entity.GetAttributeValue <OptionSetValue>("channeltypecode"); ExceptionThrow.IfNull(channelcode, "channeltypecode", "CampaignActivity must has 'channeltypecode' (optionset) field."); if (!Enum.IsDefined(typeof(CampaignActivityChannelTypeCode), channelcode.Value)) { ExceptionThrow.IfNotExpectedValue(channelcode.Value, "channelcode", 0, "'channeltypecode' value is not defined in 'CampaignActivityHelper.CampaignActivityChannelTypeCode' enum"); } CampaignActivityChannelTypeCode channelEnum = (CampaignActivityChannelTypeCode)channelcode.Value; if (!activityName.ToLower().Trim().Equals(channelEnum.Description())) { ExceptionThrow.IfNotExpectedValue(activityName.ToLower().Trim(), "Entity.LogicalName", channelEnum.Description(), string.Format("Entity.LogicalName ('{0}') and CampaignActivity ChannelCode ('{1}') must be same value.", activityName.ToLower().Trim(), channelEnum.Description())); } }
/// <summary> /// Create a <c>Campaign Activity</c>. /// </summary> /// <param name="campaignId"><c>Campaign</c> Id</param> /// <param name="subject">Subject</param> /// <param name="description">Description</param> /// <param name="typeCode"><see cref="CampaignActivityTypeCode"/> type code</param> /// <param name="channelCode"><see cref="CampaignActivityChannelTypeCode"/> channel code</param> /// <param name="customTypeCode">If you're using your custom typecode set this, otherwise you can set "0 (zero)" or null</param> /// <param name="customChannelCode">If you're using your custom channel code set this, otherwise you can set "0 (zero)" or null</param> /// <returns> /// Created record Id (<see cref="Guid"/>) /// </returns> public Guid Create(Guid campaignId, string subject, string description, CampaignActivityTypeCode typeCode, CampaignActivityChannelTypeCode channelCode, int customTypeCode = 0, int customChannelCode = 0) { ExceptionThrow.IfGuidEmpty(campaignId, "campaignId"); ExceptionThrow.IfNullOrEmpty(subject, "subject"); int activityTypeCode = (int)typeCode; int activityChannelCode = (int)channelCode; if (typeCode == CampaignActivityTypeCode.CustomTypeCode) { ExceptionThrow.IfNegative(customTypeCode, "customTypeCode"); activityTypeCode = customTypeCode; } if (channelCode == CampaignActivityChannelTypeCode.CustomChannelTypeCode) { ExceptionThrow.IfNegative(customChannelCode, "customChannelCode"); activityChannelCode = customChannelCode; } Entity entity = new Entity(this.EntityName); entity["regardingobjectid"] = new EntityReference("campaign", campaignId); entity["subject"] = subject; entity["typecode"] = new OptionSetValue(activityTypeCode); entity["channeltypecode"] = new OptionSetValue(activityChannelCode); entity["description"] = description; return(this.OrganizationService.Create(entity)); }