// GET: WorkOrders/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WorkOrder workOrder = db.WorkOrders.Find(id);

            if (workOrder == null)
            {
                return(HttpNotFound());
            }
            var workOrders = db.WorkOrders.Include(w => w.Client).Include(w => w.QuoteEstimate);

            WorkOrderWithDetails workOrderWithDetails = new WorkOrderWithDetails();

            workOrderWithDetails.workOrder = workOrder;
            IEnumerable <AssayOrder> AssayList   = db.AssayOrders.ToList();
            IEnumerable <TestResult> TestResList = db.TestResults.ToList();

            foreach (AssayOrder item in AssayList)
            {
                if (item.WorkOrderID == id)
                {
                    AssayOrderWithTestResults assayOrder = new AssayOrderWithTestResults();
                    assayOrder.AssayOrder = item;

                    foreach (TestResult val in TestResList)
                    {
                        if (val.AssayOrderID == item.AssayOrderID)
                        {
                            assayOrder.testResults.Add(val);
                        }
                    }
                    workOrderWithDetails.assayOrderWithTestResultsList.Add(assayOrder);
                }
            }
            ViewBag.ClientID = new SelectList(db.Clients, "ClientID", "CompanyName", workOrder.ClientID);
            ViewBag.QuoteID  = new SelectList(db.QuoteEstimates, "QuoteID", "ModifiedBy", workOrder.QuoteID);

            return(View(workOrderWithDetails));
        }
Exemplo n.º 2
0
        public async System.Threading.Tasks.Task <ActionResult> CreateWorkOrderReport(int workorderid)
        {
            IEnumerable <AssayOrder> assayOrderList = db.AssayOrders.ToList();
            IEnumerable <TestResult> ResultsList    = db.TestResults.ToList();
            List <AssayOrder>        myAssays       = new List <AssayOrder>();
            WorkOrderWithDetails     myOrder        = new WorkOrderWithDetails();

            myOrder.workOrder        = db.WorkOrders.Find(workorderid);
            myOrder.workOrder.Client = db.Clients.Find(myOrder.workOrder.ClientID);
            foreach (AssayOrder assay in assayOrderList)
            {
                if (assay.WorkOrderID == workorderid)
                {
                    AssayOrderWithTestResults myItem = new AssayOrderWithTestResults();
                    myItem.AssayOrder = assay;
                    foreach (TestResult myTest in ResultsList)
                    {
                        if (myTest.AssayOrderID == assay.AssayOrderID)
                        {
                            myItem.testResults.Add(myTest);
                        }
                    }
                    myOrder.assayOrderWithTestResultsList.Add(myItem);
                }
            }



            var body = "<div style='width:800px;margin-left:auto; margin-right:auto;'>" +
                       "<div style='text-align:center;'>" +
                       "<h2> Northwest Labs</h2>" +
                       "<h3> Order Number: " + myOrder.workOrder.WorkOrderID + "</h3>" +
                       "</div>" +
                       "<div>" +
                       "<p><b>Client Name:</b> " + myOrder.workOrder.Client.CompanyName + "</p>" +
                       "<p><b>Address Line 1:</b> " + myOrder.workOrder.Client.Address1 + "</p>" +
                       "<p><b>Address Line 2:</b> " + myOrder.workOrder.Client.Address2 + "</p>" +
                       "<p><b>Contact Name:</b> " + myOrder.workOrder.Client.ContactFirstName + " " + myOrder.workOrder.Client.ContactLastName + "</p>" +
                       "<p><b>Phone:</b> " + myOrder.workOrder.Client.Phone + "</p>" +
                       "<p><b>Email:</b> " + myOrder.workOrder.Client.Email + "</p>" +
                       "</div>" +
                       "<div>";

            foreach (NorthWestLabs.Models.AssayOrderWithTestResults item in myOrder.assayOrderWithTestResultsList)
            {
                body += "<h3>Compound ID:</h3> " + item.AssayOrder.CompoundID +
                        "<div>";
                foreach (NorthWestLabs.Models.TestResult result in item.testResults)
                {
                    body += "<ul>" +
                            "<li>Status: " + result.Status.StatusName + "</li>" +
                            "<li>Test Tube: " + result.TestTubeID + "</li>" +
                            "<li>Test ID: " + result.TestID + "</li>" +
                            "</ul>";
                }
                body += "</div>" +
                        "<br />";
            }
            body += "</div><div></div></div>";



            var message = new MailMessage();

            message.To.Add(new MailAddress(myOrder.workOrder.Client.Email));                // replace with valid value
            message.From       = new MailAddress("*****@*****.**", "Northwest Labs"); // replace with valid value
            message.Subject    = "Northwest Labs - Work Order Report";
            message.Body       = string.Format(body);
            message.IsBodyHtml = true;
            //message.Attachments() add attachments

            using (var smtp = new SmtpClient())
            {
                var credential = new NetworkCredential
                {
                    UserName = "******", // replace with valid value
                    Password = "******"    // replace with valid value
                };
                smtp.Credentials = credential;
                smtp.Host        = "smtp.gmail.com";
                smtp.Port        = 587;
                smtp.EnableSsl   = true;
                await smtp.SendMailAsync(message);
            }



            return(View(myOrder));
        }