示例#1
0
        public HighlightCollection <HighlightItem> Read()
        {
            HighlightCollection <HighlightItem> highlights = new HighlightCollection <HighlightItem>();

            DbConnection.Open();

            using (DbTransaction trans = DbConnection.BeginTransaction(System.Data.IsolationLevel.Serializable))
            {
                using (DbDataAdapter adpt = Factory.CreateDataAdapter())
                {
                    using (DbCommand cmd = DbConnection.CreateCommand())
                    {
                        cmd.Transaction = trans;
                        cmd.CommandText = Constants.HIGHTLIGHTITEMS_SELECT_ALL;
                        cmd.ExecuteNonQuery();
                        adpt.SelectCommand = cmd;

                        using (DbCommandBuilder bld = Factory.CreateCommandBuilder())
                        {
                            bld.DataAdapter = adpt;

                            using (DataTable tbl = new DataTable())
                            {
                                adpt.Fill(tbl);

                                foreach (DataRow row in tbl.Rows)
                                {
                                    HighlightItem item = new HighlightItem()
                                    {
                                        ID      = int.Parse(row[0].ToString()),
                                        Pattern = row[1].ToString(),
                                        Order   = int.Parse(row[2].ToString()),
                                    };

                                    //HACK: System.Drawing.Color allows storing of the colour as one integer, gonna use this to populate DB and re-hydrate back in code. Easier!

                                    System.Drawing.Color tempCol = System.Drawing.Color.FromArgb(int.Parse(row[3].ToString()));
                                    Color tempCol2 = Color.FromArgb(tempCol.A, tempCol.R, tempCol.G, tempCol.B);
                                    item.ForeColour = tempCol2;

                                    tempCol         = System.Drawing.Color.FromArgb(int.Parse(row[4].ToString()));
                                    tempCol2        = Color.FromArgb(tempCol.A, tempCol.R, tempCol.G, tempCol.B);
                                    item.BackColour = tempCol2;

                                    tempCol           = System.Drawing.Color.FromArgb(int.Parse(row[5].ToString()));
                                    tempCol2          = Color.FromArgb(tempCol.A, tempCol.R, tempCol.G, tempCol.B);
                                    item.BorderColour = tempCol2;

                                    highlights.Add(item);
                                }
                            }
                        }
                    }
                }
            }

            DbConnection.Close();

            return(highlights);
        }
示例#2
0
        private void BtnHighlight_Click(object sender, ButtonStateChangingEventArgs args)
        {
            HighlightCollection highlights         = viewModel.Manager.Source.Highlights;
            Highlight           firstOpenHighlight = highlights.OrderByBegin().FirstOrDefault(h => !h.IsHighlightClosed());

            if (firstOpenHighlight != null)
            {
                firstOpenHighlight.End = mps.MediaPosition;
            }
            else
            {
                highlights.Add(new Highlight(mps.MediaPosition));
            }

            args.NewValue = MediaPositionSlider.GetHighlightState(highlights, mps.MediaPosition);
        }
示例#3
0
        public HighlightCollection<HighlightItem> Read()
        {
            HighlightCollection<HighlightItem> highlights = new HighlightCollection<HighlightItem>();

            DbConnection.Open();

            using (DbTransaction trans = DbConnection.BeginTransaction(System.Data.IsolationLevel.Serializable))
            {
                using (DbDataAdapter adpt = Factory.CreateDataAdapter())
                {
                    using (DbCommand cmd = DbConnection.CreateCommand())
                    {
                        cmd.Transaction = trans;
                        cmd.CommandText = Constants.HIGHTLIGHTITEMS_SELECT_ALL;
                        cmd.ExecuteNonQuery();
                        adpt.SelectCommand = cmd;

                        using (DbCommandBuilder bld = Factory.CreateCommandBuilder())
                        {
                            bld.DataAdapter = adpt;

                            using (DataTable tbl = new DataTable())
                            {
                                adpt.Fill(tbl);

                                foreach (DataRow row in tbl.Rows)
                                {
                                    HighlightItem item = new HighlightItem()
                                    {
                                        ID = int.Parse(row[0].ToString()),
                                        Pattern = row[1].ToString(),
                                        Order = int.Parse(row[2].ToString()),
                                    };

                                    //HACK: System.Drawing.Color allows storing of the colour as one integer, gonna use this to populate DB and re-hydrate back in code. Easier!

                                    System.Drawing.Color tempCol = System.Drawing.Color.FromArgb(int.Parse(row[3].ToString()));
                                    Color tempCol2 = Color.FromArgb(tempCol.A, tempCol.R, tempCol.G, tempCol.B);
                                    item.ForeColour = tempCol2;

                                    tempCol = System.Drawing.Color.FromArgb(int.Parse(row[4].ToString()));
                                    tempCol2 = Color.FromArgb(tempCol.A, tempCol.R, tempCol.G, tempCol.B);
                                    item.BackColour = tempCol2;

                                    tempCol = System.Drawing.Color.FromArgb(int.Parse(row[5].ToString()));
                                    tempCol2 = Color.FromArgb(tempCol.A, tempCol.R, tempCol.G, tempCol.B);
                                    item.BorderColour = tempCol2;

                                    highlights.Add(item);
                                }
                            }
                        }
                    }
                }
            }

            DbConnection.Close();

            return highlights;
        }