Ich habe 2 Tabellen, eine ist Orders
, die die Adresse/Liste der Produkte enthält, und eine returnDetails
Tabelle. Dies wird verwendet, wenn ein Benutzer eine Bestellung zurückgeben möchte. Die returnDetails hat die OrderId, die zurückgegeben wird.Vergleichen von Tabellen in der Steuerung
Wie zeige ich eine Nachricht nur für die Bestellungen an, die eine Rücksendung mit derselben Bestell-ID haben? Derzeit wird nur "Verarbeitung" angezeigt.
Ich verwendete ein Ansichtsmodell, um die Bestellungen mit Produkten anzuzeigen. Hier ist, was ich versucht, aber ich habe es nicht bekam Arbeit noch:
[Authorize]
public ActionResult Index(string date)
{
string currentUser = this.User.Identity.GetUserName();
List<T_shirt_Company_v3.ViewModels.MyOrdersViewModel> list = (from o in new TshirtStoreDB().Orders
.Where(o => o.Username == currentUser)
.OrderByDescending(o => o.OrderDate)
.Select(o => new MyOrdersViewModel()
{
OrderId = o.OrderId,
Address = o.Address,
FirstName = o.FirstName,
LastName = o.LastName,
City = o.City,
OrderDate = o.OrderDate,
PostalCode = o.PostalCode,
Total = o.Total,
HasBeenShipped = o.HasBeenShipped,
PostageList = o.PostageList,
Details = (from d in o.OrderDetails
select new MyOrderDetails
{
Colour = d.Product.Colour,
Quantity = d.Quantity,
Title = d.Product.Title,
UnitPrice = d.UnitPrice
}).ToList()
}).ToList() select o).ToList();
if (date != null)
{
DateTime today = DateTime.Now.AddDays(Convert.ToInt32(date) * -1);
return View(list.Where(x => x.OrderDate >= today).ToList());
}
//WORKING ON
var returnstats = db.Orders.Where(x => x.OrderId == x.returnDetails.OrderId).ToList();
if (returnstats != null)
{
ViewBag.returnstats = "Returning Item";
}
else
{
ViewBag.returnstats = "processing";
}
return View(list);
}