Exemple #1
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            rptSiteCreationLists.DataSource = SiteCreationEngine.GetLists();
            rptSiteCreationLists.DataBind();
        }
Exemple #2
0
        private void DebugData(SiteCreationEngine engine, SPItemEventProperties properties, string siteTitleValue, string siteTemplateValue)
        {
            Debug.WriteLine(string.Format("siteTitleField [{0}]", engine.SiteField));
            Debug.WriteLine(string.Format("siteTemplateField [{0}]", engine.TemplateField));
            Debug.WriteLine(string.Format("siteUrlField [{0}]", engine.UrlField));

            Debug.WriteLine(string.Format("siteTitleValue [{0}]", siteTitleValue));
            Debug.WriteLine(string.Format("siteTemplateValue [{0}]", siteTemplateValue));

            Debug.WriteLine(string.Format("webUrl [{0}]", properties.WebUrl));
            Debug.WriteLine(string.Format("listId [{0}]", properties.ListId));
        }
Exemple #3
0
        /// <summary>
        /// Asynchronous After event that occurs after a new item has been added to its containing object.
        /// </summary>
        /// <param name="properties">An <see cref="T:Microsoft.SharePoint.SPItemEventProperties"></see> object that represents properties of the event handler.</param>
        public override void ItemAdded(SPItemEventProperties properties)
        {
            SPList                   currentList = properties.ListItem.ParentList;
            SiteCreationEngine       engine      = new SiteCreationEngine(currentList);
            SiteCreationEventActions actions     = new SiteCreationEventActions();

            string siteTitleValue    = properties.ListItem[engine.SiteField].ToString();
            string siteTemplateValue = properties.ListItem[engine.TemplateField].ToString();

            if (string.IsNullOrEmpty(siteTitleValue))
            {
                throw new ArgumentException(SiteCreationEngine.GetResourceString("ErrCantBeEmpty"));
            }

            Dictionary <string, string> templates = engine.GetTemplates();

            if (!templates.ContainsKey(siteTemplateValue))
            {
                throw new ArgumentException(SiteCreationEngine.GetResourceString("ErrBadTemplateDefinition"));
            }

            DebugData(engine, properties, siteTitleValue, templates[siteTemplateValue]);

            SPWeb web;

            web = actions.CreateWeb(properties.WebUrl,
                                    siteTitleValue,
                                    templates[siteTemplateValue],
                                    engine.OptUniquePermissions,
                                    engine.OptForceDup);

            properties.ListItem[engine.UrlField] = web.Url;
            properties.ListItem.Update();

            if (engine.OptOnQuickLaunch)
            {
                actions.AddOnQuickLaunchBar(web);
            }

            actions.SetUseSharedNavbar(web, engine.OptUseSharedNavBar);

            base.ItemAdded(properties);
        }
Exemple #4
0
        /// <summary>
        /// Synchronous before event that occurs before an existing item is completely deleted.
        /// </summary>
        /// <param name="properties">An <see cref="T:Microsoft.SharePoint.SPItemEventProperties"></see> object that represents properties of the event handler.</param>
        public override void ItemDeleting(SPItemEventProperties properties)
        {
            SPList                   currentList = properties.ListItem.ParentList;
            SiteCreationEngine       engine      = new SiteCreationEngine(currentList);
            SiteCreationEventActions actions     = new SiteCreationEventActions();

            string siteUrlValue = properties.ListItem[engine.UrlField].ToString();

            //SPFieldUrl fieldUrl = properties.ListItem[engine.UrlField] as SPFieldUrl;

            if (!string.IsNullOrEmpty(siteUrlValue))
            {
                if (siteUrlValue.IndexOf(',') > 0)
                {
                    siteUrlValue = siteUrlValue.Substring(0, siteUrlValue.IndexOf(','));
                }
                actions.DeleteWeb(siteUrlValue);
            }

            base.ItemDeleting(properties);
        }
