예제 #1
0
        private void SetNav(HyperLink navLink, EntrySummary entry)
        {
            if (navLink == null)
            {
                return;
            }
            string format = navLink.Attributes["Format"];

            if (String.IsNullOrEmpty(format))
            {
                format = "{0}";
            }

            navLink.Attributes.Remove("Format");

            string entryTitle    = HttpUtility.HtmlDecode(entry.Title);
            string sizeLimitText = navLink.Attributes["TextSizeLimit"];

            if (!String.IsNullOrEmpty(sizeLimitText))
            {
                int sizeLimit;
                if (int.TryParse(sizeLimitText, out sizeLimit))
                {
                    if (sizeLimit > 0 && sizeLimit < entryTitle.Length)
                    {
                        entryTitle = entryTitle.Substring(0, sizeLimit) + "...";
                    }
                }
            }
            navLink.Attributes.Remove("TextSizeLimit");

            navLink.Text        = HttpUtility.HtmlEncode(string.Format(format, entryTitle));
            navLink.NavigateUrl = Url.EntryUrl(entry);
        }
예제 #2
0
 public override string ToString()
 {
     if (Items.Count != 1)
     {
         return(string.Format("{0}[{1}]", this.GetType().Name, Items.Count.ToString()));
     }
     else
     {
         EntrySummary summary = DataManager.Instance.DataIndices[DataManager.DataType.Item].Entries[Items.GetSpawn(0).ID];
         return(string.Format("{0}: {1}", this.GetType().Name, summary.Name.ToLocal()));
     }
 }
예제 #3
0
        private void OpenList(DataManager.DataType dataType, GetEntry entryOp, CreateEntry createOp)
        {
            DataList choices = new DataList();

            choices.Text = dataType.ToString();
            string[] entries = DataManager.Instance.DataIndices[dataType].GetLocalStringArray(true);
            choices.AddEntries(entries);
            choices.SelectedOKEvent = () => {
                if (choices.ChosenEntry > -1)
                {
                    ElementForm editor   = new ElementForm();
                    int         entryNum = choices.ChosenEntry;
                    editor.Text = entries[entryNum];
                    IEntryData data = entryOp(entryNum);
                    editor.Text = data.ToString();//data.GetType().ToString() + "#" + entryNum;
                    DataEditor.LoadDataControls(data, editor.ControlPanel);

                    editor.OnOK += (object okSender, EventArgs okE) => {
                        object obj = data;
                        DataEditor.SaveDataControls(ref obj, editor.ControlPanel);
                        data = (IEntryData)obj;
                        DataManager.SaveData(entryNum, dataType.ToString(), data);
                        DataManager.Instance.ClearCache(dataType);
                        IEntryData   entryData    = ((IEntryData)data);
                        EntrySummary entrySummary = entryData.GenerateEntrySummary();
                        DataManager.Instance.DataIndices[dataType].Entries[entryNum] = entrySummary;
                        DataManager.Instance.SaveIndex(dataType);
                        choices.ModifyEntry(entryNum, entrySummary.GetLocalString(true));
                        editor.Close();
                    };
                    editor.OnCancel += (object okSender, EventArgs okE) => {
                        editor.Close();
                    };

                    editor.Show();
                }
            };
            choices.SelectedAddEvent = () => {
                ElementForm editor   = new ElementForm();
                int         entryNum = DataManager.Instance.DataIndices[dataType].Entries.Count;
                editor.Text = "New " + dataType.ToString();
                IEntryData data = createOp();
                editor.Text = data.ToString();//data.GetType().ToString() + "#" + entryNum;
                DataEditor.LoadDataControls(data, editor.ControlPanel);

                editor.OnOK += (object okSender, EventArgs okE) => {
                    object obj = data;
                    DataEditor.SaveDataControls(ref obj, editor.ControlPanel);
                    data = (IEntryData)obj;
                    DataManager.SaveData(entryNum, dataType.ToString(), data);
                    DataManager.Instance.ClearCache(dataType);
                    IEntryData   entryData    = ((IEntryData)data);
                    EntrySummary entrySummary = entryData.GenerateEntrySummary();
                    DataManager.Instance.DataIndices[dataType].Entries.Add(entrySummary);
                    DataManager.Instance.SaveIndex(dataType);
                    entries = DataManager.Instance.DataIndices[dataType].GetLocalStringArray(true);
                    choices.AddEntry(entrySummary.GetLocalString(true));
                    editor.Close();
                };
                editor.OnCancel += (object okSender, EventArgs okE) => {
                    editor.Close();
                };

                editor.Show();
            };
            choices.Show();
        }
        public static Func <QueryOverProjectionBuilder <Entry>, QueryOverProjectionBuilder <Entry> > FromEntry(EntrySummary entrySummaryAlias)
        {
            return(list =>
            {
                list
                .Select(e => e.TagsCommaSeparated).WithAlias(() => entrySummaryAlias.TagsCommaSeparated)
                .Select(e => e.CommentCount).WithAlias(() => entrySummaryAlias.CommentCount)
                .Select(e => e.MetaDescription).WithAlias(() => entrySummaryAlias.MetaDescription)
                .Select(e => e.Name).WithAlias(() => entrySummaryAlias.Name)
                .Select(e => e.Published).WithAlias(() => entrySummaryAlias.Published)
                .Select(e => e.Author).WithAlias(() => entrySummaryAlias.Author)
                .Select(e => e.Summary).WithAlias(() => entrySummaryAlias.Summary)
                .Select(e => e.Title).WithAlias(() => entrySummaryAlias.Title)
                .Select(e => e.Status).WithAlias(() => entrySummaryAlias.Status)
                .Select(e => e.LatestRevision.Revised).WithAlias(() => entrySummaryAlias.LastRevised)
                .Select(x => x.Id).WithAlias(() => entrySummaryAlias.Id);

                return list;
            });
        }
예제 #5
0
        public static IEnumerable <MvcHtmlString> CssKeywordsFor(this HtmlHelper html, EntrySummary entry)
        {
            var tags = entry.TagsCommaSeparated.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);

            return(from tagName in tags
                   select CssKeywordsForTag(html, tagName));
        }