示例#1
0
        protected void btnClear_Click(object sender, EventArgs e)
        {
            Guid siteId = SPContext.Current.Site.ID;
            var  rb     = new EPMLiveCore.ReportHelper.ReportBiz(siteId);

            EPMLiveCore.ReportHelper.ListBiz list = rb.GetListBiz(_listId);
            list.ClearLog(_logType);

            FillData();
        }
示例#2
0
        private void FillData()
        {
            Guid siteId = SPContext.Current.Site.ID;
            var  rb     = new EPMLiveCore.ReportHelper.ReportBiz(siteId);

            EPMLiveCore.ReportHelper.ListBiz list = rb.GetListBiz(_listId);
            DataTable dt     = list.GetLog(0);
            DataView  errors = dt.DefaultView;

            if (_logType != "")
            {
                errors.RowFilter = "[Type] = " + _logType;
            }
            grdErrors.DataSource = errors;
            grdErrors.DataBind();
        }
示例#3
0
        protected void Submit_Click(object sender, EventArgs e)
        {
            var fields = new ListItemCollection();

            fields = cblAutomatic.Items;

            // Read selected fields
            // Quirk Alert: if we have disabled an item from javascript, it can't be read here on postback.
            // Instead we have to cycle a hidden checkboxlist that contains resource fileds IF chkResource is checked
            foreach (ListItem field in cblFields.Items)
            {
                if (field.Selected && fields.FindByText(field.Text) == null)
                {
                    fields.Add(field);
                }
            }

            // Add all resource fields if chkResource is checked.
            // (Only add if not already in the list)
            if (chkResource.Checked)
            {
                foreach (ListItem resourceField in cblResources.Items)
                {
                    if (fields.FindByText(resourceField.Text) == null)
                    {
                        fields.Add(resourceField);
                    }
                }
            }

            var rb = new EPMLiveCore.ReportHelper.ReportBiz(SPContext.Current.Site.ID);

            if (_existing)
            {
                EPMLiveCore.ReportHelper.ListBiz lb = rb.GetListBiz(_existingListId);
                lb.UpdateListMapping(fields);
            }
            else
            {
                var listId = new Guid(ddlLists.SelectedValue);
                rb.CreateListBiz(listId, fields);
            }

            try
            {
                //FOREIGN IMPLEMENTATION -- START
                var DAO = new EPMLiveCore.ReportHelper.EPMData(SPContext.Current.Site.ID);
                rb.UpdateForeignKeys(DAO);
                DAO.Dispose();
                // -- END
            }
            catch (Exception ex)
            {
                SPSecurity.RunWithElevatedPrivileges(delegate
                {
                    if (!EventLog.SourceExists("EPMLive Reporting - UpdateForeignKeys"))
                    {
                        EventLog.CreateEventSource("EPMLive Reporting - UpdateForeignKeys", "EPM Live");
                    }

                    var myLog = new EventLog("EPM Live", ".", "EPMLive Reporting - UpdateForeignKeys");
                    myLog.MaximumKilobytes = 32768;
                    myLog.WriteEntry(ex.Message + ex.StackTrace, EventLogEntryType.Error, 4001);
                });
            }

            SPUtility.Redirect("epmlive/ListMappings.aspx", SPRedirectFlags.RelativeToLayoutsPage, HttpContext.Current);
        }
