Esempio n. 1
0
        public static int GetTaxonomyID(string tModelKey)
        {
            int taxonomyID;

            Debug.Enter();

            SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor();

            sp.ProcedureName = "UI_getTaxonomies";

            sp.Parameters.Add("@tModelKey", SqlDbType.UniqueIdentifier);
            sp.Parameters.SetGuidFromKey("@tModelKey", tModelKey);

            SqlDataReaderAccessor reader = sp.ExecuteReader();

            try
            {
                if (reader.Read())
                {
                    taxonomyID = reader.GetInt("taxonomyID");
                }
                else
                {
                    taxonomyID = -1;
                }
            }
            finally
            {
                reader.Close();
            }

            Debug.Leave();
            return(taxonomyID);
        }
Esempio n. 2
0
        public void Get(RelationshipQualifier[] relations)
        {
            if (null != KeyValue)
            {
                //
                // The request can ask for Root stuff with just the TModelKey
                //
                SqlDataReader rdr = GetValues(RelationType.Current);

                try
                {
                    SqlDataReaderAccessor dracc = new SqlDataReaderAccessor(rdr);

                    if (rdr.Read())
                    {
                        this.KeyName = dracc.GetString(KeyNameIndex);
                        this.IsValid = (1 == dracc.GetInt(IsValidIndex));
                    }
                    else
                    {
                        throw new UDDIException(UDDI.ErrorType.E_invalidValue, "UDDI_ERROR_INVALIDVALUE_VALUENOTFOUND");
                    }
                }
                finally
                {
                    rdr.Close();
                }
            }

            if (null != relations)
            {
                foreach (RelationshipQualifier rq in relations)
                {
                    switch (rq)
                    {
                    case RelationshipQualifier.root:
                        GetRoots();
                        break;

                    case RelationshipQualifier.child:
                        GetChildren();
                        break;

                    case RelationshipQualifier.parent:
                        GetParents();
                        break;
                    }
                }
            }
        }
Esempio n. 3
0
        public void Get()
        {
            Debug.Enter();

            SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor();

            sp.ProcedureName = "UI_getPublisher";

            sp.Parameters.Add("@PUID", SqlDbType.NVarChar, UDDI.Constants.Lengths.UserID);
            sp.Parameters.SetString("@PUID", Puid);

            SqlDataReaderAccessor reader = sp.ExecuteReader();

            Exists = false;

            try
            {
                if (reader.Read())
                {
                    int flag;

                    IsoLangCode   = reader.GetString(1);
                    Name          = reader.GetString(2);
                    Email         = reader.GetString(3);
                    Phone         = reader.GetString(4);
                    CompanyName   = reader.GetString(5);
                    AltPhone      = reader.GetString(6);
                    AddressLine1  = reader.GetString(7);
                    AddressLine2  = reader.GetString(8);
                    City          = reader.GetString(9);
                    StateProvince = reader.GetString(10);
                    PostalCode    = reader.GetString(11);
                    Country       = reader.GetString(12);
                    flag          = reader.GetInt(13);
                    SecurityToken = reader.GetGuidString(14);

                    TrackPassport = (0x00 == (flag & 0x02));
                    Validated     = (0x01 == (flag & 0x01));

                    Exists = true;
                }
            }
            finally
            {
                reader.Close();
            }

            Debug.Leave();
        }
Esempio n. 4
0
        public ArrayList Read(SqlDataReaderAccessor reader)
        {
            const int ContactIdIndex  = 0;
            const int UseTypeIndex    = 1;
            const int PersonNameIndex = 2;
            ArrayList contactIds      = new ArrayList();

            //
            // The contacts will be contained in the result set
            //
            while (reader.Read())
            {
                //
                // construct a new contact from the data in this row, fully populate contact and add to collection
                //
                contactIds.Add(reader.GetInt(ContactIdIndex));
                Add(new Contact(reader.GetString(PersonNameIndex), reader.GetString(UseTypeIndex)));
            }

            return(contactIds);
        }
