Пример #1
0
        public string ToOutFormatMethod(ISqlFormater formater)
        {
            var count = Outs.IsNullOrEmpty()
                                ? 0
                                : Outs.Count();

            switch (count)
            {
            case 0:
                return(string.Empty);

            case 1:
                return(string.Concat(
                           ".To",
                           Outs
                           .FirstOrDefault()
                           .ToTypeName(formater)
                           .ToPascalCasing(),
                           "()"
                           ));

            default:
                return(".ToDynamics()");
            }
        }
Пример #2
0
 public override int GetHashCode()
 {
     unchecked
     {
         int hash = Outs.GetHashCode();
         hash += (hash * 57) + RunsScored.GetHashCode();
         hash += (hash * 57) + Bases.GetHashCode();
         return(hash);
     }
 }
Пример #3
0
        public TAlternativeParserGrpCrossItemEnlarge RestructEnlarge(TAlternativeParserEnlargerTrashItem ATrash)
        {
            TAlternativeParserGrpItemTFS          Tfs;
            TAlternativeParserGrpItemBase         Base;
            TAlternativeParserGrpCrossItemOut     Outs;
            TAlternativeParserGrpCrossItemEnlarge Enl = null;

            for (int i = 0; i <= CountBasis - 1; i++)
            {
                Base = GetItemsBasis(i);
                if ((Base.Who() == 0) && (Base == ATrash.Pos))
                {
                    Enl    = new TAlternativeParserGrpCrossItemEnlarge();
                    Enl.ID = ATrash.ID;
                    for (int j = i; j <= i + ATrash.Length - 1; j++)
                    {
                        Enl.AddGRPTfs((TAlternativeParserGrpItemTFS)(GetItemsBasis(j)));
                    }
                    ReplaceToEnlarge(Enl);
                }
            }

            for (int i = 0; i <= CountOut - 1; i++)
            {
                Outs = GetItemsOut(i);
                for (int j = 0; j <= Outs.Count - 1; j++)
                {
                    Base = Outs.GetItems(j);
                    if ((Base.Who() == 0) && (Base == ATrash.Pos))
                    {
                        if (Enl == null)
                        {
                            Enl    = new TAlternativeParserGrpCrossItemEnlarge();
                            Enl.ID = ATrash.ID;
                            for (int k = j; k <= j + ATrash.Length - 1; k++)
                            {
                                object tmp = Outs.GetItems(k);
                                Enl.AddGRPTfs((TAlternativeParserGrpItemTFS)tmp);
                            }
                        }
                        Outs.ReplaceToEnlarge(Enl);
                    }
                }
            }
            return(Enl);
        }
Пример #4
0
        public string ToApiMethod()
        {
            var count = Outs.IsNullOrEmpty()
                                ? 0
                                : Outs.Count();

            switch (count)
            {
            case 0:
                return("ExecuteSp");

            case 1:
                return("ExecuteSpByScalar");

            default:
                return("ExecuteSpByReader");
            }
        }
Пример #5
0
        public string ToOutType(ISqlFormater formater)
        {
            var count = Outs.IsNullOrEmpty()
                                ? 0
                                : Outs.Count();

            switch (count)
            {
            case 0:
                return("DataResult");

            case 1:
                return(Outs.FirstOrDefault().ToTypeName(formater));

            default:
                return("List<dynamic>[]");
            }
        }
Пример #6
0
        public TAlternativeParserGrpCrossItemEnlarge FindEnlarge(TAlternativeParserGrpItemTFS ATfs)
        {
            TAlternativeParserGrpItemBase         Base;
            TAlternativeParserGrpCrossItemOut     Outs;
            TAlternativeParserGrpCrossItemEnlarge Enl;

            for (int i = 0; i <= CountBasis - 1; i++)
            {
                Base = GetItemsBasis(i);
                if (Base.Who() == 3)
                {
                    Enl = (TAlternativeParserGrpCrossItemEnlarge)(Base);
                    if (Enl.Pos == ATfs)
                    {
                        return(Enl);
                    }
                }
            }

            for (int i = 0; i <= CountOut - 1; i++)
            {
                Outs = GetItemsOut(i);
                for (int j = 0; j <= Outs.Count - 1; j++)
                {
                    Base = Outs.GetItems(j);
                    if (Base.Who() == 3)
                    {
                        Enl = (TAlternativeParserGrpCrossItemEnlarge)(Base);
                        if (Enl.Pos == ATfs)
                        {
                            return(Enl);
                        }
                    }
                }
            }
            return(null);
        }
