internal async Task UpdatePhoneNumber() { DeletePhoneNumberRequest deleteRequest = new DeletePhoneNumberRequest(); Console.WriteLine(); Console.WriteLine("Enter Phone Number ID: "); int numberID = UIHelper.EnterInteger(); try { Console.WriteLine($"Looking up phone number with ID={numberID} on the server"); PhoneNumberModel phoneNumber = await phoneBookClient.GetPhoneNumberAsync(new GetPhoneNumberRequest { NumberID = numberID }); Console.WriteLine("Found phone number:"); UIHelper.PrintPhoneNumberMultiline(phoneNumber); Console.Write("Are you sure you want to delete this phone number? (Y/N): "); var confirmation = Console.ReadKey(); Console.WriteLine(); if (confirmation.KeyChar == 'Y' || confirmation.KeyChar == 'y') { try { var phoneNumberRequest = UIHelper.InputPhoneNumber(); phoneNumberRequest.NumberID = numberID; var response = await phoneBookClient.UpdatePhoneNumberAsync(phoneNumberRequest); Console.WriteLine(); Console.WriteLine($"Number is updated, this is contact details from the server: "); UIHelper.PrintContact(response); } catch (RpcException rpcException) { Console.WriteLine("There was an error communicating with gRPC server"); Console.WriteLine($"Code: {rpcException.StatusCode}, Status: {rpcException.Status}"); } catch (Exception ex) { Console.WriteLine(ex); } } } catch (RpcException rpcException) { if (rpcException.StatusCode == StatusCode.NotFound) { Console.WriteLine($"Could not find number with ID={numberID}"); } else { Console.WriteLine("There was an error communicating with gRPC server"); Console.WriteLine($"Code: {rpcException.StatusCode}, Status: {rpcException.Status}"); } } catch (Exception ex) { Console.WriteLine(ex); } }
public override Task <ContactModel> DeletePhoneNumber(DeletePhoneNumberRequest request, ServerCallContext context) { ContactModel contact; PhoneNumberModel deletePhone; repository.FindContactAndPhoneNumber(request.NumberID, out contact, out deletePhone); if (contact == null || deletePhone == null) { throw new RpcException(new Status(StatusCode.NotFound, $"Phone number with ID={request.NumberID} is not found.")); } contact.PhoneNumbers.Remove(deletePhone); return(Task.FromResult(contact)); }