comparison SilverlightAsyncRestWcf/SilverlightAsyncRestWcf.Services/CarService.cs @ 117:9eadccc3b46c

REST working, next step unit tests
author stevenh7776
date Sun, 27 May 2012 15:06:35 +0100
parents
children fa4ba8943048
comparison
equal deleted inserted replaced
116:d3380f499575 117:9eadccc3b46c
1 using System;
2 using System.Diagnostics.Contracts;
3 using System.IO;
4 using System.Runtime.Serialization.Json;
5 using System.ServiceModel.Activation;
6 using System.ServiceModel.Web;
7 using SilverlightAsyncRestWcf.Common;
8
9 namespace SilverlightAsyncRestWcf.Services
10 {
11 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
12 public class CarService : IService<Car>
13 {
14 private readonly IRepository<Car> _repo;
15 private readonly DataContractJsonSerializer _serializer;
16
17 public CarService()
18 {
19 _repo = new FakeCarRepository();
20 _serializer = new DataContractJsonSerializer(typeof(Car));
21 }
22
23 public CarService(IRepository<Car> repo)
24 {
25 _repo = repo;
26 }
27
28 [WebGet(UriTemplate = "Car/{id}")]
29 public string Get(string id)
30 {
31 Contract.Requires((bool)(id != null), "id != null");
32 return _repo.GetById(id).ToJSON();
33 }
34
35 [WebInvoke(UriTemplate = "Car", Method = "POST")]
36 public void Insert(Car car)
37 {
38 Contract.Requires((bool)(car != null), "car != null");
39 _repo.Insert(car);
40 }
41
42 [WebInvoke(UriTemplate = "Car/{id}", Method = "PUT")]
43 public void Update(string id, Car car)
44 {
45 Contract.Requires((bool)(car != null), "car != null");
46 _repo.Update(car);
47 }
48
49 [WebInvoke(UriTemplate = "Car({id})", Method = "DELETE")]
50 public void Delete(string id)
51 {
52 Contract.Requires((bool)(id != null), "id != null");
53 _repo.Delete(id);
54 }
55 }
56 }