Esempio n. 1
0
        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));
        }