Monday, December 6, 2010

Popoliamo la nostra lista di contatti tramite il Client Object Model di Sharepoint 2010

2ee2a628ae03b4b46a9ef5b9515a9defFacendo riferimento ai due post precedenti:
Vediamo come possiamo popolare questa lista.
Il codice seguente prende una serie di nomi, cognomi e compagnie e crea 100 profli all’interno della nostra lista.
Non è fondamentale capire tutto il complicatissimo algoritmo randomico che genera i nomi Smile with tongue out
Quindi, alla fine del post, troverete solamente la spiegazione del codice utile per fare l’insert nella lista:
static void Main(string[] args)
{
    var names = new string[] {
        "Mark", "Tom", "Harry", "Sally", "Sandra", "Paul", "Anastasia",
        "David", "Alex", "Michael", "Tina", "Zachary", "Bob", "Elise"
                    };

    var surnames = new string[] {
        "Smith", "Lopez", "Wright", "King", "Hernandez", "Young", "Lewis", "Allen", "Hall",
        "Walker", "Lee", "Rodriguez", "Clark", "Robinson", "Martinez", "Garcia", "Thompson",
        "Martin", "Harris", "White", "Jackson", "Johnson", "Thomas", "Anderson", "Taylor",
        "Moore", "Wilson", "Miller", "Davis", "Brown", "Jones", "Williams" };
            
    var companies =  new string[] {"Microsoft", "Equus", "Fiat", "Trenitalia", "Alitalia" };

    List<string> lstNames = new List<string>();
    List<string> lstSurname = new List<string>();
    List<string> lstCompany = new List<string>();

    int namesCount = names.Length;
    int surnamesCount = surnames.Length;
    int companyCount = companies.Length;

    for (int i = 1; i < 100; i++)
    {
        System.Threading.Thread.Sleep(100);
        Random rnd = new Random();

        int nameNumber = rnd.Next(namesCount);
        int surnameNumber = rnd.Next(surnamesCount);
        int companyNumber = rnd.Next(companyCount);

        string selName = names[nameNumber];
        string selSurname = surnames[surnameNumber];
        string selCompany = companies[companyNumber];

        lstNames.Add(selName);
        lstSurname.Add(selSurname);
        lstCompany.Add(selCompany);
    }

    using (ClientContext ctx = new ClientContext(@"http://win-040f0ba75i9"))
    {
        var myContactsList = ctx.Web.Lists.GetByTitle("MyContactsList");

        ctx.Load(myContactsList);

        for (int i = 0; i < 99; i++)
        {
            string firstname = lstNames[i];
            string title = lstSurname[i];
            string company = lstCompany[i];
            string fullname = firstname + " " + title;
            string email = firstname + "." + title + "@" + company + ".com";

            ListItem newItem = myContactsList.AddItem(new ListItemCreationInformation());
            newItem["FullName"] = fullname;
            newItem["Title"] = title;
            newItem["FirstName"] = firstname;
            newItem["Company"] = company;
            newItem["Email"] = email;

            newItem.Update();                    
        }

        ctx.ExecuteQuery();
    }
}

Di tutto il codice di cui sopra, la parte che si occupa di fare l’update è il codice all’interno dell’ultimo ciclo for; lì dentro viene creato N volte un elemento nuovo per la nostra lista e viene inserito all’interno della stessa trami il metodo Update.
Come nel post precedente facciamo riferimento alla lista tramite il nome della stessa.
Con il metodo Load carichiamo gli oggetti che useremo per lavorare (la lista).
L’ExecuteQuery esegue la query e fa il fetch degli oggetti.
Il risultato ottenuto è il seguente:
mycontactslist_populated

Nel prossimo post vedremo come ottenere in maniera performante i dati da questa lista!!!
Bye

No comments:

Post a Comment