コード例 #1
0
        public SimSPWeb Add(string webUrl)
        {
            var    simWeb = this.ParentWeb;
            string name   = webUrl;
            int    num    = webUrl.LastIndexOf('/');

            if (num >= 0)
            {
                name = webUrl.Substring(num + 1);
                var url = webUrl.Substring(0, num);
                simWeb = this[url];
            }

            if (!simWeb.Exists)
            {
                throw new InvalidOperationException();
            }

            var simWeb2 = new SimSPWeb
            {
                ParentWeb = simWeb.Instance,
                Name      = name
            };

            simWeb.Webs.Add(simWeb2.Instance);

            return(simWeb2);
        }
コード例 #2
0
        private static void SetGetContextSPWeb()
        {
            ShimSPContext.GetContextSPWeb = (SPWeb web) =>
            {
                var httpContext = HttpContext.Current;

                if (httpContext != null)
                {
                    var simcontext = SimSPContext.FromInstance(SPContext.GetContext(httpContext));
                    simcontext.Web = web;

                    return(simcontext.Instance);
                }
                else
                {
                    var simweb = SimSPWeb.FromInstance(web);
                    if (simweb.SPContext == null)
                    {
                        var spcontext = new SimSPContext {
                            Web = web
                        };
                        simweb.SPContext = spcontext;
                    }

                    return(simweb.SPContext.Instance);
                }
            };
        }
コード例 #3
0
        public void Delete(string webUrl)
        {
            var simWeb = this[webUrl];

            if (simWeb.Exists)
            {
                var simSPWeb2 = SimSPWeb.FromInstance(simWeb.ParentWeb);
                simSPWeb2.Webs.Remove(simWeb.Instance);
                return;
            }
            throw new FileNotFoundException();
        }
コード例 #4
0
        public SimSPWeb this[Guid id]
        {
            get
            {
                var web = this.FirstOrDefault((SPWeb w) => w.ID == id);
                if (web == null)
                {
                    throw new ArgumentException();
                }

                return(SimSPWeb.FromInstance(web));
            }
        }
コード例 #5
0
 internal SimSPWebCollection(SimSPWeb parentWeb = null)
     : base(null)
 {
     this.ParentWeb = parentWeb;
     base.Fake.Bind((IEnumerable)this);
     base.Fake.CountGet         = (() => base.Count);
     base.Fake.ItemGetInt32     = ((int index) => base[index]);
     base.Fake.ItemAtIndexInt32 = ((int index) => base[index]);
     base.Fake.ItemGetGuid      = ((Guid id) => this[id].Instance);
     base.Fake.ItemGetString    = ((string webUrl) => this[webUrl].Instance);
     base.Fake.AddString        = ((string webUrl) => this.Add(webUrl).Instance);
     base.Fake.DeleteString     = (new FakesDelegates.Action <string>(this.Delete));
     base.Fake.NamesGet         = (() => this.Names);
 }
コード例 #6
0
ファイル: SimSPSite.cs プロジェクト: serenabenny/SPEmulators
        public SimSPWeb OpenWeb(Guid webId)
        {
            using (IEnumerator <SPWeb> enumerator = (
                       from web in this.AllWebs
                       where web.ID == webId
                       select web).GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    SPWeb current = enumerator.Current;
                    return(SimSPWeb.FromInstance(current));
                }
            }

            throw new FileNotFoundException();
        }
コード例 #7
0
        public SimSPWeb this[string url]
        {
            get
            {
                var      simWeb = this.ParentWeb;
                string[] array  = url.Split(new char[] { '/' });
                for (int i = 0; i < array.Length; i++)
                {
                    var webName = array[i];
                    var web     = simWeb.Webs.FirstOrDefault((SPWeb w) => w.Name == webName);
                    if (web == null)
                    {
                        var simWeb2 = this.Add(webName);
                        simWeb2.Exists = false;
                        web            = simWeb2.Instance;
                    }

                    simWeb = SimSPWeb.FromInstance(web);
                }

                return(simWeb);
            }
        }
コード例 #8
0
ファイル: SimSPSite.cs プロジェクト: serenabenny/SPEmulators
        public SimSPWeb OpenWeb(string url)
        {
            Uri      baseUri = new Uri(this.Url);
            Uri      uri     = new Uri(baseUri, url);
            SimSPWeb result;

            foreach (SPWeb current in this.AllWebs)
            {
                if (uri == new Uri(current.Url))
                {
                    result = SimSPWeb.FromInstance(current);
                    return(result);
                }
            }
            result = new SimSPWeb
            {
                Site   = base.Instance,
                Name   = url,
                Title  = url,
                Exists = false
            };
            return(result);
        }