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