public void InitializeProject(VhfProject project) { if (LoadConfig()) { this.CaseForm = project.Views[ContactTracing.Core.Constants.LAB_CASE_FORM_NAME]; LabForm = project.Views[ContactTracing.Core.Constants.LAB_RESULTS_FORM_NAME]; this.Project = project; Database = Project.CollectedData.GetDatabase(); Query selectQuery = Database.CreateQuery("SELECT * FROM [metaViews]"); DataTable dt = Database.Select(selectQuery); foreach (DataRow row in dt.Rows) { if (row["Name"].ToString().Equals(ContactTracing.Core.Constants.LAB_CASE_FORM_NAME)) { CaseFormId = int.Parse(row["ViewId"].ToString()); } else if (row["Name"].ToString().Equals(ContactTracing.Core.Constants.LAB_RESULTS_FORM_NAME)) { ContactFormId = int.Parse(row["ViewId"].ToString()); } } if (CaseFormId == -1 || ContactFormId == -1) { throw new ApplicationException("The database is corrupt. The application cannot run."); } } }
private void btnProjectBrowse_Click(object sender, RoutedEventArgs e) { System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog(); openFileDialog.AutoUpgradeEnabled = true; openFileDialog.DefaultExt = "prj"; openFileDialog.Filter = "VHF Project File (*.prj)|*.prj"; openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); System.Windows.Forms.DialogResult result = openFileDialog.ShowDialog(); if (result == System.Windows.Forms.DialogResult.OK) { if (!String.IsNullOrEmpty(openFileDialog.FileName)) { XDocument doc = XDocument.Load(openFileDialog.FileName); string dataDriver = doc.Element("Project").Element("CollectedData").Element("Database").Attribute("dataDriver").Value; if (!dataDriver.Equals("Epi.Data.SqlServer.SqlDBFactory, Epi.Data.SqlServer", StringComparison.OrdinalIgnoreCase)) { MessageBox.Show("Only projects using Microsoft SQL Server are supported.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } _project = new VhfProject(openFileDialog.FileName); } tboxProjectFileName.Text = openFileDialog.FileName; } }
private void ConnectDatabaseCommandExecute(ProjectInfo projectInfo) { LoadConfig(); // load the EI7 config, which is required before we can instantiate the Project class from Epi.Core Project = new VhfProject(projectInfo.FileInfo.FullName); OutbreakName = projectInfo.OutbreakName; AddStatusMessage(String.Format("Connected to database {0}", projectInfo.FileInfo.FullName), "Server"); }
public ExportSyncFileViewModel(VhfProject project, string currentUser, string macAddress, bool isCountryUS) : base() { IncludeCasesAndContacts = true; IncludeCasesOnly = false; _project = project; _currentUser = currentUser; _macAddress = macAddress; IsCountryUS = isCountryUS; ShowExportOptions = false; CaseForm = _project.Views[Core.Constants.CASE_FORM_NAME]; ContactForm = _project.Views[Core.Constants.CONTACT_FORM_NAME]; LabForm = _project.Views[Core.Constants.LAB_FORM_NAME]; CaseFormId = CaseForm.Id; ContactFormId = ContactForm.Id; LabFormId = LabForm.Id; StartDate = new DateTime(2000, 1, 1); EndDate = DateTime.Today.AddDays(3); FilterableFields = new ObservableCollection <string>() { "DistrictRes", "DistrictOnset", "SCRes", "SCOnset", "ID" }; FilterOperators = new ObservableCollection <string>() { "equals", "contains" }; FilterJoinTypes = new ObservableCollection <string>() { "", "and", "or" }; FilterJoinType = String.Empty; FilterField1 = String.Empty; FilterField2 = String.Empty; FilterOperator1 = String.Empty; FilterOperator2 = String.Empty; FilterValue1 = String.Empty; FilterValue2 = String.Empty; Filters = new Dictionary <string, RowFilters>(); foreach (View form in project.Views) { Filters.Add(form.Name, new RowFilters(Database)); } }
public SqlToMdbCopierViewModel(VhfProject project, string country, string applicationCulture, string outbreakName, DateTime outbreakDate) { _project = project; _country = country; RaisePropertyChanged("Country"); _caseForm = _project.Views[Core.Constants.CASE_FORM_NAME]; _appCulture = applicationCulture; RaisePropertyChanged("AppCulture"); _outbreakName = outbreakName; _outbreakDate = outbreakDate; IsShowingCopyProgress = false; IsDisplaying = false; IsCopying = false; }
public XmlDataExporter(VhfProject project, bool includeContacts, RecordProcessingScope recordProcessingScope) { ExportInfo = new Epi.ImportExport.ProjectPackagers.ExportInfo(); _project = project; _includeContacts = includeContacts; _scope = recordProcessingScope; double totalMajorItems = 2; if (!_includeContacts) { totalMajorItems--; } Filters = new Dictionary <string, SyncFileFilters>(); FieldsToNull = new Dictionary <string, List <string> >(); foreach (View form in Project.Views) { FieldsToNull.Add(form.Name, new List <string>()); Filters.Add(form.Name, new SyncFileFilters(Project.CollectedData.GetDatabase())); if (!_includeContacts && form.Name.Equals(Core.Constants.CONTACT_FORM_NAME, StringComparison.OrdinalIgnoreCase)) { continue; } totalMajorItems++; // 1 for each form } StartDate = new DateTime(2000, 1, 1); EndDate = DateTime.Today.AddDays(3); _majorProgressIncrement = 100 / totalMajorItems; }
public static VhfProject CreateNewOutbreak(string country, string cultureValue, string newProjectName, string newProjectDatabaseName, string outbreakDateTicks, string outbreakName) { bool updateMetaFields = false; if (country.Equals("USA", StringComparison.OrdinalIgnoreCase)) { File.Copy(@"Projects\VHF\base_vhf_template_us.mdb", newProjectDatabaseName); } else { switch (cultureValue) { case "fr": case "fr-FR": case "fr-fr": case "fr–FR": case "fr–fr": case "fr—FR": case "fr—fr": case "fr―FR": case "fr―fr": File.Copy(@"Projects\VHF\base_vhf_template_fr.mdb", newProjectDatabaseName); break; default: File.Copy(@"Projects\VHF\base_vhf_template.mdb", newProjectDatabaseName); if (!country.Equals("Uganda", StringComparison.OrdinalIgnoreCase)) { updateMetaFields = true; } break; } } Epi.Util.CreateProjectFileFromDatabase(newProjectDatabaseName, true); // add vhf tags to xml document XmlDocument doc = new XmlDocument(); doc.XmlResolver = null; doc.Load(newProjectName); XmlNode projectNode = doc.SelectSingleNode("Project"); XmlElement isVhfElement = doc.CreateElement("IsVHF"); XmlElement isLabElement = doc.CreateElement("IsLabProject"); XmlElement outbreakNameElement = doc.CreateElement("OutbreakName"); XmlElement outbreakDateElement = doc.CreateElement("OutbreakDate"); XmlElement cultureElement = doc.CreateElement("Culture"); isVhfElement.InnerText = "true"; isLabElement.InnerText = "false"; outbreakDateElement.InnerText = outbreakDateTicks; outbreakNameElement.InnerText = outbreakName; cultureElement.InnerText = cultureValue; projectNode.AppendChild(isVhfElement); projectNode.AppendChild(isLabElement); projectNode.AppendChild(outbreakDateElement); projectNode.AppendChild(outbreakNameElement); projectNode.AppendChild(cultureElement); System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly(); XmlAttribute appVersionAttribute = doc.CreateAttribute("appVersion"); appVersionAttribute.Value = a.GetName().Version.ToString(); projectNode.Attributes.Append(appVersionAttribute); doc.Save(newProjectName); VhfProject project = new VhfProject(newProjectName); if (updateMetaFields) { if (System.Threading.Thread.CurrentThread.CurrentUICulture.ToString().Equals("en-US", StringComparison.OrdinalIgnoreCase)) { UpdateMetaFields(project, country); } else { UpdateMetaFields(project); } } return(project); }
public XmlSqlDataExporter(VhfProject project, bool includeContacts, RecordProcessingScope recordProcessingScope) : base(project, includeContacts, recordProcessingScope) { _database = "SQL Server"; }
public XmlSqlDataImporter(VhfProject project, RecordProcessingScope scope) : base(project, scope) { }