public async Task <DataAccessResponse <string> > Remove(string id) { DataAccessResponse <string> response = new DataAccessResponse <string>(); if (id == null) { return(response.NotFound()); } IDeleteResponse deleteResponse = await _esClient.DeleteAsync <Friend>(id); if (deleteResponse.Result == Result.NotFound) { return(response.NotFound()); } if (!deleteResponse.IsValid) { return(response.InternalServerError()); } if (deleteResponse.Id == null) { return(response.InternalServerError()); } return(response.NoContent(deleteResponse.Id)); }
public async Task <DataAccessResponse <string> > Update(string id, 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()); } IUpdateResponse <Friend> updateResponse = await _esClient.UpdateAsync <Friend>(friend, d => d .Index(Index) .Type(Type) .Doc(friend)); if (!updateResponse.IsValid) { return(response.InternalServerError()); } return(response.NoContent(updateResponse.Id)); }
public async Task <DataAccessResponse <string> > Update(string friendId, Guid purchasedItemId, PurchasedItem purchasedItem) { DataAccessResponse <string> response = new DataAccessResponse <string>(); if (friendId == null) { return(response.NotFound()); } if (purchasedItemId == null) { return(response.NotFound()); } DataAccessResponse <Friend> friendResponse = await _friendRepo.Get(friendId); if (friendResponse.Status != HttpStatusCode.OK) { return(response.NotFound()); } Friend friend = friendResponse.Payload; if (friend.PurchasedItems == null) { return(response.BadRequest()); } PurchasedItem purchasedItemToUpdate = friend.PurchasedItems.FirstOrDefault(p => p.Id == purchasedItemId); if (purchasedItemToUpdate == null) { return(response.NotFound()); } purchasedItem.Id = purchasedItemId; friend.PurchasedItems.Remove(purchasedItemToUpdate); friend.PurchasedItems.Add(purchasedItem); 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.NoContent(updateResponse.Id)); }