Exemplo n.º 1
0
        public async Task <UserSnapshotResponse> GetUserSnapshot([FromBody] TokenModel model)
        {
            var valid = await model.Validate();

            UserSnapshotResponse response;

            if (valid)
            {
                response = new UserSnapshotResponse();
                try
                {
                    using (var connection = GetConnection())
                    {
                        connection.Open();
                        using (var command = new SqlCommand("GetUserSnapshot", connection))
                        {
                            command.CommandType = CommandType.StoredProcedure;
                            command.Parameters.Add("@email", SqlDbType.NVarChar).Value = model.Content.Email;
                            using (var reader = command.ExecuteReader())
                            {
                                if (reader.Read())
                                {
                                    response.Points = ReadObject(reader, "Points", 0);
                                    response.Falls  = ReadObject(reader, "Falls", 0);
                                    response.ParticipatedCompetitions = ReadObject(reader, "ParticipatedCompetitions", 0);
                                }
                                if (reader.NextResult())
                                {
                                    while (reader.Read())
                                    {
                                        response.UpcomingCompetitions.Add(CompetitionsController.ReadCompetition(reader));
                                    }
                                }
                            }
                        }
                    }
                    response.Token = model.Token;
                }
                catch
                {
                    response.ApiResponseCode = ApiResponseCode.InternalError;
                }
            }
            else
            {
                response = ApiResponseCode.AuthError.ToResponse <UserSnapshotResponse>();
            }
            return(response);
        }
        public async Task <CompetitionsResponse> Get([FromBody] TokenModel data)
        {
            var valid = await data.Validate();

            CompetitionsResponse response;

            if (valid)
            {
                response       = GetCompetitionsFor(data.Content.Email);
                response.Token = data.Token;
            }
            else
            {
                response = ApiResponseCode.AuthError.ToResponse <CompetitionsResponse>();
            }
            return(response);
        }