public bool GenerateQuoteFromPr(List <PurchaseRequestDetail> prdlist, int clerkid) { List <PurchaseRequestDetail> prdlistwithnull = new List <PurchaseRequestDetail>(); foreach (PurchaseRequestDetail prd in prdlist) { if (prd.VenderQuote == null || prd.VenderQuote == "") { prdlistwithnull.Add(prd); } } if (prdlistwithnull.Count() < 1) { return(true); } else { List <PurchaseRequestDetail> pnull = prdlistwithnull.OrderBy(m => m.SupplierId).ToList(); Dictionary <string, List <PurchaseRequestDetail> > pdict = new Dictionary <string, List <PurchaseRequestDetail> >(); foreach (PurchaseRequestDetail prd in pnull) { prd.Product = prepo.FindProductById(prd.ProductId); if (!pdict.ContainsKey(prd.SupplierId)) { List <PurchaseRequestDetail> prdlist1 = new List <PurchaseRequestDetail>(); prdlist1.Add(prd); pdict.Add(prd.SupplierId, prdlist1); } else { pdict[prd.SupplierId].Add(prd); } } foreach (var r in pdict) { Supplier supplier = srepo.FindSupplierById(r.Value[0].SupplierId); Employee clerk = erepo.FindEmpById(clerkid); EmailModel email = new EmailModel(); List <PurchaseRequestDetail> List_of_PR_tosend = pdict[r.Key]; Task.Run(async() => { EmailTemplates.RequestQuoteTemplate rfq = new EmailTemplates.RequestQuoteTemplate(clerk, supplier, List_of_PR_tosend); email.emailTo = supplier.Email; email.emailSubject = rfq.subject; email.emailBody = rfq.body; await mailservice.SendRFQEmailAsync(email, clerk); }); } } return(true); }
public ActionResult ProductDetails(int?id) { if (id == null) { RedirectToAction("Index", "Home"); } Product p = pr.FindProductById(id); User u = ur.FindUserById(p.OwnerId); ProductDetails pd = new ProductDetails { Title = p.Title, ShortDescription = p.ShortDescription, LongDescription = p.LongDescription, Price = p.Price, Picture1 = p.Picture1, Picture2 = p.Picture2, Picture3 = p.Picture3, birthDate = u.BirthDate, Email = u.Email, UserName = u.UserName }; return(View(pd)); }