private void ImportLayPastors(OleDbConnection cn) { // IMPORTANT: THINK ABOUT HOW THE LayPastorID IS RELATED TO THE OTHER TABLES, // WE NEED TO MAP THEIR OLD ID WITH THEIR NEW ONE // Lay Pastors // **************************************************** // The Lay Pastors table are used like Teams, not individual members, for many churches // Some churches use this table for individual members. /* * LayPastorID (pk) * Lay Pastor (Lay Pastor's name) * LP Initials (Lay Pastor's initials) * Current (active/inactive) * Email * Phone */ var sql = @"SELECT * FROM [Lay Pastors];"; using (var cmd = new OleDbCommand(sql, cn)) { using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { var pastor = new LayPastor(); pastor.LayPastorID = reader.ValueOrDefault <int>("LayPastorID", 0); pastor.LayPastorName = reader.ValueOrDefault <string>("Lay Pastor", ""); pastor.Initials = reader.ValueOrDefault <string>("LP Initials", ""); pastor.Current = reader.ValueOrDefault <bool>("Current", false); pastor.Email = reader.ValueOrDefault <string>("Email", ""); pastor.Phone = reader.ValueOrDefault <string>("Phone", ""); this.layPastors.Add(pastor); } } } // new soulwinning teams out of each of the lay pastor records foreach (var pastor in this.layPastors) { var team = new Core.Models.Team.Team(); team.Id = 0; team.Name = pastor.LayPastorName; // this is the team name for many churches, but an actualy member name for others team.Desc = $"Soulwinning Team for {church.Name}".Trim(); team.ChurchId = church.id; team.TeamTypeEnumId = 69; // Evangelistic team.TeamPositionEnumTypeId = 16; // TeamType team.Comment = ""; var teamResult = this.teamRepo.SaveTeam(team); if (teamResult.Status == RepositoryActionStatus.Error) { LogError(teamResult.Exception, Core.Framework.LogLevel.Error); continue; } pastor.IdentityId = teamResult.Entity.Id; // this will be a TeamId } // add member. - keep, because we may add a feature where they can specify which type of data the table contains: teams or individual members that are lay pastors /* * foreach (var pastor in this.layPastors) * { * var member = new NewMember(); * member.ChurchId = this.church.id; * member.FirstName = pastor.LayPastorName; * member.City = this.church.City; * member.Line1 = this.church.Address; * member.State = this.church.State; * member.Zip = this.church.Zip; * member.Phone = this.factory.ParseNumber(pastor.Phone); * * var memberResult = this.memberRepo.Add(member); * * pastor.IdentityId = memberResult.Entity.id; * * this.SaveTeammate(pastor.IdentityId, 102); // Lay Pastor * } */ }
private void ImportChurchInfo(OleDbConnection cn) { var sql = @"SELECT [Church Info].* FROM [Church Info];"; var churchInfoList = new List <ChurchInfo>(); using (var cmd = new OleDbCommand(sql, cn)) { using (var reader = cmd.ExecuteReader()) { if (!reader.HasRows) { throw new Exception("Church Info table empty"); } while (reader.Read()) { var churchInfo = new ChurchInfo(); churchInfo.PastorName = reader.ValueOrDefault <string>("Pastor", ""); churchInfo.Address = reader.ValueOrDefault <string>("Address", ""); churchInfo.City1 = reader.ValueOrDefault <string>("City1", ""); churchInfo.State = reader.ValueOrDefault <string>("State", ""); churchInfo.Zip1 = reader.ValueOrDefault <string>("Zip1", ""); churchInfo.Phone = reader.ValueOrDefault <string>("Phone", ""); churchInfoList.Add(churchInfo); } } } var ci = churchInfoList.FirstOrDefault(); var church = factory.CreateChurch(ci); var result = this.churchRepo.Add(church); if (result.Status == RepositoryActionStatus.Error) { LogError(result.Exception, Core.Framework.LogLevel.Error); return; } this.church = result.Entity; // add member var member = new NewMember(); member.ChurchId = this.church.id; member.FirstName = ci.PastorName; member.City = ci.City1; member.Line1 = ci.Address; member.State = ci.State; member.Zip = ci.Zip1; if (string.IsNullOrWhiteSpace(member.FirstName)) { var msg = $"First Name is null from [Church Info] table. " + $"ChurchId: { this.church.id }. " + $"City1: { ci.City1 }. "; var x = new Exception(msg); LogError(x, Core.Framework.LogLevel.Warning); return; } var memberResult = this.memberRepo.Add(member); if (memberResult.Status == RepositoryActionStatus.Error) { LogError(memberResult.Exception, Core.Framework.LogLevel.Error); return; } member.id = memberResult.Entity.id; // create team var team = new Core.Models.Team.Team(); team.Id = 0; team.Name = church.Name + " Pastoral Team"; team.Desc = "Pastoral Team for " + church.Name; team.ChurchId = church.id; team.TeamTypeEnumId = 68; team.TeamPositionEnumTypeId = 17; team.Comment = ""; var teamResult = this.teamRepo.SaveTeam(team); if (teamResult.Status == RepositoryActionStatus.Error) { LogError(teamResult.Exception, Core.Framework.LogLevel.Warning); return; } this.pastoralTeam = teamResult.Entity; // create teammate this.SaveTeammate(member.id, this.pastoralTeam.Id, 70); // Pastor }