Exemplo n.º 1
0
        /// <summary>
        /// Create pdf items in globals & fill fields of created item
        /// </summary>
        /// <param name="mediaItem"></param>
        private void CreatePDFItem(Item mediaItem)
        {
            if (MASTERDB != null)
            {
                // Get Globals folder
                SiteItem objSite = SiteItem.GetSiteRoot(MASTERDB);
                if (objSite != null)
                {
                    PDFRootItem  objPDFRoot = objSite.GetGlobalsFolder().GetPDFRootItem();
                    TemplateItem template   = MASTERDB.GetTemplate(ImportantNoticeItem.TemplateId);
                    if (objPDFRoot != null && template != null)
                    {
                        // Sanitize Sitecore item name
                        string   sanitizedName = ItemUtil.ProposeValidItemName(tbTitle.Text);
                        string   strDate       = tbDate.Text.Replace("/", "");
                        DateTime date          = DateTime.ParseExact(strDate, "MMddyyyy", CultureInfo.InvariantCulture);
                        if (date != null && !string.IsNullOrEmpty(sanitizedName))
                        {
                            using (new Sitecore.SecurityModel.SecurityDisabler()) {
                                // Create item
                                ImportantNoticeItem createdPDFItem = objPDFRoot.InnerItem.Add(sanitizedName, template);
                                if (createdPDFItem != null)
                                {
                                    //Begin editing
                                    createdPDFItem.InnerItem.Editing.BeginEdit();

                                    // Date
                                    createdPDFItem.InnerItem.Fields["Date"].Value = date.ToString("yyyyMMddTHHmmss", CultureInfo.InvariantCulture);
                                    // Title
                                    createdPDFItem.InnerItem.Fields["Title"].Value = sanitizedName;
                                    // Subject
                                    createdPDFItem.InnerItem.Fields["Subject"].Value = tbSubject.Text;

                                    // Subsidiary Tag + Category tag
                                    string tags = ddlSubsidiary.SelectedValue;

                                    foreach (ListItem li in lbCategories.Items)
                                    {
                                        if (li.Selected)
                                        {
                                            tags += "|" + li.Value;
                                        }
                                    }

                                    createdPDFItem.Tags.GetField("Tag").Value = tags;

                                    // Document ID
                                    createdPDFItem.InnerItem.Fields["Document ID"].Value = tbNoticeNumber.Text;
                                    // Flag
                                    createdPDFItem.InnerItem.Fields["Flag"].Value = cbFlag.Checked ? "1" : "";
                                    // PDF File
                                    string strPDFFile = String.Format("<file mediaid=\"{0}\" src=\"~/media/{1}.ashx\" />", mediaItem.ID.ToString(), mediaItem.ID.ToShortID().ToString());
                                    createdPDFItem.InnerItem.Fields["PDF File"].Value = strPDFFile;
                                    //Close the editing state
                                    createdPDFItem.InnerItem.Editing.EndEdit();

                                    itemsToPublish.Add(createdPDFItem.InnerItem.Parent.Parent.Parent);
                                    itemsToPublish.Add(createdPDFItem.InnerItem.Parent.Parent);
                                    itemsToPublish.Add(createdPDFItem.InnerItem.Parent);
                                    itemsToPublish.Add(createdPDFItem);
                                }
                            }
                        }
                    }
                }
            }
        }