Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }