/// <summary> /// Create a <c>Campaign</c>. /// </summary> /// <param name="name">Name</param> /// <param name="code">Code. /// If you don't provide this data, MS CRM gives an automated number /// </param> /// <param name="typeCode"><see cref="CampaignTypeCode"/></param> /// <param name="description"></param> /// <param name="transactioncurrencyId"></param> /// <param name="actualStart">Actual Start date</param> /// <param name="actualEnd">Actual End date</param> /// <param name="proposedStart">Propesed Start date</param> /// <param name="proposedEnd">Proposed End date</param> /// <param name="status"><see cref="CampaignActiveStatusCode"/> status code</param> /// <param name="customStatusCode">If you're using your custom statuscodes set this, otherwise you can set "0 (zero)" or null</param> /// <returns> /// Created record Id (<see cref="Guid"/>) /// </returns> public Guid Create(string name, string code, CampaignTypeCode typeCode, string description, Guid transactioncurrencyId, DateTime?actualStart, DateTime?actualEnd, DateTime?proposedStart, DateTime?proposedEnd, CampaignActiveStatusCode status, int customStatusCode = 0) { ExceptionThrow.IfNullOrEmpty(name, "name"); ExceptionThrow.IfGuidEmpty(transactioncurrencyId, "transactioncurrencyId"); int statusCode = (int)status; if (status == CampaignActiveStatusCode.CustomStatusCode) { ExceptionThrow.IfNegative(customStatusCode, "customStatusCode"); statusCode = customStatusCode; } Entity entity = new Entity(this.EntityName); entity["name"] = name; entity["typecode"] = new OptionSetValue((int)typeCode); entity["transactioncurrencyid"] = new EntityReference("transactioncurrency", transactioncurrencyId); entity["istemplate"] = false; entity["description"] = description; entity["statuscode"] = new OptionSetValue(statusCode); if (!string.IsNullOrEmpty(code)) { entity["codename"] = code; } if (actualStart.HasValue && actualStart.Value != DateTime.MinValue) { entity["actualstart"] = actualStart.Value; } if (actualEnd.HasValue && actualEnd.Value != DateTime.MinValue) { entity["actualend"] = actualEnd.Value; } if (proposedStart.HasValue && proposedStart.Value != DateTime.MinValue) { entity["proposedstart"] = proposedStart.Value; } if (proposedEnd.HasValue && proposedEnd.Value != DateTime.MinValue) { entity["proposedend"] = proposedEnd.Value; } return(this.OrganizationService.Create(entity)); }
/// <summary> /// Create a <c>Campaign</c>. /// </summary> /// <param name="name">Name</param> /// <param name="code">Code. /// If you don't provide this data, MS CRM gives an automated number /// </param> /// <param name="typeCode"><see cref="CampaignTypeCode"/></param> /// <param name="description"></param> /// <param name="transactioncurrencyId"></param> /// <param name="actualStart">Actual Start date</param> /// <param name="actualEnd">Actual End date</param> /// <param name="statusCode"><see cref="CampaignActiveStatusCode"/> status code</param> /// <param name="customStatusCode">If you're using your custom statuscodes set this, otherwise you can set "0 (zero)" or null</param> /// <returns> /// Created record Id (<see cref="Guid"/>) /// </returns> public Guid Create(string name, string code, CampaignTypeCode typeCode, string description, Guid transactioncurrencyId, DateTime actualStart, DateTime actualEnd, CampaignActiveStatusCode statusCode, int customStatusCode = 0) { return(Create(name, code, typeCode, description, transactioncurrencyId, actualStart, actualEnd, null, null, statusCode, customStatusCode)); }