private void Saving(string inputName, string existedName, bool createNewTeam) { IEnumerable <Conformity> conformities = this.dataUnit.GetRepository <Conformity>() .Get(filter: x => x.InputName == inputName, includeProperties: "TempResult") .GroupBy(x => x.TempResult.Id) .Select(x => x.First()); foreach (Conformity conf in conformities) { TempSportEvent tempEvent = this.dataUnit.GetRepository <TempResult>() .Get(filter: x => x.Id == conf.TempResult.Id, includeProperties: "TempSportEvent") .Select(x => x.TempSportEvent) .FirstOrDefault(); Team team = this.GetTeam(inputName, existedName, createNewTeam, tempEvent); int resultId1 = tempEvent.TempResults.ToArray()[0].Id; int resultId2 = tempEvent.TempResults.ToArray()[1].Id; var res1 = this.dataUnit.GetRepository <TempResult>() .Get(filter: x => x.Id == resultId1, includeProperties: "Team") .FirstOrDefault(); var res2 = this.dataUnit.GetRepository <TempResult>() .Get(filter: x => x.Id == resultId2, includeProperties: "Team") .FirstOrDefault(); if (res1.Team != null || res2.Team != null) { tempEvent.TempResults = null; tempEvent.TempResults = new List <TempResult> { res1, res2 }; conf.TempResult.Team = team; this.dataUnit.GetRepository <SportEvent>() .Insert(Mapper.Map <TempSportEvent, SportEvent>(tempEvent)); this.DeleteTempEvent(tempEvent); this.dataUnit.SaveChanges(); } else { conf.TempResult.Team = team; this.DeleteConformities(conf.TempResult); this.dataUnit.SaveChanges(); } } }
private void DeleteTempEvent(TempSportEvent tempEvent) { int resultsCount = tempEvent.TempResults.Count; var resultsArray = tempEvent.TempResults.ToArray(); for (int j = 0; j != resultsCount; j++) { if (resultsArray[j].Conformities != null) { int confCount = resultsArray[j].Conformities.Count; var confArray = resultsArray[j].Conformities.ToArray(); for (int i = 0; i != confCount; i++) { this.dataUnit.GetRepository <Conformity>().Delete(confArray[i]); } } this.dataUnit.GetRepository <TempResult>().Delete(resultsArray[j]); } this.dataUnit.GetRepository <TempSportEvent>().Delete(tempEvent); }
private void Save(TempSportEvent tempEvent, SportEvent sportEvent) { if (tempEvent.TempResults.Count() != 0) { foreach (Result result in sportEvent.Results) { TempResult tempRes = new TempResult { Team = result.Team, Score = result.Score, IsHome = result.IsHome }; tempEvent.TempResults.Add(tempRes); } this.dataUnit.GetRepository <TempSportEvent>().Insert(tempEvent); } else { IEnumerable <SportEvent> existingEvent = this.dataUnit.GetRepository <SportEvent>().Get(); if (!existingEvent.Contains(sportEvent)) { this.dataUnit.GetRepository <SportEvent>().Insert(sportEvent); } } }
public bool SaveSportEvents(ICollection <SportEventDTO> eventDTOs) { Log.Info("Writing transferred data..."); try { NamingMatcher matcher = new NamingMatcher(this.dataUnit); IEnumerable <SportType> sportTypes = this.dataUnit.GetRepository <SportType>().Get(); foreach (SportEventDTO eventDTO in eventDTOs) { SportType sportType = sportTypes.FirstOrDefault(st => st.Name == eventDTO.SportType) ?? new SportType { Name = eventDTO.SportType }; SportEvent sportEvent = new SportEvent { SportType = sportType, Date = this.ConvertAndTrimDate(eventDTO.Date), Results = new List <Result>() }; TempSportEvent tempEvent = new TempSportEvent() { SportType = sportType, Date = this.ConvertAndTrimDate(eventDTO.Date), TempResults = new List <TempResult>() }; foreach (ResultDTO resultDTO in eventDTO.Results) { Team team = new Team { Name = resultDTO.TeamName, SportType = sportType, Names = new List <TeamName> { new TeamName { Name = resultDTO.TeamName } } }; List <Conformity> conformities = matcher.ResolveNaming(team); if (conformities == null) { team = this.dataUnit.GetRepository <TeamName>() .Get((x) => x.Name == team.Name).Select(x => x.Team).FirstOrDefault(); Result result = new Result { Team = team, Score = resultDTO.Score ?? -1, IsHome = resultDTO.IsHome }; sportEvent.Results.Add(result); } else { TempResult result = new TempResult { Score = resultDTO.Score ?? -1, Conformities = new List <Conformity>(), IsHome = resultDTO.IsHome }; if (team.Names.FirstOrDefault().Id != 0) { result.Team = team; } foreach (Conformity conformity in conformities) { result.Conformities.Add(conformity); } conformities.Clear(); tempEvent.TempResults.Add(result); } } this.Save(tempEvent, sportEvent); } this.dataUnit.SaveChanges(); this.predictionSender.SendPredictionRequest(); } catch (Exception ex) { Log.Error("Exception when trying to save transferred data to DB", ex); return(false); } Log.Info("Transferred data sucessfully saved"); return(true); }
private Team GetTeam(string inputName, string existedName, bool createNewTeam, TempSportEvent tempEvent) { TeamName tn = new TeamName { Name = inputName }; Team team = new Team(); if (createNewTeam) { TeamName tn2 = new TeamName { Name = existedName }; team = new Team { Name = existedName, SportType = tempEvent.SportType, Names = new List <TeamName> { tn } }; if (inputName != existedName) { team.Names.Add(tn2); } } else { team = this.dataUnit.GetRepository <TeamName>() .Get(filter: t => t.Name == existedName, includeProperties: "Team") .Select(t => t.Team) .FirstOrDefault(); team.Names.Add(tn); } return(team); }