Exemple #5
0
        public override void ItemAdding(SPItemEventProperties properties)
        {
            try
            {
                SPSControlar controlador = new SPSControlar("754806B7-B6B5-444C-BB3A-97B2D016404C",
                                                            "SiteCreationEvent.1.0");

                SiteCreationEngine engine = new SiteCreationEngine(properties.ListId);

                if (controlador.Aceptado())
                {
                    SiteCreationEventActions actions = new SiteCreationEventActions();

                    foreach (DictionaryEntry prop in properties.AfterProperties)
                    {
                        Debug.WriteLine(prop.Key + " -> " + prop.Value);
                    }

                    string siteTitleValue = properties.AfterProperties[engine.SiteField].ToString();

                    if (string.IsNullOrEmpty(siteTitleValue))
                    {
                        throw new ArgumentException(SiteCreationEngine.GetResourceString("ErrCantBeEmpty"));
                    }

                    string siteTemplateValue;

                    Dictionary <string, string> templates = engine.GetTemplates();

                    if (engine.OptHideTemplateField)
                    {
                        IEnumerator enumerator = templates.Keys.GetEnumerator();
                        enumerator.MoveNext();
                        siteTemplateValue = enumerator.Current as string;
                    }
                    else
                    {
                        siteTemplateValue = properties.AfterProperties[engine.TemplateField].ToString();
                    }


                    if (string.IsNullOrEmpty(siteTemplateValue) || !templates.ContainsKey(siteTemplateValue))
                    {
                        throw new ArgumentException(SiteCreationEngine.GetResourceString("ErrBadTemplateDefinition"));
                    }

                    DebugData(engine, properties, siteTitleValue, templates[siteTemplateValue]);

                    SPWeb web;

                    try
                    {
                        web = actions.CreateWeb(properties.WebUrl,
                                                siteTitleValue,
                                                templates[siteTemplateValue],
                                                engine.OptUniquePermissions,
                                                engine.OptForceDup);

                        properties.AfterProperties[engine.UrlField] = web.Url;

                        if (engine.OptOnQuickLaunch)
                        {
                            actions.AddOnQuickLaunchBar(web);
                        }

                        actions.SetUseSharedNavbar(web, engine.OptUseSharedNavBar);
                        actions.SetPermissions(web, engine.NewPermissions);
                    }
                    catch (SPSException ex)
                    {
                        Debug.WriteLine(ex.Message);

                        if (engine.OptLogError)
                        {
                            properties.AfterProperties[engine.UrlField] = "http://, " + ex.Message;
                            // + " " + ex.InnerException.Message
                        }
                    }
                }
                else
                {
                    Debug.WriteLine(ERR_LICENSE);
                    properties.AfterProperties[engine.UrlField] = "http://, " + ERR_LICENSE;
                }

                base.ItemAdding(properties);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
        }
        /// <summary>
        /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event.
        /// </summary>
        /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data. </param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            _engine = new SiteCreationEngine(_list);
            //_category = _list.ID.ToString("B");

            if (!Page.IsPostBack)
            {
                //GetDataFromConfigurationManager();

                // No current data
                if (!_engine.ListHasEventHandler())
                {
                    ddlSiteTitleField.Items.Clear();
                    ddlSiteUrlField.Items.Clear();

                    foreach (SPField field in _list.Fields)
                    {
                        if (!field.Hidden && !field.ReadOnlyField)
                        {
                            if (field.Type == SPFieldType.Text)
                            {
                                ddlSiteTitleField.Items.Add(new ListItem(field.Title, field.StaticName));
                            }

                            if (field.Type == SPFieldType.URL)
                            {
                                ddlSiteUrlField.Items.Add(new ListItem(field.Title, field.StaticName));
                            }

                            if (field.Type == SPFieldType.Choice)
                            {
                                ddlTemplateField.Items.Add(new ListItem(field.Title, field.StaticName));
                            }
                        }
                    }

                    if (ddlSiteTitleField.Items.Count == 0)
                    {
                        lblSiteTitleField.Text = "Require almost a field type text to store the Site Title.";
                    }

                    if (ddlSiteUrlField.Items.Count == 0)
                    {
                        lblSiteUrlField.Text = "Require almost a field type hyperlink to store the Url.";
                    }

                    if (ddlTemplateField.Items.Count == 0)
                    {
                        lblTemplateField.Text = "Require almost a field type choice to store the Templates.";
                    }

                    if (ddlSiteTitleField.Items.Count == 0 ||
                        ddlSiteUrlField.Items.Count == 0 ||
                        ddlTemplateField.Items.Count == 0)
                    {
                        BtnSave.Enabled = false;
                    }

                    BtnDelete.Enabled = false;


                    chkOptHideTemplateField.Checked = false;
                    chkOptOnQuickLaunch.Checked     = true;
                    chkOptUseSharedNavBar.Checked   = true;


                    chkOptLogError.Checked      = true;
                    chkOptForceCreation.Checked = true;

                    BindTemplateMap(true);
                }
                else
                {
                    ddlSiteTitleField.Items.Add(GetFieldNameFromStaticName(_engine.SiteField));
                    ddlSiteTitleField.Enabled = false;
                    ddlSiteUrlField.Items.Add(GetFieldNameFromStaticName(_engine.UrlField));
                    ddlSiteUrlField.Enabled = false;
                    ddlTemplateField.Items.Add(GetFieldNameFromStaticName(_engine.TemplateField));
                    ddlTemplateField.Enabled = false;

                    chkOptHideTemplateField.Checked = _engine.OptHideTemplateField;
                    chkOptHideTemplateField.Enabled = false;

                    chkOptLogError.Checked      = _engine.OptLogError;
                    chkOptForceCreation.Checked = _engine.OptForceDup;

                    chkOptOnQuickLaunch.Checked    = _engine.OptOnQuickLaunch;
                    chkOptUseSharedNavBar.Checked  = _engine.OptUseSharedNavBar;
                    chkOptUniquePermissons.Checked = _engine.OptUniquePermissions;
                    txtOptNewPermissions.Text      = _engine.NewPermissions;

                    chkOptAttachDelete.Checked = _engine.OptAttachDelete;
                    chkOptAttachDelete.Enabled = false;

                    BindTemplateMap(false);
                }
            }

            encDescription.Text = string.Format("Selected list: {0} at {1}", _list.Title, _list.ParentWeb.Url);
        }