Skip to content

Instantly share code, notes, and snippets.

View pedroreys's full-sized avatar

Pedro Reys pedroreys

View GitHub Profile
@pedroreys
pedroreys / add_curve_to_score.rb
Created September 21, 2011 02:24
csv manipulation test
#!/usr/bin/env ruby
# I have a csv file with some students scores. The data in the file looks like:
# Last Name,First Name,EID,Special Codes,Score,Percent
# DOE ,JOHN ,JHD123,,92,92
# ...
# Total Records Read,352,,,,
# I need to add a specific value to the last two columns in each data row.
@pedroreys
pedroreys / gist:1317493
Created October 26, 2011 19:22
Até quando?
Senhores (as),
Surgiu a oportunidade de uma vaga de Analista de Requisitos para trabalhar <Acme Inc.>.
Requisitos:
- 3 anos de experiência com requisitos;
- curso superior completo;
- conhecimentos em UML, RUP, modelagem de dados;
@pedroreys
pedroreys / gist:1849567
Created February 17, 2012 01:29
Web API handling unknown media-types
C:\dev> curl -v -H "Accept: application/some_unknown_media_type" localhost:1705/api/values
* About to connect() to localhost port 1705 (#0)
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 1705 (#0)
> GET /api/values HTTP/1.1
> User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8r zlib/1.2.3
> Host: localhost:1705
> Accept: application/some_unknown_media_type
>
< HTTP/1.1 200 OK
public class NotAcceptableConnegHandler : DelegatingHandler
{
private const string allMediaTypesRange = "*/*";
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var acceptHeader = request.Headers.Accept;
if (!acceptHeader.Any(x => x.MediaType == allMediaTypesRange))
{
var hasFormetterForRequestedMediaType = GlobalConfiguration
@pedroreys
pedroreys / gist:1850239
Created February 17, 2012 03:11
web API Message Handler configuration
protected void Application_Start()
{
//Default Registration and configuration stuff
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
BundleTable.Bundles.RegisterTemplateBundles();
@pedroreys
pedroreys / gist:1850262
Created February 17, 2012 03:15
406 response via Message Handler
C:\dev> curl -v -H "Accept: text/unknown_media_type" localhost:1705/api/values
* About to connect() to localhost port 1705 (#0)
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 1705 (#0)
> GET /api/values HTTP/1.1
> User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8r zlib/1.2.3
> Host: localhost:1705
> Accept: text/unknown_media_type
>
< HTTP/1.1 406 Not Acceptable
@pedroreys
pedroreys / gist:1986568
Created March 6, 2012 14:32
CreateResponse
public class CreateResponse : HttpResponseMessage
{
public CreateResponse()
{
StatusCode = HttpStatusCode.Created;
}
public CreateResponse(IApiResource resource) :this()
{
var location = new ResourceLocation();
@pedroreys
pedroreys / gist:1986630
Created March 6, 2012 14:44
Using CreateResponse
public class Person : IApiResource
{
public int Id { get; set; } //whatever property is going to be used in the Get(int id) method in PeopleController
public void SetLocation(ResourceLocation location)
{
location.SetInController<PeopleController>(x => x.Get(Id));
}
}
public HttpResponseMessage<Person> Post(Person person)
{
_repository.Save(person);
var responseMessage = new HttpResponseMessage(person, HttpStatusCode.Created);
responseMessage.Headers.Location = new Uri(“http://api.example.com/People/”+person.Id);
return responseMessage;
}
public class CreateResponse : HttpResponseMessage
{
public CreateResponse() : base(HttpStatusCode.Created) { }
}