Esempio n. 5
0
        public void GetParents()
        {
            Parents = new CategoryValueCollection();
            SqlDataReader rdr = GetValues(RelationType.Parent);

            try
            {
                SqlDataReaderAccessor dracc = new SqlDataReaderAccessor(rdr);

                while (rdr.Read())
                {
                    Parents.Add(dracc.GetString(KeyNameIndex),
                                dracc.GetString(KeyValueIndex),
                                dracc.GetString(ParentKeyValueIndex),
                                (1 == dracc.GetInt(IsValidIndex)));
                }
            }
            finally
            {
                rdr.Close();
            }
        }
Esempio n. 6
0
        protected static OperatorNodeCollection GetOperators(bool filter, int status)
        {
            OperatorNodeCollection operators = new OperatorNodeCollection();


            SqlStoredProcedureAccessor sp   = null;
            SqlDataReaderAccessor      data = null;

            try
            {
                sp = new SqlStoredProcedureAccessor("UI_operatorsList_get");
                if (filter && -1 != status)
                {
                    sp.Parameters.Add("@StatusID", SqlDbType.TinyInt);
                    sp.Parameters.SetInt("@StatusID", status);
                }
                data = sp.ExecuteReader();
                while (data.Read())
                {
                    operators.Add(data.GetString("OperatorKey"), (OperatorStatus)data.GetInt("OperatorStatusID"), data.GetString("Name"), data.GetString("soapReplicationUrl"));
                }
            }
            finally
            {
                if (null != data)
                {
                    data.Close();
                }

                if (null != sp)
                {
                    sp.Close();
                }
            }

            return(operators);
        }
