示例#1
0
        public void AddIndividual(IndividualClass individual)
        {
            if (individual == null)
            {
                trace.TraceData(TraceEventType.Error, 0, "GeniCache: Trying to add individual == null");
            }
            else if (individual.GetXrefName().Length == 0)
            {
                trace.TraceEvent(TraceEventType.Error, 0, "GeniCache:AddIndividual():error: no xref!");
            }
            else
            {
                bool relations = false;
                trace.TraceInformation("cached individual " + individual.GetXrefName());

                if (individual.GetFamilyChildList() != null)
                {
                    if (individual.GetFamilyChildList().Count > 0)
                    {
                        relations = true;
                    }
                }
                if (individual.GetFamilySpouseList() != null)
                {
                    if (individual.GetFamilySpouseList().Count > 0)
                    {
                        relations = true;
                    }
                }
                if (!relations)
                {
                    if (individual.GetPublic())
                    {
                        string         url  = "";
                        IList <string> urls = individual.GetUrlList();
                        if (urls.Count > 0)
                        {
                            url = urls[0];
                        }
                        trace.TraceData(TraceEventType.Information, 0, "Person has no relations! " + individual.GetXrefName() + " " + url + " " + individual.GetName());
                    }
                    CheckF2iReferences(ref individual);
                }
                CacheIndividual(individual);
                latestUpdate = DateTime.Now;
            }
        }