2016-05-16 7 views
0

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); 
} 

Antwort

0

Ich denke, das Problem ist, dass man nicht klar darüber, was die Business-Logik für ‚returnstats‘. Aus den Werten dieser Variablen, die Sie bereitstellen, sieht es so aus, als ob es sich um eine EINZEL-Bestellung anstelle einer Bestellungsliste handelt. Hier ist eine modifizierte Index-Methode für Ihre Referenz:

Verwandte Themen