public void Create(GoodsSoldCreate request) { var employee = _employeeRepository.GetById(request.EmployeeId); var goodsSold = MapGoodsSold(request, employee); _goodsSoldRepository.Add(goodsSold); }
private static List <GoodsSoldItem> MapItems(GoodsSoldCreate request, IQueryable <Product> products) { return(request.Items.Select(x => new GoodsSoldItem { ProductId = x.ProductId, ProductName = products.First(p => p.Id == x.ProductId).Name, Quantity = x.Quantity, Price = x.Price }).ToList()); }
private GoodsSold MapGoodsSold(GoodsSoldCreate request, Employee employee) { var productIds = request.Items.Select(x => x.ProductId).ToList(); var products = _productRepository.Query().Where(x => productIds.Contains(x.Id)); return(new GoodsSold { Employee = employee, EmployeeId = employee.Id, Amount = -CalculateTotal(request), Items = MapItems(request, products) }); }
private static decimal CalculateTotal(GoodsSoldCreate request) { return(request.Items.Select(x => x.Quantity * x.Price).DefaultIfEmpty(0).Sum()); }