public void PerformTestSetup() { MessageName = "Cancel"; var contractEntity = EntityFactory.CreateContract(); CancelContractRequest = new CancelContractRequest { ContractId = contractEntity.Id, CancelDate = DateTime.Now, Status = new OptionSetValue(5) }; }
/// <summary> /// Cancel a <c>Contract</c>. /// <para> /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.cancelcontractrequest(v=crm.8).aspx /// </para> /// </summary> /// <param name="id"><c>Conract</c> Id</param> /// <param name="cancellationDate"> /// Contract cancellation date. /// You can pass <c>null</c> value, default value is <see cref="DateTime.UtcNow"/> or <see cref="DateTime.Now"/> depend on <c>useUtc</c> parameter on constructor. /// </param> /// <param name="status"> /// <see cref="ContractCanceledStatusCode"/> 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> /// <see cref="CancelContractResponse"/> /// </returns> public CancelContractResponse Cancel(Guid id, DateTime?cancellationDate, ContractCanceledStatusCode status, int customStatusCode = 0) { ExceptionThrow.IfGuidEmpty(id, "id"); DateTime now = this._useUtc ? DateTime.UtcNow : DateTime.Now; int statusCode = (int)status; if (status == ContractCanceledStatusCode.CustomStatusCode) { ExceptionThrow.IfNegative(customStatusCode, "customStatusCode"); statusCode = customStatusCode; } CancelContractRequest request = new CancelContractRequest() { ContractId = id, Status = new OptionSetValue(statusCode), CancelDate = cancellationDate.HasValue ? cancellationDate.Value : now }; return((CancelContractResponse)this.OrganizationService.Execute(request)); }