public AccountInfo(MailData mailData, int accountId)
 {
     MailData = mailData;
     AccountId = accountId;
 }
 public PersonInfo(MailData mailData, string name, EPersonNameTrust nameTrust)
 {
     _mailData = mailData;
     _peopleData = mailData.PeopleData;
     PersonId = _peopleData.SQLAddPerson();
     SetName(name, nameTrust);
 }
        public PersonInfo(MailData mailData, PersonInfoBase personInfo)
        {
            _mailData = mailData;
            _peopleData = mailData.PeopleData;

            try
            {
                PersonId = personInfo.PersonId;
                Name = personInfo.Name;
                NameTrust = (EPersonNameTrust)personInfo.NameTrust;
                _accountIds = new List<int>(from id in (personInfo.AccountIdsStr).Split(new string[] { accountSep }, StringSplitOptions.RemoveEmptyEntries) select int.Parse(id));
                CustomData = personInfo.CustomData;
            }
            catch (Exception ex)
            {
                GenLib.Log.LogService.LogException("PersonInfo constructor exception: ", ex);
            }
        }
        public PersonInfo(MailData mailData, DataRow data)
        {
            _mailData = mailData;
            _peopleData = mailData.PeopleData;

            try
            {
                PersonId = (int)(long)data[0];
                Name = "";
                if (!System.DBNull.Value.Equals(data[1]))
                    Name = (string)data[1];
                else
                    GenLib.Log.LogService.LogError("PersonInfo constructor error: Name is null.");
                NameTrust = (EPersonNameTrust)(byte)data[2];
                if (!System.DBNull.Value.Equals(data[3]))
                    _accountIds = new List<int>(from id in ((string)data[3]).Split(new string[] { accountSep }, StringSplitOptions.RemoveEmptyEntries) select int.Parse(id));
                if (!System.DBNull.Value.Equals(data[4])) CustomData = (string)data[4];
            }
            catch (Exception ex)
            {
                GenLib.Log.LogService.LogException("PersonInfo constructor: ", ex);
            }
        }
        public void InitIndexingService(string profileName)
        {
            try {
                // init the indexing service
                //resultTypeToEnum["attachmentData"] = Templates.ResultTypeEnum.attachmentData;
                resultTypeToEnum["itemData"] = Contextify.Shared.Base.Templates.ResultTypeEnum.itemData;
                resultTypeToEnum["keywordData"] = Contextify.Shared.Base.Templates.ResultTypeEnum.keywordData;
                resultTypeToEnum["peopleData"] = Contextify.Shared.Base.Templates.ResultTypeEnum.peopleData;
                resultTypeToEnum["timelineData"] = Contextify.Shared.Base.Templates.ResultTypeEnum.timelineData;

                // put initialization here
                MailData = new MailData(new SettingsServer(profileName, profileName));
                MailData.LogInfoHandler = AddEvent;
                PeopleData = MailData.PeopleData;

                AddEventAndLog("Loading profile data...");
                MailData.LoadData();
                AddEventAndLog("Profile loaded.");
                MailData.ProfileSettings.MinerUpdateNGrams = true;
                MailData.MinerUpdateSettings();

                _tagIdEmails = MailData.CreateTagIfNotExisting("Emails", "ROOT::Emails", MailData.TagIdRoot);
                _tagIdForums = MailData.CreateTagIfNotExisting("Forums", "ROOT::Forums", MailData.TagIdRoot);
                _tagIdWikis = MailData.CreateTagIfNotExisting("Wiki pages", "ROOT::Wiki pages", MailData.TagIdRoot);
                _tagIdIssues = MailData.CreateTagIfNotExisting("Issues", "ROOT::Issues", MailData.TagIdRoot);
                _tagIdIssuesMeta = MailData.CreateTagIfNotExisting("Issues meta", "ROOT::Issues meta", MailData.TagIdRoot);
                _tagIdIssuesStatus = MailData.CreateTagIfNotExisting("Issues status", "Issues meta::Issues status", _tagIdIssuesMeta);
                _tagIdIssuesResolution = MailData.CreateTagIfNotExisting("Issues resolution", "Issues meta::Issues resolution", _tagIdIssuesMeta);
                _tagIdCommits = MailData.CreateTagIfNotExisting("Source code commits", "ROOT::Source code commits", MailData.TagIdRoot);
                _tagIdAnnotationConcepts = MailData.CreateTagIfNotExisting("Annotation ontology", "ROOT::Annotation ontology", MailData.TagIdRoot);
                _tagIdSourceCode = MailData.CreateTagIfNotExisting("Information Sources ontology", "ROOT::Information Sources ontology", MailData.TagIdRoot);
                _tagIdCustomSources = MailData.CreateTagIfNotExisting("Custom sources", "ROOT::Custom sources", MailData.TagIdRoot);
                // this tag is assigned to all posts that are not issues. we need this so that we support filtering by status and resolution
                //_tagIdNonIssue = MailData.CreateTagIfNotExisting("NonIssue", "ROOT::NonIssue", MailData.TagIdRoot);

                //_tagIdIssuesStatusOpen = MailData.CreateTagIfNotExisting("Open", TagPrefixStatus + "Open", _tagIdIssuesStatus, TagMetaStatus);
                //_tagIdIssuesStatusVerified = MailData.CreateTagIfNotExisting("Verified", TagPrefixStatus + "Verified", _tagIdIssuesStatus, TagMetaStatus);
                //_tagIdIssuesStatusAssigned = MailData.CreateTagIfNotExisting("Assigned", TagPrefixStatus + "Assigned", _tagIdIssuesStatus, TagMetaStatus);
                //_tagIdIssuesStatusResolved = MailData.CreateTagIfNotExisting("Resolved", TagPrefixStatus + "Resolved", _tagIdIssuesStatus, TagMetaStatus);
                //_tagIdIssuesStatusClosed = MailData.CreateTagIfNotExisting("Closed", TagPrefixStatus + "Closed", _tagIdIssuesStatus, TagMetaStatus);

                //_tagIdIssuesResolutionNone = MailData.CreateTagIfNotExisting("None", TagPrefixStatus + "None", _tagIdIssuesResolution, TagMetaResolution);
                //_tagIdIssuesResolutionFixed = MailData.CreateTagIfNotExisting("Fixed", TagPrefixStatus + "Fixed", _tagIdIssuesResolution, TagMetaResolution);
                //_tagIdIssuesResolutionWontFix = MailData.CreateTagIfNotExisting("WontFix", TagPrefixStatus + "WontFix", _tagIdIssuesResolution, TagMetaResolution);
                //_tagIdIssuesResolutionInvalid = MailData.CreateTagIfNotExisting("", TagPrefixStatus + "", _tagIdIssuesResolution, TagMetaResolution);
                //_tagIdIssuesResolutionDuplicate = MailData.CreateTagIfNotExisting("", TagPrefixStatus + "", _tagIdIssuesResolution, TagMetaResolution);
                //_tagIdIssuesResolutionWorksForMe = MailData.CreateTagIfNotExisting("", TagPrefixStatus + "", _tagIdIssuesResolution, TagMetaResolution);
                //_tagIdIssuesResolutionUnknown = MailData.CreateTagIfNotExisting("", TagPrefixStatus + "", _tagIdIssuesResolution, TagMetaResolution);

                _so = new SourcesOntology(MailData);
                _so.AddEventHandler = AddEvent;
                AddEventAndLog("Caching source code information...");
                _so.UpdateSourcesSuggestionsDict(_tagIdSourceCode);
                AddEventAndLog("Finished.");
                AddEventAndLog("Caching people information...");
                BuildSuggestionsPersonDict();
                AddEventAndLog("Finished");
            }
            catch (Exception ex) {
                AddEvent("Failed to create the indexing service. Error message: " + ex.Message);
                GenLib.Log.LogService.LogException("Exception while initializing indexing service", ex);
            }
        }
 public PeopleData(MailData mailData)
     : base(mailData.Settings.ProfileFolder)
 {
     MailData = mailData;
     Settings = mailData.Settings;
 }
 public SourcesOntology(MailData mailData)
 {
     MailData = mailData;
 }