Book Image

ASP.NET Core 2 and Vue.js

By : Stuart Ratcliffe
5 (1)
Book Image

ASP.NET Core 2 and Vue.js

5 (1)
By: Stuart Ratcliffe

Overview of this book

This book will walk you through the process of developing an e-commerce application from start to finish, utilizing an ASP.NET Core web API and Vue.js Single-Page Application (SPA) frontend. We will build the application using a featureslice approach, whereby in each chapter we will add the required frontend and backend changes to complete an entire feature. In the early chapters, we’ll keep things fairly simple to get you started, but by the end of the book, you’ll be utilizing some advanced concepts, such as server-side rendering and continuous integration and deployment. You will learn how to set up and configure a modern development environment for building ASP.NET Core web APIs and Vue.js SPA frontends.You will also learn about how ASP.NET Core differs from its predecessors, and how we can utilize those changes to our benefit. Finally, you will learn the fundamentals of building modern frontend applications using Vue.js, as well as some of the more advanced concepts, which can help make you more productive in your own applications in the future.
Table of Contents (15 chapters)

Adding an order list API endpoint

We have one last action method to add, which, thankfully, is a very simple one. If you've closed it, open the Features/Orders/Controller.cs file up again, and add the following action method beneath the one we already defined:

[HttpGet]
public async Task<IActionResult> List()
{
var orders = await _db.Orders
.Where(x => x.User.UserName == User.Identity.Name)
.Select(x => new OrderListViewModel
{
Id = x.Id,
Placed = x.Placed,
Items = x.Items.Sum(i => i.Quantity),
Total = x.Items.Sum(i => i.ProductVariant.Price * i.Quantity),
PaymentStatus = Enum.GetName(typeof(PaymentStatus),
x.PaymentStatus)
})
.ToListAsync();

return Ok(orders);
}

We simply query the database for all orders where the associated user's UserName property matches the username of the currently logged in user...