private void ProductUpdateHandler(ProductUpdatedMessage message) { ProductModel product = message.Product; view.UpdateProduct(product.ID, product.Name, product.Price.ToString(), product.Discount.ToString()); }
public void Handle(ProductUpdatedMessage message) { //Use current hub property CurrentHubContext.Clients.All.productUpdated(new { Message = "Product Update handled in ProductOperationsModule.", message.ProductId }); }
public async Task <IActionResult> Edit(EditProductViewModel editProductViewModel) { var productExists = await this.dbContext .Products .AnyAsync(x => x.Id == editProductViewModel.Id); if (!productExists) { return(this.BadRequest(ProductConstants.ProductDoesNotExistMessage)); } if (this.ModelState.IsValid) { var product = await this.dbContext .Products .FirstOrDefaultAsync(x => x.Id == editProductViewModel.Id); this.mapper.Map(editProductViewModel, product); product.LastUpdated = DateTime.Now; var messageData = new ProductUpdatedMessage { ProductId = editProductViewModel.Id, Description = editProductViewModel.Description, ImageUrl = editProductViewModel.ImageUrl, Name = editProductViewModel.Name, Price = editProductViewModel.Price, Weight = editProductViewModel.Weight }; var message = new Message(messageData); await this.dbContext .Messages .AddAsync(message); this.dbContext .Products .Update(product); await this.dbContext .SaveChangesAsync(); var msg = await this.dbContext .Messages .FindAsync(message.Id); await this.publisher.Publish(messageData); msg.MarkAsPublished(); await this.dbContext .SaveChangesAsync(); return(this.Ok()); } var errors = this.ModelState .SelectMany(x => x.Value.Errors) .Select(x => x.ErrorMessage) .ToList(); return(this.BadRequest(errors)); }