Friday, February 5, 2010

Project Server entity mapping: Lookup Custom Fields

The FluentPS library allows mapping of Lookup Custom Fields for projects, resources and tasks to entity properties with help of custom property attributes. Here you can find the examples of mapping Lookup Custom Fields.

Mapping Non-Multiple Value Lookup Fields

Here is the example of mapping text lookup field:
[PSLookupField("{178dcaec-4f4f-4968-a768-8cacd5cf60a7}", "{4b5aa4d3-80ce-4346-bbcc-dd797a111706}",
        FieldName = "Sample Areas Impacted", LookupTableName = "Sample Areas Impacted")]
    public string SampleAreasImpacted { get; set; }

The constructor of PSLookupFieldAttribute class contains two arguments – the string representing the UID of the custom field, and the string representing the UID of the Lookup Table this field is related to.

The type of property points to the type of the Lookup field values. Therefore you should use int or decimal to map Number fields, DateTime for Date etc.

Mapping Multiple Value Lookup Fields

The mapping of fields which allow multiple values to be selected from the lookup table can be produced in the following manner:

[PSLookupField("{eda98e8a-6e2c-49f4-bdf0-97e8d3941e3e}", "{9d02dfc9-cde1-4087-b278-7745086c0830}",
        FieldName = "Sample Primary Objectives", LookupTableName = "Sample Primary Objective")]
    public IList SamplePrimaryObjectives { get; set; }

The inheritor classes or interfaces of IEnumerable<> type (IList<>, List<> etc.) can be used to map a multiple value lookup field. The instance of List<> will be created during filling propertied of your entity, and all selected lookup values will be added as an elements to this list. For instance, if the lookup table has three items (“value 1”, “value 2” and “value 3”), and two of them are chosen in your object, you’ll have “value 1” and “value 2” items in the list.

To add, remove or change the selection of values for the mapped object, you should manipulate with list items.

Mapping Hierarchical Lookup Fields

The Text lookup tables can have hierarchical structure. In this case you have to manipulate with the “full” values of lookup items. For instance, if the lookup table has “value 1” item and “sub-value 1” as its sub-item, you’ll get the “value1 .sub-value1” value in the mapped property if the first sub-item is selected (the “.” character is the delimiter from the lookup table; it is possible to change it to another one). The mapping for hierarchical lookup field is much the same as for text lookup field.

3 comments:

  1. Bạn là chủ xe và đang cần tìm hàng vận chuyển? Bạn là người cần tìm xe vận chuyển hàng? Vậy bạn hãy ghé vào sàn vận tải nội địa đây là nơi sẽ giúp bạn tìm thấy thứ bạn đang cần tìm. Hiện nay, chúng tôi tự hào là một trong những đơn vị cung cấp giải pháp vận chuyển hàng đầu hiện nay. Với các dịch vụ vận chuyển hàng hóa nội địa, vận chuyển Bắc Trung Nam, vận chuyển hàng đông lạnh bắc nam,... Đến với chúng tôi bạn sẽ không cần lo lắng tìm hàng hay tìm xe để vận chuyển hàng. Hiện nay thì các tuyến vận chuyển chúng tôi đang có thể kể đến như: vận chuyển hàng đi bạc liêu, vận chuyển hàng đi vũng tàu, vận chuyển hàng đi bắc ninh, vận chuyển hàng đi bến tre,... Để biết thêm thông tin hãy liên hệ với chúng tôi nhé.

    ReplyDelete