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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
        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
     });
 }
Exemplo n.º 6
0
        public ActionResult <AthleteEntity> Get(int id)
        {
            AthleteEntity athlete = _logic.Read(id);

            if (athlete != null)
            {
                return(Ok(athlete));
            }
            return(NotFound());
        }
Exemplo n.º 7
0
        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();
        }
Exemplo n.º 8
0
        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();
            }
        }
Exemplo n.º 9
0
 public ActionResult Put([FromBody] AthleteEntity athlete)
 {
     try
     {
         _logic.Update(athlete);
         return(Ok());
     }
     catch (Exception e)
     {
         return(StatusCode(500));
     }
 }
Exemplo n.º 10
0
        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();
            }
        }
Exemplo n.º 11
0
 public void Create(AthleteEntity athlete)
 {
     _context.Entry <AthleteEntity>(athlete).State = EntityState.Added;
     _context.SaveChanges();
 }
Exemplo n.º 12
0
        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}");
        }
Exemplo n.º 13
0
        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");
        }
Exemplo n.º 14
0
 public void Update(AthleteEntity athlete)
 {
     _repo.Update(athlete);
 }
Exemplo n.º 15
0
 public void Create(AthleteEntity athlete)
 {
     _repo.Create(athlete);
 }