public CompetitionsSearchResult SearchCompetitions(CompetitionSearchQuery searchQuery) { var result = new CompetitionsSearchResult(); var items = new List <CompetitionHeaderInfo>(); UseDataContext( dataContext => { dataContext.ObjectTrackingEnabled = false; dataContext.LoadOptions = GetCompetitionsLoadOptions(); var competitionQueryResult = dataContext.Competitions; var pagedResults = competitionQueryResult.Skip(searchQuery.StartIndex).Take(searchQuery.PageSize); result.TotalCount = competitionQueryResult.Count(); foreach (var dataItem in pagedResults) { var item = new CompetitionHeaderInfo(); MapCompetitionDataToHeader(dataItem, item); items.Add(item); } }); result.Items = items.ToArray(); return(result); }
private void MapCompetitionDataToHeader(Competition competition, CompetitionHeaderInfo competitionHeader) { competitionHeader.Id = competition.Id; competitionHeader.ReferenceId = competition.ReferenceId; competitionHeader.Name = competition.Name; competitionHeader.StartTime = competition.StartDate.ToLocalTime(); if (competition.EndTime.HasValue) { competitionHeader.EndTime = competition.EndTime.Value.ToLocalTime(); } competitionHeader.LastModified = competition.Updated.ToLocalTime(); competitionHeader.Type = new Contracts.Competitions.CompetitionType() { Id = competition.TypeId, Name = competition.CompetitionType.Name, PlayersCount = competition.CompetitionType.PlayersCount }; competitionHeader.Status = (CompetitionStatus)competition.Status; }
public CompetitionHeaderInfo GetCompetition(int id) { var result = default(CompetitionHeaderInfo); UseDataContext( dataContext => { dataContext.ObjectTrackingEnabled = false; dataContext.LoadOptions = GetCompetitionsLoadOptions(); var competitionData = dataContext.Competitions.FirstOrDefault(c => c.Id == id); if (competitionData.IsNotNull()) { result = new CompetitionHeaderInfo(); MapCompetitionDataToHeader(competitionData, result); } }); return(result); }
public CompetitionHeaderInfo[] GetCompetitionsByStatus(CompetitionStatus status) { var competitions = new List <CompetitionHeaderInfo>(); UseDataContext( dataContext => { var competitionsByStatus = dataContext.Competitions.Where(comp => comp.Status == (int)status); competitionsByStatus.ForEach(dataCompetition => { var competitionHeader = new CompetitionHeaderInfo(); MapCompetitionDataToHeader(dataCompetition, competitionHeader); competitions.Add(competitionHeader); }); }); return(competitions.ToArray()); }