public NewAuthorViewModel() { async void execute(string value) { try { author.Name = value; await Constants.BaseServiceUrl.AppendPathSegment(typeof(Author).Name).PostJsonAsync(author); AuthorAdded?.Invoke(this, author); } // Se webservice retornar erro, lança uma FlurlHttpException catch (FlurlHttpException ex) { // Nesse caso, pega o corpo da resposta de erro e // desserializa como um DTO ErrorResponse var error = await ex.GetResponseJsonAsync <ErrorResponse>(); // Invoca evento de requisição zoada. RequestFailed?.Invoke(this, error); } } // Atribui valor ao comando. PostCommand = new Command <string>(execute); }
private void Save_Executed(object sender, ExecutedRoutedEventArgs e) { if (!ApplicationDbContext.Instance.Authors.Any(a => a.FirstName.ToLower() == AuthorFirstNameTextBox.Text.ToLower() && a.LastName.ToLower() == AuthorLastNameTextBox.Text.ToLower())) { var author = new Author { FirstName = AuthorFirstNameTextBox.Text, LastName = AuthorLastNameTextBox.Text, Id = Guid.NewGuid() }; ApplicationDbContext.Instance.Entry(author).State = EntityState.Added; ApplicationDbContext.Instance.SaveChanges(); AuthorAdded?.Invoke(this, new EntityEventArgs <Author> { Entity = author }); this.Close(); } else { AuthorExistsTextBlock.Visibility = Visibility.Visible; } }
void IChatServiceCallback.AuthorAdded(long userId, long roomId, long?addedBy) { _eventDispatcher.Add(() => AuthorAdded.SafeInvoke(GetUser(userId), GetRoom(roomId), addedBy == null ? null : GetUser((long)addedBy))); }