Example #1
0
 public void LdifEntryReaderReadOneEntryTest()
 {
     int read = 0;
     using (var reader = new LdifEntryReader(new LdifReader(@"c:\temp\testinput.ldif")))
     {
         foreach (Entry e in reader)
         {
             Console.WriteLine("Read: {0}", e.DistinguishedName ?? "null");
             read++;
         }
     }
     Assert.IsTrue(read == 1, "Should read exactly one entry");
 }
Example #2
0
        public void Process(StreamReader sr, bool emitHeader)
        {
            if (emitHeader)
            {
                for (int i = 0; i < Columns.Count; i++)
                {
                    Output.Write(Columns[i].Destination);

                    if (i + 1 < Columns.Count)
                        Output.Write(this.Separator);
                }
                Output.WriteLine("");
            }

            using (LdifEntryReader ldr = new LdifEntryReader(new LdifReader(sr)))
            {
                for (Entry e = ldr.ReadEntry(); e != null; e = ldr.ReadEntry())
                {
                    for (int i = 0; i < Columns.Count; i++)
                    {
                        PivotColumn col = Columns[i];

                        switch (col.Source)
                        {
                            case "dn":
                                Write(e.DistinguishedName);
                                break;

                            case "rdn":
                                Write(e.RDN);
                                break;

                            case "parent":
                            case "superior":
                                Write(e.SuperiorDn);
                                break;

                            default:
                                if (e.HasAttribute(col.Source))
                                {
                                    if (string.IsNullOrEmpty(col.Joiner))
                                    {
                                        if (col.Index == PivotColumn.LAST_INDEX)
                                        {
                                            Write(e.GetAttrStringValues(col.Source)[
                                                e.GetAttrValueCount(col.Source) - 1]);
                                        }
                                        else if (e.GetAttrValueCount(col.Source) > col.Index)
                                        {
                                            Write(e.GetAttrStringValues(col.Source)[0]);
                                        }
                                    }
                                    else
                                    {
                                        Write(string.Join(col.Joiner, e.GetAttrStringValues(col.Source)));
                                    }
                                }
                                break;
                        }

                        if (i + 1 < Columns.Count)
                            Output.Write(this.Separator);
                    }
                    Output.WriteLine("");
                }
            }
        }
Example #3
0
        public void Process(StreamReader sr, bool emitHeader)
        {
            if (emitHeader)
            {
                for (int i = 0; i < Columns.Count; i++)
                {
                    Output.Write(Columns[i].Destination);

                    if (i + 1 < Columns.Count)
                    {
                        Output.Write(this.Separator);
                    }
                }
                Output.WriteLine("");
            }

            using (LdifEntryReader ldr = new LdifEntryReader(new LdifReader(sr)))
            {
                for (Entry e = ldr.ReadEntry(); e != null; e = ldr.ReadEntry())
                {
                    for (int i = 0; i < Columns.Count; i++)
                    {
                        PivotColumn col = Columns[i];

                        switch (col.Source)
                        {
                        case "dn":
                            Write(e.DistinguishedName);
                            break;

                        case "rdn":
                            Write(e.RDN);
                            break;

                        case "parent":
                        case "superior":
                            Write(e.SuperiorDn);
                            break;

                        default:
                            if (e.HasAttribute(col.Source))
                            {
                                string[] values = e.GetAttrStringValues(col.Source);

                                if (string.IsNullOrEmpty(col.Joiner))
                                {
                                    if (col.Index == PivotColumn.LAST_INDEX)
                                    {
                                        Write(values[values.Length - 1]);
                                    }
                                    else if (values.Length > col.Index)
                                    {
                                        Write(values[col.Index]);
                                    }
                                }
                                else
                                {
                                    Write(string.Join(col.Joiner, values));
                                }
                            }
                            break;
                        }

                        if (i + 1 < Columns.Count)
                        {
                            Output.Write(this.Separator);
                        }
                    }
                    Output.WriteLine("");
                }
            }
        }