|
第8步:创建或更新Contact
记下来我们添加一个 HttpPost方法,它可接受一个Contact对象,并可根据该对象是否具有一个Id来决定,是要创建一个新联系人还是要对已有联系人进行更新。完成这个任务的代码如下所示:
01 public Contact Save(Contact contact)
02 {
03 var contactsList = mongoDatabase.GetCollection("Contacts");
04 WriteConcernResult result;
05 bool hasError = false;
06 if (string.IsNullOrEmpty(contact.Id))
07 {
08 contact.Id = ObjectId.GenerateNewId().ToString();
09 result = contactsList.Insert<Contact>(contact);
10 hasError = result.HasLastErrorMessage;
11 }
12 else
13 {
14 IMongoQuery query = Query.EQ("_id", contact.Id);
15 IMongoUpdate update = Update
16 .Set("Name", contact.Name)
17 .Set("Address", contact.Address)
18 .Set("Phone", contact.Phone)
19 .Set("Email", contact.Email);
20 result = contactsList.Update(query, update);
21 hasError = result.HasLastErrorMessage;
22 }
23 if (!hasError)
24 {
25 return contact;
26 }
27 else
28 {
29 throw new HttpResponseException(HttpStatusCode.InternalServerError);
30 }
31 }
|
|