示例#4
0
        private SPList PopulateFieldList()
        {
            //Reset checkboxlists
            cblFields.Items.Clear();
            cblAutomatic.Items.Clear();
            cblResources.Items.Clear();

            Guid listId = _existing
                ? _existingListId
                : new Guid(ddlLists.SelectedValue);

            SPList selectedList = null;
            var    mappedFields = new List <string>();
            bool   resList      = false;

            using (SPWeb web = SPContext.Current.Site.OpenWeb())
            {
                try
                {
                    selectedList = web.Lists[listId];
                }
                catch { }
            }

            if (selectedList == null)
            {
                foreach (SPWeb w in SPContext.Current.Site.AllWebs)
                {
                    try
                    {
                        selectedList = w.Lists[listId];
                    }
                    catch { }

                    w.Close();

                    if (selectedList != null)
                    {
                        break;
                    }
                }
            }

            // Get existing mappings if they exist
            if (_existing)
            {
                var rb = new EPMLiveCore.ReportHelper.ReportBiz(SPContext.Current.Site.ID);
                EPMLiveCore.ReportHelper.ListBiz list = rb.GetListBiz(_existingListId);
                mappedFields        = list.GetMappedFieldsStrings();
                resList             = list.ResourceList;
                chkResource.Checked = list.ResourceList;
                chkResource.Enabled = true;
            }

            Collection <string> required  = EPMLiveCore.ReportHelper.ListBiz.RequiredResourceFields;
            Collection <string> automatic = EPMLiveCore.ReportHelper.ListBiz.AutomaticFields;

            // Get all fields in List - and sort them
            var fields  = new List <SPField>();
            int matches = 0;

            foreach (SPField field in selectedList.Fields)
            {
                if (required.Contains(field.InternalName))
                {
                    matches++;
                }
                fields.Add(field);
            }
            fields.Sort((f1, f2) => f1.Title.CompareTo(f2.Title));

            // Determine if this list has necessary fields to be a resource list
            bool resourceCandidate = (required.Count == matches);

            chkResource.Enabled = resourceCandidate;

            if (!_existing)
            {
                chkResource.Checked = resourceCandidate;
            }

            // Create Checkbox List
            //      automatic: always selected
            //      required: optional but necessary for resource reporting

            int insertReq     = 0; // Position in list to insert required items (top)
            int insertChecked = 0;

            //var resourceItems = new ListItemCollection();
            foreach (SPField field in fields)
            {
                var item = new ListItem(string.Format("{0}", field.Title), field.Id.ToString());
                if (field.InternalName == "Title")
                {
                    item.Enabled  = false;
                    item.Selected = true;
                    cblFields.Items.Insert(0, item);
                    item.Text = string.Format("<span style='font-weight:bold'>{0}</span>", item.Text);
                    insertReq++;
                    insertChecked++;
                }

                // Save automatic fields so we can pick them up later.
                if (automatic.Contains(field.InternalName))
                {
                    cblAutomatic.Items.Add(item);
                    continue;
                }

                if (automatic.Contains(field.InternalName))
                {
                    cblAutomatic.Items.Add(item);
                    continue;
                }

                if (field.InternalName.ToLower() == "contenttype")
                {
                    cblFields.Items.Add(item);
                    continue;
                }

                // If field is hidden but already a part of Mapping. It should display on Front-end otherwise it will break mapping on saving
                if ((field.Hidden && !mappedFields.Contains(field.InternalName)) ||
                    field.Type == SPFieldType.Computed ||
                    automatic.Contains(field.InternalName)    // Change: don't show automatic fields
                    )
                {
                    continue;
                }

                if (mappedFields.Contains(field.InternalName))
                {
                    item.Selected = true;
                }
                if (resourceCandidate && required.Contains(field.InternalName))
                {
                    if (!_existing)
                    {
                        item.Selected = true;
                    }
                    item.Text = string.Format("<span style='font-weight:bold'>{0}</span>", item.Text);
                    cblFields.Items.Insert(insertReq++, item);
                    // Set hidden CBL for reading values on postback
                    cblResources.Items.Add(item);
                    insertChecked++;
                }
                else
                {
                    if (item.Selected)
                    {
                        cblFields.Items.Insert(insertChecked++, item);
                    }
                    else
                    {
                        cblFields.Items.Add(item);
                    }
                }
            }

            // Create javascript magic
            if (resourceCandidate)
            {
                WriteJS(cblFields);
            }

            pDescription1.Visible = resourceCandidate;
            pDescription2.Visible = resList;

            return(selectedList);
        }