예제 #1
0
        private void SetSeriesHierarchy(Title item, Title parent)
        {
            long parentId = parent.Id;

            switch (parent.Kind)
            {
            case TitleKind.Season:
                if (item.Kind == TitleKind.Title)
                {
                    item.Kind = TitleKind.Disk;
                }
                if (parent.Season > 0)
                {
                    item.Season = parent.Season;
                }
                break;

            case TitleKind.Series:
                if (item.Kind != TitleKind.Season && item.Season > 0)
                {
                    long saeasonId = -1;
                    foreach (var title in TitlePersistence.ListTitlesByParent(parentId))
                    {
                        if (title.Kind == TitleKind.Season && title.Season == item.Season)
                        {
                            saeasonId = title.Id;
                            break;
                        }
                    }
                    if (saeasonId < 0)
                    {
                        saeasonId = TitlePersistence.AddTitle(parent.TitleName + " Season " + item.Season.ToString(), TitleKind.Season, item.Season, 0, 0, parentId).Id;
                    }
                    parentId = saeasonId;
                }
                break;
            }
            item.ParentTitleId = parentId;
        }
예제 #2
0
 private void BtnCreateSeries_Click(object sender, EventArgs e)
 {
     TitlePersistence.AddTitle(TbxSeries.Text, TitleKind.Series, 0, 0, 0, null);
     BtnCreateSeries.Enabled = false;
 }
예제 #3
0
        private void BtnCreateSeasons_Click(object sender, EventArgs e)
        {
            if (m_title == null)
            {
                MessageBox.Show("Need to create series first");
                return;
            }

            string command = TbxSeasonsToCreate.Text;
            string pattern = TbxSeasonPattern.Text.Replace("%", "Season {0}");

            if (string.IsNullOrWhiteSpace(command))
            {
                return;
            }
            var tokens1 = command.Trim().Split(',', ';');
            var seasons = new List <int>();

            foreach (string t in tokens1)
            {
                var tokens2 = t.Trim().Split('-');
                switch (tokens2.Length)
                {
                case 1: seasons.Add(tokens2[0].To <int>(0)); break;

                case 2:
                    for (int i = tokens2[0].To <int>(0); i <= tokens2[1].To <int>(0); i++)
                    {
                        seasons.Add(i);
                    }
                    break;

                default:
                    MessageBox.Show("Invalid session string: " + tokens2);
                    return;
                }
            }

            foreach (int i in seasons)
            {
                bool found = false;
                foreach (var title in foundSeasons)
                {
                    if (title.Season == i)
                    {
                        found = true;
                        break;
                    }
                }
                if (found)
                {
                    continue;
                }

                var season = TitlePersistence.AddTitle(string.Format(pattern, i), TitleKind.Season, i, 0, 0, m_title.Id);
                ClbSeasons.Items.Add(season, true);
                TbxSeasonsToCreate.Text = "";
            }


            BtnCreateSeasons.Enabled = false;
        }