public IHttpActionResult GetSeasons([FromUri] string leagueName, [FromUri] string seasonIds = null, [FromUri] string fields = null, [FromUri] bool excludeFields = false) { try { logger.Info($"Get data for season ids: {seasonIds} - league: {leagueName}"); CheckLeagueRole(User, leagueName); // check for empty parameters if (string.IsNullOrEmpty(leagueName)) { return(BadRequestEmptyParameter(nameof(leagueName))); } // try to parse seasonIds string List <long> seasonIdValues = null; if (seasonIds != null) { seasonIdValues = new List <long>(); foreach (var idString in seasonIds.Split(',')) { if (long.TryParse(idString, out long id) == false) { return(BadRequestInvalidType(nameof(seasonIds), idString, typeof(long))); } seasonIdValues.Add(id); } } var databaseName = GetDatabaseNameFromLeagueName(leagueName); // Get session data from data access layer SeasonConvenieneDTO[] data; using (var dbContext = CreateDbContext(databaseName)) { ISeasonDataProvider sessionsDataProvider = new SeasonDataProvider(dbContext); data = sessionsDataProvider.GetSeasons(seasonIdValues?.ToArray()); } // return complete DTO or select fields logger.Info($"Send data - {nameof(SeasonConvenieneDTO)}[{data.Count()}] ids: {string.Join(",", data.Select(x => x?.SeasonId))}"); if (string.IsNullOrEmpty(fields)) { return(Ok(data)); } else { data.ForEach(x => x.SetSerializableProperties(fields.Split(','), excludeFields)); var response = data.Select(x => SelectFieldsHelper.GetSelectedFieldObject(x)); return(Json(response)); } } catch (Exception e) { logger.Error("Error!", e); throw e; } }
public IHttpActionResult Get([FromUri] string leagueName, [FromUri] long seasonId, [FromUri] string fields = null, [FromUri] bool excludeFields = false) { try { logger.Info($"Get data for season id: {seasonId} - league: {leagueName}"); CheckLeagueRole(User, leagueName); // check for empty parameters if (string.IsNullOrEmpty(leagueName)) { return(BadRequestEmptyParameter(nameof(leagueName))); } var databaseName = GetDatabaseNameFromLeagueName(leagueName); // Get session data from data access layer SeasonConvenieneDTO data; using (var dbContext = CreateDbContext(databaseName)) { ISeasonDataProvider sessionsDataProvider = new SeasonDataProvider(dbContext); data = sessionsDataProvider.GetSeason(seasonId); } // return complete DTO or select fields logger.Info($"Send data - {nameof(SeasonConvenieneDTO)} id: {data?.SeasonId}"); if (string.IsNullOrEmpty(fields)) { return(Ok(data)); } else { data.SetSerializableProperties(fields.Split(','), excludeFields); var response = SelectFieldsHelper.GetSelectedFieldObject(data); return(Json(response)); } } catch (Exception e) { logger.Error("Error!", e); throw e; } }