Carrotware.CMS.Mvc.UI.Admin.Service.CMS.CopyWidget C# (CSharp) Метод

CopyWidget() приватный Метод

private CopyWidget ( string DBKey, string ThisPage ) : string
DBKey string
ThisPage string
Результат string
        public string CopyWidget(string DBKey, string ThisPage)
        {
            try {
                CurrentPageGuid = new Guid(ThisPage);
                LoadGuids();

                Guid guidWidget = new Guid(DBKey);

                List<Widget> cacheWidget = cmsAdminWidget;

                List<Widget> ww = (from w in cacheWidget
                                   where w.Root_WidgetID == guidWidget
                                    && w.IsLatestVersion == true
                                   select w).ToList();

                if (ww != null) {
                    foreach (var w in ww) {
                        Guid newWidget = Guid.NewGuid();

                        Widget wCpy = new Widget {
                            Root_ContentID = w.Root_ContentID,
                            Root_WidgetID = newWidget,
                            WidgetDataID = Guid.NewGuid(),
                            PlaceholderName = w.PlaceholderName,
                            ControlPath = w.ControlPath,
                            ControlProperties = w.ControlProperties,
                            IsLatestVersion = true,
                            IsPendingChange = true,
                            IsWidgetActive = true,
                            IsWidgetPendingDelete = false,
                            WidgetOrder = w.WidgetOrder,
                            GoLiveDate = w.GoLiveDate,
                            RetireDate = w.RetireDate,
                            EditDate = SiteData.CurrentSite.Now
                        };

                        cacheWidget.Add(wCpy);
                    }
                }

                cmsAdminWidget = cacheWidget;

                return "OK";
            } catch (Exception ex) {
                SiteData.WriteDebugException("webservice", ex);

                return ex.ToString();
            }
        }