2016-05-16 1 views
0

J'ai 2 tables, une est Orders, qui contient l'adresse/la liste des produits et une table returnDetails. Ceci est utilisé lorsqu'un utilisateur souhaite renvoyer une commande. Le returnDetails a le OrderId qui est retourné.Comparaison de tables dans le contrôleur

Comment afficher un message uniquement sur les commandes ayant un retour avec le même OrderID? Actuellement, seul le "traitement" est affiché. J'ai utilisé un modèle de vue pour afficher les commandes avec des produits. Voici ce que j'ai essayé, mais je ne l'ai pas encore: on

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

Répondre

0

Je pense que le problème est que vous n'êtes pas clair sur ce qui est la logique métier pour « returnstats ». À partir des valeurs de cette variable que vous fournissez, il semble que ce soit pour un ordre UNIQUE au lieu d'une liste de commandes. Voici une méthode Index modifiée pour votre référence: