/// <summary> /// Add a <c>Contract Detail</c> to <c>Contract</c> with required data. /// </summary> /// <param name="contractId"><c>Contract</c> Id</param> /// <param name="customerType"><see cref="CustomerType"/></param> /// <param name="customerId">Customer Id</param> /// <param name="title">Title (description) of contract line</param> /// <param name="startDate">Start date</param> /// <param name="endDate">End date</param> /// <param name="totalPrice">Total price</param> /// <param name="totalAllotments">Total number of <c>minutes</c> or <c>case (incident)</c> allowed for the contract line.</param> /// <returns> /// Created record Id (<see cref="System.Guid"/>) /// </returns> public Guid Add(Guid contractId, CustomerType customerType, Guid customerId, string title, DateTime startDate, DateTime endDate, decimal totalPrice, int totalAllotments) { ExceptionThrow.IfGuidEmpty(contractId, "contractId"); ExceptionThrow.IfGuidEmpty(customerId, "customerId"); ExceptionThrow.IfNullOrEmpty(title, "title"); ExceptionThrow.IfEquals(startDate, "startdate", DateTime.MinValue); ExceptionThrow.IfEquals(endDate, "endDate", DateTime.MinValue); Entity entity = new Entity(this.EntityName); entity["contractid"] = new EntityReference("contract", contractId); entity["title"] = title; entity["customerid"] = new EntityReference(customerType.Description(), customerId); entity["activeon"] = startDate; entity["expireson"] = endDate; entity["price"] = new Money(totalPrice); entity["totalallotments"] = totalAllotments; return(this.OrganizationService.Create(entity)); }