public void AddAthlete_ThrowsConflictAthleteAndEmail() { var input = new AthleteDto { Username = "******", Email = "*****@*****.**", FullName = "User Three" }; var expected = new ConflictException( new List <string>() { ErrorConstants.UsernameAlreadyExists, ErrorConstants.EmailAlreadyExists }); var existingEntity = new AthleteEntity { Username = "******", Email = "*****@*****.**", FullName = "User Three Other" }; testContext.Add(existingEntity); testContext.SaveChanges(); // act var actual = Assert.Throws <ConflictException>( () => athleteRepository.AddAthlete(input)); // assert Assert.Equal(expected.Message, actual.Message); }
public void Delete(int id) { AthleteEntity athlete = Read(id); _context.Entry(athlete).State = EntityState.Deleted; _context.SaveChanges(); }
private AthleteEntity SaveAthlete(AthleteEntity athleteEntity) { var entity = _context.Athletes.Add(athleteEntity) .Entity; _context.SaveChanges(); return(entity); }
public void TestLoadFileToDatabase() { var configuration = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string>() { { "ConnectionStrings:Default", "Data Source=geosports.db" } }).Build(); var dbContext = new OpenSportLogContext(configuration); dbContext.Database.EnsureDeleted(); dbContext.Database.Migrate(); string path = @"data\data_tiny.fitlog"; FitLogImporter importer = new FitLogImporter(); List <ActivityEntity> activities = new List <ActivityEntity>(); var athlete = new AthleteEntity(activities, "Sample", 1); dbContext.Athletes.Add(athlete); using (FileStream fs = File.OpenRead(path)) { foreach (var activity in importer.ImportActivitiesStream(fs, new Dictionary <string, ACTIVITY_SPORT> { { "e41b80e4-fa5f-48e3-95be-d0e66b72ab7c", ACTIVITY_SPORT.BIKING }, { "eca38408-cb82-42ed-b242-166b43b785a6", ACTIVITY_SPORT.RUNNING }, { "6f2fdaf9-4c5a-4c2c-a4fa-5be42e9733dd", ACTIVITY_SPORT.SWIMMING } })) { athlete.Activities.Add(activity); } } dbContext.SaveChanges(); var count = dbContext.Athletes.CountAsync().GetAwaiter().GetResult(); Assert.AreEqual(1, count); count = dbContext.Athletes.Include(a => a.Activities).CountAsync().GetAwaiter().GetResult(); Assert.AreEqual(1, count); var activitiesRead = dbContext.Athletes.Include(a => a.Activities).ToList()[0].Activities; Assert.IsTrue(activitiesRead.Count > 0); var tracksPointsRead = dbContext.Athletes .FirstOrDefault() .Activities .FirstOrDefault() .Tracks .FirstOrDefault() .TrackSegments .FirstOrDefault() .TrackPoints; Assert.IsTrue(tracksPointsRead.Count > 0); //dbContext.Database.EnsureDeleted(); }
private AthleteDto ConvertToDto(AthleteEntity athleteEntity) { return(new AthleteDto { Username = athleteEntity.Username, Email = athleteEntity.Email, FullName = athleteEntity.FullName }); }
public ActionResult <AthleteEntity> Get(int id) { AthleteEntity athlete = _logic.Read(id); if (athlete != null) { return(Ok(athlete)); } return(NotFound()); }
public void Update(AthleteEntity athlete) { AthleteEntity exAthlete = _context.Set <AthleteEntity>().FirstOrDefault(entry => entry.Id == athlete.Id); if (exAthlete != null) { _context.Entry(exAthlete).State = EntityState.Deleted; _context.SaveChanges(); } _context.Entry(athlete).State = EntityState.Added; _context.SaveChanges(); }
public static AthleteEntity GetAthleteByACNum(String ACNum) { SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["AODB"].ConnectionString); string selectStatement = "SELECT * " + "FROM AThletes " + "WHERE ACNum = @ACNum"; SqlCommand selectCommand = new SqlCommand(selectStatement, connection); selectCommand.Parameters.AddWithValue( "@ACNum", ACNum); try { connection.Open(); SqlDataReader proReader = selectCommand.ExecuteReader( System.Data.CommandBehavior.SingleRow); if (proReader.Read()) { AthleteEntity athlete = new AthleteEntity(); athlete.AthleteId = Convert.ToInt32(proReader["AthleteId"]); athlete.ACNum = proReader["ACNum"].ToString(); athlete.FirstName = proReader["FirstName"].ToString(); athlete.LastName = proReader["LastName"].ToString(); athlete.DOB = Convert.ToDateTime(proReader["DOB"]); athlete.AthleteGender = proReader["AthleteGender"].ToString(); athlete.ClubCode = proReader["ClubCode"].ToString(); athlete.Address = proReader["Address"].ToString(); athlete.City = proReader["City"].ToString(); athlete.Phone = proReader["Phone"].ToString(); athlete.AthleteEmail = proReader["AthleteEmail"].ToString(); athlete.HeadShot = proReader["HeadShot"].ToString(); athlete.AthleteSpecialNoteId = Convert.ToInt32(proReader["AthleteSpecialNoteId"]); athlete.ClubAffiliationSince = Convert.ToDateTime(proReader["ClubAffiliationSince"]); return(athlete); } else { return(null); } } catch (SqlException ex) { logger.Error("Exception : " + ex.Message); return(null); } finally { connection.Close(); } }
public ActionResult Put([FromBody] AthleteEntity athlete) { try { _logic.Update(athlete); return(Ok()); } catch (Exception e) { return(StatusCode(500)); } }
public static int AddAthlete(AthleteEntity athlete) { SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["AODB"].ConnectionString); string insertStatement = "INSERT into Athletes " + "(ACNum, FirstName, LastName, DOB, AthleteGender, ClubCode, Address, City, Phone, AthleteEmail, HeadShot, ClubAffiliationSince) "+ "VALUES ( @ACNum, @FirstName, @LastName, @DOB, @AthleteGender, @ClubCode, @Address, @City, @Phone, @AthleteEmail, @HeadShot, @ClubAffiliationSince)"; SqlCommand insertCommand = new SqlCommand(insertStatement, connection); //insertCommand.Parameters.AddWithValue("@AthleteId", athlete.AthleteId); insertCommand.Parameters.AddWithValue("@ACNum", athlete.ACNum); insertCommand.Parameters.AddWithValue("@FirstName", athlete.FirstName); insertCommand.Parameters.AddWithValue("@LastName", athlete.LastName); insertCommand.Parameters.AddWithValue("@DOB", athlete.DOB); insertCommand.Parameters.AddWithValue("@AthleteGender", athlete.AthleteGender); insertCommand.Parameters.AddWithValue("@ClubCode", athlete.ClubCode); insertCommand.Parameters.AddWithValue("@Address", athlete.Address); insertCommand.Parameters.AddWithValue("@City", athlete.City); insertCommand.Parameters.AddWithValue("@Phone", athlete.Phone); insertCommand.Parameters.AddWithValue("@AthleteEmail", athlete.AthleteEmail); insertCommand.Parameters.AddWithValue("@HeadShot", athlete.HeadShot); //insertCommand.Parameters.AddWithValue("@AthleteSpecialNoteId", athlete.AthleteSpecialNoteId); insertCommand.Parameters.AddWithValue("@ClubAffiliationSince", athlete.ClubAffiliationSince); try { connection.Open(); int value = insertCommand.ExecuteNonQuery(); return(value); } catch (SqlException ex) { if (ex.Message.Contains("Violation of PRIMARY KEY constraint")) { Console.WriteLine("Duplicate Athlete: " + athlete.FirstName); } return(0); } finally { connection.Close(); } }
public void Create(AthleteEntity athlete) { _context.Entry <AthleteEntity>(athlete).State = EntityState.Added; _context.SaveChanges(); }
public static void ProcessResultsData(OdbcDataReader reader, string fileName, string resultType) { CompetitionEntity comp = new CompetitionEntity(); comp = CompetitionRepo.GetCompetition(fileName); int resultsCount = 0, resultsInserted = 0; logger.Info($"Started Processing : {resultType}"); while (reader.Read()) { resultsCount++; try { //Console.WriteLine(reader["Full_Eventname"].ToString() + reader["Rnd_ltr"].ToString() + reader["First_name"].ToString() + reader["Last_name"].ToString() + reader["Team_Abbr"].ToString() + reader["Reg_no"].ToString() + reader["Res_markDisplay"].ToString() + reader["Res_wind"].ToString() + reader["Res_place"].ToString()); String division = reader["Div_name"].ToString(); string eventGender = reader["Event_gender"].ToString(); string eventName = ""; DateTime Birth_date; if (reader["Birth_date"].ToString() == "") { Birth_date = DateTime.Parse("1900-01-01 00:00:00"); } else { Birth_date = DateTime.Parse(reader["Birth_date"].ToString()); } if (division.Contains("AMB")) { division = division.Replace("AMB", "Ambulatory"); } if (division.Contains("WC")) { division = division.Replace("WC", "Wheelchair"); } string[] div_categories = { "U6", "U8", "U10", "U12", "U14", "U16", "U18" }; if (div_categories.Contains(division)) { if (eventGender.Equals("M")) { eventGender = "Boys"; } else if (eventGender.Equals("F")) { eventGender = "Girls"; } else { eventGender = "Mixed"; } } else if (eventGender.Equals("M")) { eventGender = "Men"; } else if (eventGender.Equals("F")) { eventGender = "Women"; } else { eventGender = "Mixed"; } //for masters if (division.Equals("Masters")) { DateTime sdate = comp.StartDate; int Years = new DateTime(sdate.Subtract(Birth_date).Ticks).Year - 1; if (Years < 30) { division = "29 & Under Masters"; } else if (Years < 35) { division = "30 Masters"; } else if (Years < 40) { division = "35 Masters"; } else if (Years < 45) { division = "40 Masters"; } else if (Years < 50) { division = "45 Masters"; } else if (Years < 55) { division = "50 Masters"; } else if (Years < 60) { division = "55 Masters"; } else if (Years < 65) { division = "60 Masters"; } else if (Years < 70) { division = "65 Masters"; } else if (Years < 75) { division = "70 Masters"; } else if (Years < 80) { division = "75 Masters"; } else { division = "80 Masters"; } } if (reader["Event_name"].ToString().Contains("athlon"))//combined events { if (!reader["Event_dist"].ToString().Equals("0")) { if (!reader["Event_note"].ToString().Equals("")) { eventName = reader["Event_dist"].ToString() + " Meters " + reader["MultiSubEvent_name"].ToString() + " " + reader["Event_name"].ToString() + " " + reader["Event_note"].ToString(); } else { eventName = reader["Event_dist"].ToString() + " Meters " + " " + reader["MultiSubEvent_name"].ToString() + " " + reader["Event_name"].ToString(); } } else if (!reader["Event_note"].ToString().Equals("")) { eventName = reader["MultiSubEvent_name"].ToString() + " " + reader["Event_name"].ToString() + " " + reader["Event_note"].ToString(); } else { eventName = reader["MultiSubEvent_name"].ToString() + " " + reader["Event_name"].ToString(); } } else { if (!reader["Event_dist"].ToString().Equals("0")) { if (!reader["Event_note"].ToString().Equals("")) { eventName = reader["Event_dist"].ToString() + " Meters " + reader["Event_name"].ToString() + " " + reader["Event_note"].ToString(); } else { eventName = reader["Event_dist"].ToString() + " Meters " + reader["Event_name"].ToString(); } } else if (!reader["Event_note"].ToString().Equals("")) { eventName = reader["Event_name"].ToString() + " " + reader["Event_note"].ToString(); } else { eventName = reader["Event_name"].ToString(); } } eventName = eventName.Trim(); String Rnd_ltr = reader["Rnd_ltr"].ToString(); String First_name = reader["First_name"].ToString(); String Last_name = reader["Last_name"].ToString(); String Team_Abbr = reader["Team_Abbr"].ToString(); String Reg_no = reader["Reg_no"].ToString(); String Ath_Sex = reader["Ath_Sex"].ToString(); String Res_markDisplay = reader["Res_markDisplay"].ToString(); String Res_wind = reader["Res_wind"].ToString(); String Res_place = reader["Res_place"].ToString(); ResultEntity result = new ResultEntity(); int eventId = AthleteEventRepo.GetAthleteEventId(eventGender + " " + eventName + " " + division, Rnd_ltr); if (eventId == 0) { AthleteEventEntity athleteEvent = new AthleteEventEntity(); athleteEvent.EventGender = eventGender; athleteEvent.EventRound = Rnd_ltr; athleteEvent.EventDivision = division; athleteEvent.EventName = eventName; AthleteEventRepo.AddAthleteEvent(athleteEvent); eventId = AthleteEventRepo.GetAthleteEventId(eventGender + " " + eventName + " " + division, Rnd_ltr); } int athleteid = 0; athleteid = AthleteRepo.GetAthleteIdByACNum(Reg_no); if (athleteid == 0) { athleteid = AthleteRepo.GetAthleteIdByName(First_name, Last_name, Birth_date); if (athleteid == 0) { AthleteEntity athlete = new AthleteEntity(); athlete.ACNum = Reg_no; athlete.ClubAffiliationSince = comp.StartDate; athlete.ClubCode = Team_Abbr; athlete.DOB = Birth_date; athlete.FirstName = First_name; athlete.LastName = Last_name; athlete.AthleteGender = Ath_Sex; athlete.Address = ""; athlete.City = ""; athlete.AthleteEmail = ""; athlete.Phone = ""; athlete.HeadShot = ""; athlete.AthleteSpecialNoteId = 0; AthleteRepo.AddAthlete(athlete); if (String.IsNullOrWhiteSpace(Reg_no)) { result.AthleteId = AthleteRepo.GetAthleteIdByName(First_name, Last_name, Birth_date); } else { result.AthleteId = AthleteRepo.GetAthleteIdByACNum(Reg_no); } } else { result.AthleteId = athleteid; } } else { result.AthleteId = athleteid; } result.CompId = GetCompId(fileName); result.EventId = eventId; result.Mark = Res_markDisplay; if (reader["Event_name"].ToString().Contains("athlon")) { result.Position = Convert.ToInt32(reader["Event_score"].ToString()); } else { result.Position = Convert.ToInt32(Res_place); } result.Wind = Res_wind; if (ResultRepo.CheckDuplicate(result) == 0) { ResultRepo.AddResult(result); resultsInserted++; } else { logger.Error("Duplicate Result: " + fileName.Replace(".mdb", "") + "->" + eventGender + " " + eventName + " " + division + " " + Rnd_ltr + "->" + First_name + " " + Last_name + " DOB: " + Birth_date.ToString("dd-MM-yyyy")); } } catch (Exception e) { logger.Error("Exception : " + e.Message); } finally { } } logger.Info($"Total lines read by application : {resultsCount}"); logger.Info($"Total results synced to database : {resultsInserted}"); logger.Info($"Completed Processing : {resultType}"); }
public static void ProcessResultsData(OdbcDataReader reader, string fileName) { logger.Info("Started Processing Result Details/Standard"); while (reader.Read()) { try { //Console.WriteLine(reader["Full_Eventname"].ToString() + reader["Rnd_ltr"].ToString() + reader["First_name"].ToString() + reader["Last_name"].ToString() + reader["Team_Abbr"].ToString() + reader["Reg_no"].ToString() + reader["Res_markDisplay"].ToString() + reader["Res_wind"].ToString() + reader["Res_place"].ToString()); String Full_Eventname = reader["Full_Eventname"].ToString(); if (Full_Eventname.Contains("AMB")) { Full_Eventname = Full_Eventname.Replace("AMB", "Ambulatory"); } if (Full_Eventname.Contains("WC")) { Full_Eventname = Full_Eventname.Replace("WC", "Wheelchair"); } String Rnd_ltr = reader["Rnd_ltr"].ToString(); String First_name = reader["First_name"].ToString(); String Last_name = reader["Last_name"].ToString(); String Team_Abbr = reader["Team_Abbr"].ToString(); String Reg_no = reader["Reg_no"].ToString(); DateTime Birth_date; if (reader["Birth_date"].ToString() == "") { Birth_date = DateTime.Parse("1900-01-01 00:00:00"); } else { Birth_date = DateTime.Parse(reader["Birth_date"].ToString()); } String Ath_Sex = reader["Ath_Sex"].ToString(); String Res_markDisplay = reader["Res_markDisplay"].ToString(); String Res_wind = reader["Res_wind"].ToString(); String Res_place = reader["Res_place"].ToString(); ResultEntity result = new ResultEntity(); if (AthleteEventRepo.GetAthleteEventId(Full_Eventname, Rnd_ltr) == 0) { string[] words = Full_Eventname.Split(' '); List <string> wList = new List <string>(words); AthleteEventEntity athleteEvent = new AthleteEventEntity(); athleteEvent.EventGender = words[0]; athleteEvent.EventRound = Rnd_ltr; athleteEvent.EventDivision = words[words.Length - 1]; //athleteEvent.Name = Full_Eventname.Replace(words[0], "").Replace(words[words.Length-1], "").Trim(); wList.RemoveAt(0); wList.RemoveAt(wList.Count - 1); athleteEvent.EventName = string.Join(" ", wList); AthleteEventRepo.AddAthleteEvent(athleteEvent); } if (AthleteRepo.GetAthleteIdByACNum(Reg_no) == 0) { if (AthleteRepo.GetAthleteIdByName(First_name, Last_name, Birth_date) == 0) { AthleteEntity athlete = new AthleteEntity(); athlete.ACNum = Reg_no; athlete.ClubAffiliationSince = DateTime.Now; athlete.ClubCode = Team_Abbr; athlete.DOB = Birth_date; athlete.FirstName = First_name; athlete.LastName = Last_name; athlete.AthleteGender = Ath_Sex; athlete.Address = ""; athlete.City = ""; athlete.AthleteEmail = ""; athlete.Phone = ""; athlete.HeadShot = ""; athlete.AthleteSpecialNoteId = 0; AthleteRepo.AddAthlete(athlete); result.AthleteId = AthleteRepo.GetAthleteIdByName(First_name, Last_name, Birth_date); } else { result.AthleteId = AthleteRepo.GetAthleteIdByName(First_name, Last_name, Birth_date); } } else { result.AthleteId = AthleteRepo.GetAthleteIdByACNum(Reg_no); } result.CompId = GetCompId(fileName); result.EventId = AthleteEventRepo.GetAthleteEventId(Full_Eventname, Rnd_ltr); result.Mark = Res_markDisplay; result.Position = Convert.ToInt32(Res_place); result.Wind = Res_wind; if (ResultRepo.CheckDuplicate(result) == 0) { ResultRepo.AddResult(result); } else { logger.Error("Duplicate Result: " + fileName.Replace(".mdb", "") + "->" + Full_Eventname + " " + Rnd_ltr + "->" + First_name + " " + Last_name + " DOB: " + Birth_date.ToString("dd-MM-yyyy")); } } catch (Exception e) { logger.Error("Exception : " + e.Message); } //finally { reader.Close(); } } logger.Info("Completed Processing Result Details/Standard"); }
public void Update(AthleteEntity athlete) { _repo.Update(athlete); }
public void Create(AthleteEntity athlete) { _repo.Create(athlete); }