/// <summary> /// This method creates any entity records that this sample requires. /// </summary> public void CreateRequiredRecords() { // Get the current user's information. WhoAmIRequest userRequest = new WhoAmIRequest(); WhoAmIResponse userResponse = (WhoAmIResponse)_serviceProxy.Execute(userRequest); // Create the van resource. Equipment van = new Equipment { Name = "Van 1", TimeZoneCode = 1, BusinessUnitId = new EntityReference(BusinessUnit.EntityLogicalName, userResponse.BusinessUnitId) }; _vanId = _serviceProxy.Create(van); Console.WriteLine("Created a sample equipment: {0}.", van.Name); // Create the contraints for creating the plumber resource group System.Text.StringBuilder builder = new System.Text.StringBuilder("<Constraints>"); builder.Append("<Constraint>"); builder.Append("<Expression>"); builder.Append("<Body>resource[\"Id\"] == "); builder.Append(userResponse.UserId.ToString("B")); builder.Append(" || resource[\"Id\"] == "); builder.Append(_vanId.ToString("B")); builder.Append("</Body>"); builder.Append("<Parameters>"); builder.Append("<Parameter name=\"resource\" />"); builder.Append("</Parameters>"); builder.Append("</Expression>"); builder.Append("</Constraint>"); builder.Append("</Constraints>"); // Define an anonymous type to define the possible constraint based group type code values. var ConstraintBasedGroupTypeCode = new { Static = 0, Dynamic = 1, Implicit = 2 }; // Create the plumber resource group. ConstraintBasedGroup group = new ConstraintBasedGroup { BusinessUnitId = new EntityReference(BusinessUnit.EntityLogicalName, userResponse.BusinessUnitId), Name = "Plumber with Van 1", Constraints = builder.ToString(), GroupTypeCode = new OptionSetValue(ConstraintBasedGroupTypeCode.Static), }; _groupId = _serviceProxy.Create(group); Console.WriteLine("Created a sample resource group: {0}.", group.Name); // Create the resource specification. ResourceSpec spec = new ResourceSpec { BusinessUnitId = new EntityReference(BusinessUnit.EntityLogicalName, userResponse.BusinessUnitId), ObjectiveExpression = @" <Expression> <Body>udf ""Random""(factory,resource,appointment,request,leftoffset,rightoffset)</Body> <Parameters> <Parameter name=""factory"" /> <Parameter name=""resource"" /> <Parameter name=""appointment"" /> <Parameter name=""request"" /> <Parameter name=""leftoffset"" /> <Parameter name=""rightoffset"" /> </Parameters> <Properties EvaluationInterval=""P0D"" evaluationcost=""0"" /> </Expression>", RequiredCount = 1, Name = "Test Spec", GroupObjectId = _groupId }; _specId = _serviceProxy.Create(spec); // Create the plumber required resource object. RequiredResource plumberReq = new RequiredResource { ResourceId = userResponse.UserId, // assume current user is the plumber ResourceSpecId = _specId }; // Create the service for the equipment. Service plumberService = new Service { Name = "Plumber 1", Duration = 60, InitialStatusCode = new OptionSetValue(1), Granularity = "FREQ=MINUTELY;INTERVAL=15;", ResourceSpecId = new EntityReference(ResourceSpec.EntityLogicalName, _specId) }; _plumberServiceId = _serviceProxy.Create(plumberService); Console.WriteLine("Created a sample service for the equipment: {0}.", plumberService.Name); }
/// <summary> /// This method creates any entity records that this sample requires. /// </summary> public void CreateRequiredRecords() { // Get the current user's information. WhoAmIRequest userRequest = new WhoAmIRequest(); WhoAmIResponse userResponse = (WhoAmIResponse)_serviceProxy.Execute(userRequest); // Create the van resource. Equipment van = new Equipment { Name = "Van 1", TimeZoneCode = 1, BusinessUnitId = new EntityReference(BusinessUnit.EntityLogicalName, userResponse.BusinessUnitId) }; _vanId = _serviceProxy.Create(van); Console.WriteLine("Created a sample equipment: {0}.", van.Name); // Create the contraints for creating the plumber resource group System.Text.StringBuilder builder = new System.Text.StringBuilder("<Constraints>"); builder.Append("<Constraint>"); builder.Append("<Expression>"); builder.Append("<Body>resource[\"Id\"] == "); builder.Append(userResponse.UserId.ToString("B")); builder.Append(" || resource[\"Id\"] == "); builder.Append(_vanId.ToString("B")); builder.Append("</Body>"); builder.Append("<Parameters>"); builder.Append("<Parameter name=\"resource\" />"); builder.Append("</Parameters>"); builder.Append("</Expression>"); builder.Append("</Constraint>"); builder.Append("</Constraints>"); // Define an anonymous type to define the possible constraint based group type code values. var ConstraintBasedGroupTypeCode = new { Static = 0, Dynamic = 1, Implicit = 2 }; // Create the plumber resource group. ConstraintBasedGroup group = new ConstraintBasedGroup { BusinessUnitId = new EntityReference(BusinessUnit.EntityLogicalName, userResponse.BusinessUnitId), Name = "Plumber with Van 1", Constraints = builder.ToString(), GroupTypeCode = new OptionSetValue(ConstraintBasedGroupTypeCode.Static), }; _groupId = _serviceProxy.Create(group); Console.WriteLine("Created a sample resource group: {0}.", group.Name); // Create the resource specification. ResourceSpec spec = new ResourceSpec { BusinessUnitId = new EntityReference(BusinessUnit.EntityLogicalName, userResponse.BusinessUnitId), ObjectiveExpression = @" <Expression> <Body>udf ""Random""(factory,resource,appointment,request,leftoffset,rightoffset)</Body> <Parameters> <Parameter name=""factory"" /> <Parameter name=""resource"" /> <Parameter name=""appointment"" /> <Parameter name=""request"" /> <Parameter name=""leftoffset"" /> <Parameter name=""rightoffset"" /> </Parameters> <Properties EvaluationInterval=""P0D"" evaluationcost=""0"" /> </Expression>" , RequiredCount = 1, Name = "Test Spec", GroupObjectId = _groupId }; _specId = _serviceProxy.Create(spec); // Create the plumber required resource object. RequiredResource plumberReq = new RequiredResource { ResourceId = userResponse.UserId, // assume current user is the plumber ResourceSpecId = _specId }; // Create the service for the equipment. Service plumberService = new Service { Name = "Plumber 1", Duration = 60, InitialStatusCode = new OptionSetValue(1), Granularity = "FREQ=MINUTELY;INTERVAL=15;", ResourceSpecId = new EntityReference(ResourceSpec.EntityLogicalName, _specId) }; _plumberServiceId = _serviceProxy.Create(plumberService); Console.WriteLine("Created a sample service for the equipment: {0}.", plumberService.Name); }