protected override void OnLoad(EventArgs e) { base.OnLoad(e); rptSiteCreationLists.DataSource = SiteCreationEngine.GetLists(); rptSiteCreationLists.DataBind(); }
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)); }
/// <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); }
/// <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); }
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); }