Esempio n. 7
0
        /// ****************************************************************
        ///   public Get
        /// ----------------------------------------------------------------
        ///   <summary>
        ///   </summary>
        /// ****************************************************************
        ///
        public ChangeRecordDetail Get()
        {
            Debug.VerifySetting("OperatorKey");

            ChangeRecordDetail detail = new ChangeRecordDetail();

            try
            {
                //
                // Get the list of known operators.
                //
                StringCollection operators = new StringCollection();

                SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor();

                sp.ProcedureName = "net_operators_get";
                SqlDataReaderAccessor reader = sp.ExecuteReader();

                try
                {
                    while (reader.Read())
                    {
                        operators.Add(reader.GetGuidString("operatorKey"));
                    }
                }
                finally
                {
                    reader.Close();
                }

                //
                // Set the search criteria for change records.
                //
                foreach (string operatorKey in operators)
                {
                    long startUSN;
                    long stopUSN;

                    startUSN = 0;
                    foreach (ChangeRecordVector mark in ChangesAlreadySeen)
                    {
                        if (0 == String.Compare(operatorKey, mark.NodeID, true))
                        {
                            startUSN = mark.OriginatingUSN + 1;
                            break;
                        }
                    }

                    stopUSN = System.Int64.MaxValue;
                    foreach (ChangeRecordVector mark in ResponseLimitVector)
                    {
                        if (0 == String.Compare(operatorKey, mark.NodeID, true))
                        {
                            stopUSN = mark.OriginatingUSN;
                            break;
                        }
                    }

                    FindChangeRecords.SetRange(operatorKey, startUSN, stopUSN);
                }

                //
                // Retrieve the change records.
                //
                int limit = Config.GetInt("Replication.ResponseLimitCountDefault");

                if (ResponseLimitCount >= 0 && ResponseLimitCount <= limit)
                {
                    limit = ResponseLimitCount;
                }

                reader = FindChangeRecords.RetrieveResults(limit);

                try
                {
                    while (reader.Read())
                    {
                        XmlSerializer serializer = null;

                        switch ((ChangeRecordPayloadType)reader.GetShort("changeTypeID"))
                        {
                        case ChangeRecordPayloadType.ChangeRecordNull:
                            serializer = XmlSerializerManager.GetSerializer(typeof(ChangeRecordNull));
                            break;

                        case ChangeRecordPayloadType.ChangeRecordNewData:
                            serializer = XmlSerializerManager.GetSerializer(typeof(ChangeRecordNewData));
                            break;

                        case ChangeRecordPayloadType.ChangeRecordDelete:
                            serializer = XmlSerializerManager.GetSerializer(typeof(ChangeRecordDelete));
                            break;

                        case ChangeRecordPayloadType.ChangeRecordPublisherAssertion:
                            serializer = XmlSerializerManager.GetSerializer(typeof(ChangeRecordPublisherAssertion));
                            break;

                        case ChangeRecordPayloadType.ChangeRecordHide:
                            serializer = XmlSerializerManager.GetSerializer(typeof(ChangeRecordHide));
                            break;

                        case ChangeRecordPayloadType.ChangeRecordDeleteAssertion:
                            serializer = XmlSerializerManager.GetSerializer(typeof(ChangeRecordDeleteAssertion));
                            break;

                        case ChangeRecordPayloadType.ChangeRecordAcknowledgement:
                            serializer = XmlSerializerManager.GetSerializer(typeof(ChangeRecordAcknowledgement));
                            break;

                        case ChangeRecordPayloadType.ChangeRecordCorrection:
                            serializer = XmlSerializerManager.GetSerializer(typeof(ChangeRecordCorrection));
                            break;
                        }

                        StringReader stringReader = new StringReader(reader.GetString("changeData"));

                        try
                        {
                            ChangeRecord changeRecord = new ChangeRecord();

                            changeRecord.AcknowledgementRequested = (reader.GetInt("flag") & (int)ChangeRecordFlags.AcknowledgementRequested) > 0;
                            changeRecord.ChangeID.NodeID          = reader.GetString("OperatorKey");
                            changeRecord.ChangeID.OriginatingUSN  = reader.GetLong("USN");

                            ChangeRecordBase changeRecordBase = ( ChangeRecordBase )serializer.Deserialize(stringReader);
                            if (changeRecordBase is ChangeRecordCorrection)
                            {
                                //
                                // The query to find change records will do correction 'fixups'.  That is, the changeData of this
                                // change record will be replaced with the changeData from the correction.  The problem with this is
                                // that the original change data will now look like a correction.  To distinguish these types of
                                // change records, we look to see if the OriginatingUSN's match.  If the OriginatingUSN's match,
                                // we want they payload of the change record in this correction.  This payload will contain the
                                // corrected data that we want.
                                //
                                ChangeRecordCorrection changeRecordCorrection = ( ChangeRecordCorrection )changeRecordBase;
                                if (changeRecordCorrection.ChangeRecord.ChangeID.OriginatingUSN == changeRecord.ChangeID.OriginatingUSN)
                                {
                                    changeRecordBase = changeRecordCorrection.ChangeRecord.Payload;
                                }
                            }

                            changeRecord.Payload = changeRecordBase;

                            detail.ChangeRecords.Add(changeRecord);
                        }
                        finally
                        {
                            stringReader.Close();
                        }
                    }
                }
                finally
                {
                    reader.Close();
                }
            }
            catch (Exception e)
            {
                Debug.OperatorMessage(
                    SeverityType.Error,
                    CategoryType.Replication,
                    OperatorMessageType.None,
                    "Could not retrieve change records:\r\n" + e.ToString());

                FindChangeRecords.CleanUp();
                throw;
            }

            return(detail);
        }
Esempio n. 8
0
        public void Get(CompletionStatusType completionStatus)
        {
            SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor("net_publisher_assertionStatus_get");

            sp.Parameters.Add("@PUID", SqlDbType.NVarChar, UDDI.Constants.Lengths.UserID);
            sp.Parameters.SetString("@PUID", Context.User.ID);

            if (CompletionStatusType.Uninitialized != completionStatus)
            {
                //
                // If the completion status was not specified get all
                // of the assertions by not specifying a completionStatus value
                // in the stored procedure.
                //
                sp.Parameters.Add("@completionStatus", SqlDbType.Int);
                sp.Parameters.SetInt("@completionStatus", (int)completionStatus);
            }

            SqlDataReaderAccessor reader = sp.ExecuteReader();

            try
            {
                while (reader.Read())
                {
                    KeyedReference keyedReference = new KeyedReference(
                        reader.GetString("keyName"),
                        reader.GetString("keyValue"),
                        reader.GetKeyFromGuid("tModelKey"));

                    CompletionStatusType status =
                        (CompletionStatusType)reader.GetInt("flag");

                    string fromKey = reader.GetGuidString("fromKey");
                    string toKey   = reader.GetGuidString("toKey");

                    int ownerFlag = reader.GetInt("ownerFlag");

                    KeysOwned keysOwned = new KeysOwned();

                    if (0x02 == (ownerFlag & 0x02))
                    {
                        keysOwned.FromKey = fromKey;
                    }

                    if (0x01 == (ownerFlag & 0x01))
                    {
                        keysOwned.ToKey = toKey;
                    }

                    this.Add(
                        new AssertionStatusItem(
                            status,
                            fromKey,
                            toKey,
                            keyedReference,
                            keysOwned));
                }
            }
            finally
            {
                reader.Close();
            }
        }
Esempio n. 9
0
        static ChangeRecord CreateChangeRecord(SqlDataReaderAccessor reader)
        {
            ChangeRecord changeRecord = null;

            XmlSerializer serializer = null;

            switch ((ChangeRecordPayloadType)reader.GetShort("changeTypeID"))
            {
            case ChangeRecordPayloadType.ChangeRecordNull:
                serializer = new XmlSerializer(typeof(ChangeRecordNull));
                break;

            case ChangeRecordPayloadType.ChangeRecordNewData:
                serializer = new XmlSerializer(typeof(ChangeRecordNewData));
                break;

            case ChangeRecordPayloadType.ChangeRecordDelete:
                serializer = new XmlSerializer(typeof(ChangeRecordDelete));
                break;

            case ChangeRecordPayloadType.ChangeRecordPublisherAssertion:
                serializer = new XmlSerializer(typeof(ChangeRecordPublisherAssertion));
                break;

            case ChangeRecordPayloadType.ChangeRecordHide:
                serializer = new XmlSerializer(typeof(ChangeRecordHide));
                break;

            case ChangeRecordPayloadType.ChangeRecordDeleteAssertion:
                serializer = new XmlSerializer(typeof(ChangeRecordDeleteAssertion));
                break;

            case ChangeRecordPayloadType.ChangeRecordAcknowledgement:
                serializer = new XmlSerializer(typeof(ChangeRecordAcknowledgement));
                break;

            case ChangeRecordPayloadType.ChangeRecordCorrection:
                serializer = new XmlSerializer(typeof(ChangeRecordCorrection));
                break;
            }

            StringReader stringReader = new StringReader(reader.GetString("changeData"));

            try
            {
                changeRecord = new ChangeRecord();

                changeRecord.AcknowledgementRequested = (reader.GetInt("flag") & (int)ChangeRecordFlags.AcknowledgementRequested) > 0;
                changeRecord.ChangeID.NodeID          = reader.GetString("OperatorKey");
                changeRecord.ChangeID.OriginatingUSN  = reader.GetLong("USN");

                ChangeRecordBase changeRecordBase = ( ChangeRecordBase )serializer.Deserialize(stringReader);
                if (changeRecordBase is ChangeRecordCorrection)
                {
                    //
                    // The query to find change records will do correction 'fixups'.  That is, the changeData of this
                    // change record will be replaced with the changeData from the correction.  The problem with this is
                    // that the original change data will now look like a correction.  To distinguish these types of
                    // change records, we look to see if the OriginatingUSN's match.  If the OriginatingUSN's match,
                    // we want they payload of the change record in this correction.  This payload will contain the
                    // corrected data that we want.
                    //
                    ChangeRecordCorrection changeRecordCorrection = ( ChangeRecordCorrection )changeRecordBase;
                    if (changeRecordCorrection.ChangeRecord.ChangeID.OriginatingUSN == changeRecord.ChangeID.OriginatingUSN)
                    {
                        changeRecordBase = changeRecordCorrection.ChangeRecord.Payload;
                    }
                }

                changeRecord.Payload = changeRecordBase;
            }
            finally
            {
                stringReader.Close();
            }

            return(changeRecord);
        }