Пример #7
0
        public static IEnumerable <DNSRecord> Get_DomainDNSRecord(Args_Get_DomainDNSRecord args = null)
        {
            if (args == null)
            {
                args = new Args_Get_DomainDNSRecord();
            }

            var SearcherArguments = new Args_Get_DomainSearcher
            {
                LDAPFilter       = @"(objectClass=dnsNode)",
                SearchBasePrefix = $@"DC={args.ZoneName},CN=MicrosoftDNS,DC=DomainDnsZones",
                Domain           = args.Domain,
                Server           = args.Server,
                Properties       = args.Properties,
                ResultPageSize   = args.ResultPageSize,
                ServerTimeLimit  = args.ServerTimeLimit,
                Credential       = args.Credential
            };
            var DNSSearcher = GetDomainSearcher.Get_DomainSearcher(SearcherArguments);

            SearchResult[]   Results = null;
            List <DNSRecord> Outs    = null;

            if (DNSSearcher != null)
            {
                if (args.FindOne)
                {
                    Results = new SearchResult[] { DNSSearcher.FindOne() };
                }
                else
                {
                    var items = DNSSearcher.FindAll();
                    if (items != null)
                    {
                        Results = new SearchResult[items.Count];
                        items.CopyTo(Results, 0);
                    }
                }
                if (Results != null)
                {
                    foreach (var result in Results)
                    {
                        DNSRecord Out = null;
                        try
                        {
                            var ldapProperty = ConvertLDAPProperty.Convert_LDAPProperty(result.Properties);
                            Out = new DNSRecord
                            {
                                name = ldapProperty.name,
                                distinguishedname = ldapProperty.distinguishedname,
                                dnsrecord         = ldapProperty.dnsrecord,
                                whencreated       = ldapProperty.whencreated,
                                whenchanged       = ldapProperty.whenchanged,
                                ZoneName          = args.ZoneName
                            };

                            // convert the record and extract the properties
                            DNSRecord Record = null;
                            if (Out.dnsrecord is System.DirectoryServices.ResultPropertyValueCollection)
                            {
                                // TODO: handle multiple nested records properly?
                                Record = Convert_DNSRecord((Out.dnsrecord as System.DirectoryServices.ResultPropertyValueCollection)[0] as byte[]);
                            }
                            else
                            {
                                Record = Convert_DNSRecord(Out.dnsrecord as byte[]);
                            }

                            if (Record != null)
                            {
                                if (Record.RecordType != null)
                                {
                                    Out.RecordType = Record.RecordType;
                                }
                                else if (Record.UpdatedAtSerial != null)
                                {
                                    Out.UpdatedAtSerial = Record.UpdatedAtSerial;
                                }
                                else if (Record.TTL != null)
                                {
                                    Out.TTL = Record.TTL;
                                }
                                else if (Record.Age != null)
                                {
                                    Out.Age = Record.Age;
                                }
                                else if (Record.TimeStamp != null)
                                {
                                    Out.TimeStamp = Record.TimeStamp;
                                }
                                else if (Record.Data.IsNotNullOrEmpty())
                                {
                                    Out.Data = Record.Data;
                                }
                                else if (Record.ZoneName.IsNotNullOrEmpty())
                                {
                                    Out.ZoneName = Record.ZoneName;
                                }
                                else if (Record.name.IsNotNullOrEmpty())
                                {
                                    Out.name = Record.name;
                                }
                                else if (Record.distinguishedname.IsNotNullOrEmpty())
                                {
                                    Out.distinguishedname = Record.distinguishedname;
                                }
                                else if (Record.dnsrecord != null)
                                {
                                    Out.dnsrecord = Record.dnsrecord;
                                }
                                else if (Record.whencreated != null)
                                {
                                    Out.whencreated = Record.whencreated;
                                }
                                else if (Record.whenchanged != null)
                                {
                                    Out.whenchanged = Record.whenchanged;
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            Logger.Write_Warning($@"[Get-DomainDNSRecord] Error: {e}");
                        }
                        if (Outs == null)
                        {
                            Outs = new List <DNSRecord>();
                        }
                        Outs.Add(Out);
                    }
                }
                DNSSearcher.Dispose();
            }
            return(Outs);
        }