void DisposeDataContextInRequestScope()
 {
     if (Context.Items.Contains(DataContextKey))
     {
         DocumentsDb dataContext = (DocumentsDb)Context.Items[DataContextKey];
         dataContext.Dispose();
         Context.Items.Remove(DataContextKey);
     }
 }
    void DisposeDataContextInCallContextScope()
    {
        DocumentsDb dataContext = CallContext.GetData(DataContextKey) as DocumentsDb;

        if (dataContext != null)
        {
            dataContext.Dispose();
            CallContext.SetData(DataContextKey, null);
        }
    }
    DocumentsDb GetDataContextInCallContextScope()
    {
        DocumentsDb dataContext = CallContext.GetData(DataContextKey) as DocumentsDb;

        if (dataContext == null)
        {
            dataContext = CreateDataContext();
            CallContext.SetData(DataContextKey, dataContext);
        }
        return(dataContext);
    }