Esempio n. 10
0
        public void Get()
        {
            Debug.Enter();

            //
            // Retrieve the taxonomy
            //

            SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor("net_taxonomy_get");

            sp.Parameters.Add("@tModelKey", SqlDbType.UniqueIdentifier);
            sp.Parameters.Add("@flag", SqlDbType.Int, ParameterDirection.InputOutput);

            sp.Parameters.SetGuidFromKey("@tModelKey", tModelKey);
            sp.Parameters.SetNull("@flag");

            sp.ExecuteScalar();

            //
            // Set the flag value
            //

            CategorizationSchemeFlag = sp.Parameters.GetInt("@flag");

            //
            // Retrieve the taxonomy values
            //

            CategoryValues.Clear();

            SqlStoredProcedureAccessor sp2 = new SqlStoredProcedureAccessor("net_taxonomyValues_get");

            sp2.Parameters.Add("@tModelKey", SqlDbType.UniqueIdentifier);
            sp2.Parameters.SetGuidFromKey("@tModelKey", tModelKey);
            SqlDataReaderAccessor reader = sp2.ExecuteReader();

            try
            {
                while (reader.Read())
                {
                    CategoryValues.Add(reader.GetString("keyName"), reader.GetString("keyValue"), reader.GetString("parentKeyValue"), ((reader.GetInt("valid") == 1) ? true : false));
                }
            }
            finally
            {
                reader.Close();
            }

            Debug.Leave();
        }
Esempio n. 11
0
        public void Get(string businessKey)
        {
            //
            // Create a command object to invoke the stored procedure net_get_contacts
            //
            SqlStoredProcedureAccessor cmd = new SqlStoredProcedureAccessor("net_businessEntity_contacts_get");

            //
            // Input parameters
            //
            cmd.Parameters.Add("@businessKey", SqlDbType.UniqueIdentifier, ParameterDirection.Input);
            cmd.Parameters.SetGuidFromString("@businessKey", businessKey);

            //
            // Run the stored procedure
            //
            SqlDataReaderAccessor reader     = cmd.ExecuteReader();
            ArrayList             contactIds = null;

            try
            {
                contactIds = Read(reader);
            }
            finally
            {
                reader.Close();
            }

            Populate(contactIds);
#if never
            const int ContactIdIndex  = 0;
            const int UseTypeIndex    = 1;
            const int PersonNameIndex = 2;
            ArrayList contactIds      = new ArrayList();

            //
            // Create a command object to invoke the stored procedure net_get_contacts
            //
            SqlCommand cmd = new SqlCommand("net_businessEntity_contacts_get", ConnectionManager.GetConnection());

            cmd.Transaction = ConnectionManager.GetTransaction();
            cmd.CommandType = CommandType.StoredProcedure;

            //
            // Input parameters
            //
            cmd.Parameters.Add(new SqlParameter("@businessKey", SqlDbType.UniqueIdentifier)).Direction = ParameterDirection.Input;

            //
            // Set parameter values
            //
            SqlParameterAccessor populator = new SqlParameterAccessor(cmd.Parameters);
            populator.SetGuidFromString("@businessKey", businessKey);

            //
            // Run the stored procedure
            //
            SqlDataReader rdr = cmd.ExecuteReader();
            try
            {
                SqlDataReaderAccessor dracc = new SqlDataReaderAccessor(rdr);

                //
                // The contacts will be contained in the result set
                //
                while (rdr.Read())
                {
                    //
                    // construct a new contact from the data in this row, fully populate contact and add to collection
                    //
                    Add(new Contact(dracc.GetString(PersonNameIndex), dracc.GetString(UseTypeIndex)));
                    contactIds.Add(dracc.GetInt(ContactIdIndex));
                }
            }
            finally
            {
                rdr.Close();
            }

            int i = 0;
            foreach (Contact contact in this)
            {
                contact.Get((int)contactIds[i++]);
            }
#endif
        }