Doing a FIM 2010 project for a customer, I had to crunch an LDIF file and convert some of the data in that file to a valid attribute-value pair file for use FIM 2010. I considered a lot of possibilities but ended up utilizing LINQ a lot throughout the code.
As an example I had to extract the parent department for a distinguished name coming from an X500 directory LDIF file. The distinguished name would be something like this -
cn=Willis Bruce, ou=TSX, ou=TS, ou=T, ou=MOX, l=Denmark, c=DK, o=customername, o=customer holding, cn=Main company
The parent department name is the second ou= element (in this case ou=TS) and to extract that I ended up using - what I think - is simple LINQ statement in a method on my user class -
public void GetParentDepartment()
{
string temp = this.dn.Split(',').Where(key => key.StartsWith("ou=")).Skip(1).FirstOrDefault();
this.parentDepartment = (temp != null) ? temp.Replace("ou=", "").ToUpper() : null;
}
Hope this will help someelse crunching data. I know that I will definitely try to use LINQ whereever possible as its is pretty nice and very elegant for many tasks.
It also doesn't perform very well...
ReplyDelete@Brian: I agree; however I like the simple flexibility - and in this project, since we're only handling 25K users, I think that processing 25K users, and 5K groups in 9 seconds is okay (since I only get the original file every four hours).
ReplyDelete