private bool HandleAttemptForTimeCondition(Condition condition, PlayerCareer playerCareer) { bool attemptResult = false; DateTime attemptDateTime = (DateTime.Now).RoundDateTime(); #warning TODO: handle Condition_Time if (true) { attemptResult = true; SuccessfulPlayerAttempt newSuccessfullAttempt = new SuccessfulPlayerAttempt() { AttemptDateTime = attemptDateTime, ConditionId = condition.Id, InputedValue = String.Empty, PlayerCareerId = playerCareer.Id }; SuccessfullPlayerAttemptRepository.Insert(newSuccessfullAttempt); IList <long> userCompleterIds = new List <long>(); #region Creating Statistic entities List <DateTime> previousTaskEndDTs = TeamGameTaskStatisticRepository.GetAll() .Where(r => r.TeamId == playerCareer.TeamId) .Select(r => r.GameTaskEndDateTime) .Distinct().ToList(); DateTime gameTaskStartTime = previousTaskEndDTs.Count > 0 ? previousTaskEndDTs.Max() : condition.GameTask.Game.StartDate; IList <PlayerGameTaskStatistic> newPlayerGameTaskStatistics = new List <PlayerGameTaskStatistic>(); foreach (var item in playerCareer.Team.PlayerCareers) { newPlayerGameTaskStatistics.Add(new PlayerGameTaskStatistic(condition.GameTaskId, item.Id, gameTaskStartTime, attemptDateTime, (condition.Points ?? 0))); userCompleterIds.Add(item.UserId); } PlayerGameTaskStatisticRepository.AddRange(newPlayerGameTaskStatistics); TeamGameTaskStatistic newTeamGameTaskStatistic = new TeamGameTaskStatistic(condition.GameTaskId, playerCareer.TeamId, gameTaskStartTime, attemptDateTime, (condition.Points ?? 0)); TeamGameTaskStatisticRepository.Insert(newTeamGameTaskStatistic); #endregion UowManager.Current.Completed += (sender, e) => { StatisticsChangesNotifier.RaiseOnGameTaskCompleted(new GameTaskCompletedMessage(condition.GameTaskId, userCompleterIds)); }; } return(attemptResult); }