Skip to content

Instantly share code, notes, and snippets.

@hartez
Created June 23, 2014 18:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hartez/5244876cd664309319f6 to your computer and use it in GitHub Desktop.
Save hartez/5244876cd664309319f6 to your computer and use it in GitHub Desktop.
Address controller with comments
/// <summary>
/// Endpoints for managing Addresses
/// </summary>
public class AddressController : ApiController
{
/// <summary>
/// Gets a list of addresses in the system
/// </summary>
/// <returns>IEnumerable&lt;AddressViewModel&gt;.</returns>
public IEnumerable<AddressViewModel> Get()
{
return Addresses.Get();
}
/// <summary>
/// Gets the specified Address
/// </summary>
/// <param name="id">The Address Id.</param>
/// <returns>AddressViewModel.</returns>
[Route(Name = "GetAddress")]
public AddressViewModel Get(int id)
{
return Addresses.Get(id);
}
// POST api/address
/// <summary>
/// Creates a new Address
/// </summary>
/// <param name="address">The address data.</param>
/// <returns>IHttpActionResult.</returns>
[ResponseType(typeof(AddressViewModel))]
public IHttpActionResult Post(AddressInputModel address)
{
if(ModelState.IsValid)
{
var id = Addresses.Add(address);
var uri = new Uri(Url.Link("GetAddress", new { id }));
return Created(uri, Addresses.Get(id));
}
return BadRequest(ModelState);
}
/// <summary>
/// Updates an Address
/// </summary>
/// <param name="id">The Address identifier.</param>
/// <param name="address">The updated address data.</param>
public void Put(int id, AddressInputModel address)
{
Addresses.Update(id, address);
}
/// <summary>
/// Deletes the specified Address
/// </summary>
/// <param name="id">The Address Id.</param>
public void Delete(int id)
{
Addresses.Remove(id);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment