public async Task <DataAccessResponse <string> > Add(string friendId, PurchasedItem item) { DataAccessResponse <string> response = new DataAccessResponse <string>(); if (friendId == null) { return(response.NotFound()); } if (item == null) { return(response.NotFound()); } DataAccessResponse <Friend> friendResponse = await _friendRepo.Get(friendId); if (friendResponse.Status != HttpStatusCode.OK) { return(response.NotFound()); } Friend friend = friendResponse.Payload; item.Id = Guid.NewGuid(); friend.PurchasedItems = friend.PurchasedItems == null ? new List <PurchasedItem>() : friend.PurchasedItems; friend.PurchasedItems.Add(item); IUpdateResponse <Friend> updateResponse = await _esClient.UpdateAsync <Friend>(friendId, d => d .Index(FriendRepository.Index) .Type(FriendRepository.Type) .Doc(friend)); if (!updateResponse.IsValid) { return(response.InternalServerError()); } if (updateResponse.Id == null) { return(response.InternalServerError()); } return(response.Created(item.Id.ToString())); }
public async Task <DataAccessResponse <string> > Add(Friend friend) { DataAccessResponse <string> response = new DataAccessResponse <string>(); if (friend == null) { return(response.NotFound()); } if (friend.PurchasedItems != null) { friend.PurchasedItems.ForEach(p => p.Id = Guid.NewGuid()); } IIndexResponse indexResponse = await _esClient.IndexAsync <Friend>(friend, d => d.Index(Index).Type(Type)); if (!indexResponse.IsValid) { return(response.InternalServerError()); } return(response.Created(indexResponse.Id)); }