Avatar billede daywalker123 Nybegynder
11. februar 2008 - 16:18 Der er 2 kommentarer og
1 løsning

Oprette nye noder med C#

Hej

Jeg har et problem med denne webservice som skal løbe igennem en række noder og tjekke om eksisterende noder allerede er der, hvis ikke skal noden oprettes



KODE:

// Get ParentId for the Event page
int ParentId = 3899;

//Hent Event fra umbraco
Node eventFolder = new Node(ParentId);
Nodes eventItem = eventFolder.Children;

//Find Event
foreach (Node child in eventItem)
{
    if (child.Name == _guid)
    {
        string eventId = Convert.ToString(child.Id);
        int eId = Convert.ToInt32(eventId);

        _doc = new Document(eId);

        existingEvents++;

        _doc.getProperty("subject").Value = _subject;
        _doc.getProperty("location").Value = _location;
        _doc.getProperty("participants").Value = _participants;
        _doc.getProperty("bodyText").Value = _description;
        _doc.getProperty("eventDate").Value = _starttime;
        _doc.getProperty("eventDateEnd").Value = _endtime;

        _doc.XmlGenerate(new XmlDocument());

        // Use the "Umbraco" system administrator user as creator (with id:0)
        User user = new User(0);

        // Publish the document
        _doc.Publish(user);

        // Reflect the publish to the runtime
        umbraco.library.PublishSingleNode(_doc.Id);

    }


    newEvents++;

    // Get the Event documenttype
    DocumentType dct = DocumentType.GetByAlias("Event");

    // Use the "Umbraco" system administrator user as creator (with id:0)
    User Creator = new User(0);

    // Create the document
    string docName = _guid;
    _doc = Document.MakeNew(docName, dct, Creator, ParentId);

    _doc.getProperty("guid").Value = _guid;
    _doc.getProperty("subject").Value = _subject;
    _doc.getProperty("location").Value = _location;
    _doc.getProperty("participants").Value = _participants;
    _doc.getProperty("bodyText").Value = _description;
    _doc.getProperty("eventDate").Value = _starttime;
    _doc.getProperty("eventDateEnd").Value = _endtime;

    _doc.XmlGenerate(new XmlDocument());

    // Publish the document
    _doc.Publish(Creator);

    // Reflect the publish to the runtime
    umbraco.library.PublishSingleNode(_doc.Id);
}

KODE SLUT
Avatar billede wisen Nybegynder
11. februar 2008 - 21:43 #1
Jeg er ikke helt sikker på at jeg forstår problemet?!?
Avatar billede tidmand Nybegynder
11. februar 2008 - 23:58 #2
daywalker123 har oprettet spørgsmålet på mine vegne og derfor vil jeg gerne uddybe problemet.

Webservicen leverer en XmlNodeList. Jeg forsøger at se om hver node matcher en af de eksisterende noder i databasen (under parentId 3899 og med child.Name == _guid, som er defineret tidligere). Det går sådan set fint nok. Hvis der er et match opdaterer den data og gemmer/udgiver.

Men problemet opstår når der ikke er noget match. Så bliver den oprettet som ny - funktionen looper i det (næsten) uendelige. Jeg kan sagtens se "hvorfor" den looper, men kan desværre ikke selv finde løsningen. Jeg har ikke den store erfaring med C#-kodning, men er ret sikker på at der skal oprettes en iterator, der tæller med og sørger for at den nye node kun oprettes én gang - og kun hvis den ikke matcher med de eksisterende.

Jeg håber dette forklarer problemet lidt bedre. På forhånd tak for enhver hjælp.
Avatar billede daywalker123 Nybegynder
15. juni 2008 - 08:52 #3
...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester