Пример #1
0
        /// <summary>
        /// Check requirements of package
        /// </summary>
        /// <returns></returns>
        public bool CheckRequirements()
        {
            using (var db = new EaDataModel(_provider, _connectionString))
            {
                try
                {
                    var falseRequirements = (from o in db.t_object
                                             where o.Package_ID == _pkg.PackageID &&
                                             o.Object_Type == "Requirement"
                                             group o by o.Multiplicity into grp
                                             where grp.Count() > 1
                                             join o1 in db.t_object on grp.Key equals o1.Multiplicity
                                             where o1.Package_ID == _pkg.PackageID &&
                                             o1.Object_Type == "Requirement"
                                             orderby o1.Multiplicity
                                             select new
                    {
                        CLASSGUID = o1.ea_guid,
                        CLASSTYPE = o1.Object_Type,
                        Name = o1.Name,
                        Type = o1.Object_Type,
                        DoorsID = o1.Multiplicity,
                        Error = "DoorsID not unique"
                    }).ToDataTable();

                    // Make EA xml
                    string xml = Xml.MakeXmlFromDataTable(falseRequirements);
                    // Output to EA
                    _rep.RunModelSearch("", "", "", xml);
                    return(falseRequirements.Rows.Count == 0);
                }
                catch (Exception e)
                {
                    MessageBox.Show($@"{e}", @"Error reading EA Repository, break!!");
                    return(false);
                }
            }
        }