Esempio n. 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="View"/> class.
 /// </summary>
 public View()
 {
     m_Parent    = null;
     m_Name      = String.Empty;
     m_FieldCont = new ViewFieldContainer(this);
     m_Rows      = new List <Row>();
     m_Text      = String.Empty;
     m_Checksum  = 0;
 }
        /// <summary>
        /// Qualifies this object against another one.
        /// </summary>
        /// <param name="target">The target.</param>
        /// <param name="dir">The direction.</param>
        /// <returns></returns>
        public Modification qualifyVersus(ViewFieldContainer target, Direction dir)
        {
            Qualifier = Modification.None;

            foreach (ViewField src in Fields)
            {
                bool found = false;

                foreach (ViewField tgt in target.Fields)
                {
                    if (src.Name == tgt.Name && tgt.IsGhost == false)
                    {
                        Modification mod = src.qualifyVersus(tgt, dir);

                        if (Qualifier == Modification.None && mod != Modification.None)
                        {
                            Qualifier = Modification.Modified;
                        }

                        src.Twin = tgt;

                        found = true;
                        break;
                    }
                }

                if (found == false)
                {
                    if (dir == Direction.Out)
                    {
                        src.Qualifier = Modification.Deleted;
                    }
                    else
                    {
                        src.Qualifier = Modification.Created;
                    }

                    if (src.Twin == null)
                    {
                        target.Fields.Add(new ViewField(src));
                    }

                    Qualifier = Modification.Modified;
                }
            }

            return(Qualifier);
        }