CHUVASH.eu

CHunky Universe of Vigourous Astonishing SHarepoint :)

WithWeb-pattern of Jonas Nilsson

Jonas Nilsson shows an interesting approach for working with SPSite and SPWeb which must be disposed. Create a helper method WithWeb and send an Action parameter:

public void WithWeb(string uri, Action<SPWeb> action)
{
    using (SPSite site = new SPSite(uri))
    {
        using (SPWeb web = site.OpenWeb())
        {
            action(web);
        }
    }
}

Here is my implementation of this pattern:

public static class DisposalService
{
    public static void WithWeb(string uri, Action<SPWeb> action)
    {
        using (var site = new SPSite(uri))
        {
            using (var web = site.OpenWeb())
            {
                web.UnsafeUpdate(action);
            }
        }
    }
    public  static void WithElevatedWeb(string uri, Action<SPWeb> action)
    {
        SPSecurity.RunWithElevatedPrivileges(() => WithWeb(uri, action));
    }
}

Here I use another fancy way to consolidate the unsafe updates. I added an additional method: WithElevatedWeb, it creates the web as system account.

And here comes an example of using this static method:

Action<SPWeb> update = (SPWeb w) =>
                        {
                            UserService.UpdateOwners(owners, w);
                            UserService.UpdateMembers(members, w);
                        };
DisposalService.WithWeb(SPContext.Current.Web.Url, update);
Advertisements

2 responses to “WithWeb-pattern of Jonas Nilsson

  1. Pingback: Do an unsafe update in a unified manner « Sharepoint. Kunskap. Upptäckter på resan.

  2. Pingback: No more ‘using’ statements! WithWeb-Pattern. « discoveringsharepoint

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Вула Чăвашла

VulaCV - Чăвашла вулаттаракан сайт

Discovering SharePoint

And going crazy doing it

Bram de Jager - Coder, Speaker, Author

Office 365, SharePoint and Azure

SharePoint Dragons

Nikander & Margriet on SharePoint

Paul J. Swider - RealActivity

RealActivity is a specialized healthcare services and solution advisory firm.

Mai Omar Desouki - Avid SharePointer

Egyptian & Vodafoner - Senior SharePoint Consultant

Cameron Dwyer | Office 365, SharePoint, Outlook, OnePlace Solutions

Office 365, SharePoint, OnePlace Solutions & Life's Other Little Wonders

paul.tavares

Me and My doings!

Share SharePoint Points !

By Mohit Vashishtha

Jimmy Janlén "Den Scrummande Konsulten"

Erfarenheter, synpunkter och raljerande om Scrum från Jimmy Janlén

Aryan Nava

| Blockchain | Serverless Architecture | Microservices Architecture | DevOps | AWS Lambda | Teraform |

SPJoel

SharePoint for everyone

SharePointRyan

Ryan Dennis is a SharePoint Solution Architect with a passion for SharePoint and PowerShell

SharePoint 2020

The Vision for a Future of Clarity

Aharoni in Unicode

Treacle tarts for great justice

... And All That JS

JavaScript, Web Apps and SharePoint

blksthl

Mostly what I know about SharePoint - CommunicoCuspis

%d bloggers like this: