示例#1
0
        public Task <FaultReport> SetFaultReport(FaultReport report)
        {
            int n = faultReports.Count + 1;

            report.WoNo    = n;
            report.RegDate = DateTime.Now;
            faultReports.Add(report);
            return(Task.FromResult(report));

            //var report = new FaultReport
            //{
            //    Contract = "Contract 3",
            //    ErrDescr = "ErrDescr 3",
            //    ErrDescrLo = "ErrDescrLo 3",
            //    ErrDiscoverCode = "3",
            //    ErrSymptom = "3",
            //    PriorityId = "3",
            //    MchCode = "MchCode 3",
            //    MchCodeContract = "MchCodeContract 3",
            //    MchName = "MchName 3",
            //    OrgCode = "OrgCode 3",
            //    WoNo = 3,
            //    RegDate = DateTime.Now
            //},
        }
示例#2
0
 protected override bool CommitInput()
 {
     FaultReport = new FaultReport()
     {
         Subject = "User generated fault report."
     };
     Dispatcher.Invoke(new Action(() => FaultReport.UserReport = UserReport.Text));
     return(true);
 }
示例#3
0
        public ActionResult Report3(int pid)
        {
            List <FaultReport> frList = new ProductServ.ProductServiceClient().getMostFaults().ToList();
            FaultReport        fr     = new FaultReport();
            Product            p      = new Product();

            foreach (FaultReport frr in frList)
            {
                fr = frr;
            }
            int pID = Convert.ToInt32(fr.ProductID);

            p = new ProductServ.ProductServiceClient().GetProductByID(pID);
            return(new RazorPDF.PdfResult(p, "Report3"));
        }
示例#4
0
        public PartialViewResult LeastFaults()
        {
            List <FaultReport> frList = new ProductServ.ProductServiceClient().getLeastFaults().ToList();
            FaultReport        fr     = new FaultReport();
            Product            p      = new Product();

            foreach (FaultReport frr in frList)
            {
                fr = frr;
            }
            int pID = Convert.ToInt32(fr.ProductID);

            p = new ProductServ.ProductServiceClient().GetProductByID(pID);
            return(PartialView("_leastFaults", p));
        }
示例#5
0
        private static async Task <FaultReport> SendFaultReport(Sensor sensor, SensorFault fault, DateTime timestamp)
        {
            if (fault.Type == SensorFaultType.FromTrigger)
            {
                try
                {
                    var trigger = await SensorTriggerAccess.FindSensorTrigger(fault.Id);

                    var template = await FaultReportAccess.FindFaultReportTemplate(trigger.TemplateId);

                    var machine = await MachineAccess.FindMachine(DeviceSettings.ObjectID);

                    var report = new FaultReport
                    {
                        MchCode         = machine.MchCode,
                        MchCodeContract = machine.MchCodeContract,
                        ErrDescr        = template.Directive,
                        ErrDescrLo      = template.FaultDescr,
                        ErrDiscoverCode = template.DiscCode,
                        ErrSymptom      = template.SymptCode,
                        PriorityId      = template.PrioCode,
                        OrgCode         = machine.OrgCode
                    };

                    report = await FaultReportAccess.SetFaultReport(report);

                    DocumentString document = new DocumentString();
                    SensorToDocumentString(document, sensor, trigger);

                    var docFileData = await createDocument(report.WoNo, $"report_{sensor.Id}", document);

                    if (dialogCount == 0)
                    {
                        await ShowDialog(sensor, fault, report, docFileData).ContinueWith(task =>
                        {
                            Interlocked.Decrement(ref dialogCount);
                        });
                    }

                    return(report);
                }
                catch (Exception)
                {
                    return(null);
                }
            }
            return(null);
        }
示例#6
0
        private static async Task ShowDialog(Sensor sensor, SensorFault fault, FaultReport report, DocumentFileData docFileData)
        {
            var dialog = new ContentDialog {
                Title = "Faulted"
            };

            dialog.VerticalAlignment   = Windows.UI.Xaml.VerticalAlignment.Center;
            dialog.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center;
            dialog.Loaded += async(sender, e) =>
            {
                await Task.Delay(4000);

                dialog.Hide();
            };
            var panel = new StackPanel();
            var text  = new TextBlock();

            text.Text = $"Sensor '{sensor.Id}' faulted with type: {fault.Type}\n";

            if (report == null)
            {
                dialog.Title += " (ERROR)";
                text.Text    += "but failed to send a fault report, check the cloud connection";
            }
            else
            {
                text.Text = $"Report generated with Work Order: {report.WoNo} \n Attachement Number: {docFileData.DOC_NO}";
            }

            panel.Children.Add(text);
            dialog.Content                  = panel;
            dialog.SecondaryButtonText      = "Close";
            dialog.IsSecondaryButtonEnabled = true;

            if (report != null)
            {
                dialog.PrimaryButtonText      = "View Report";
                dialog.IsPrimaryButtonEnabled = true;
                dialog.PrimaryButtonCommand   = new ActionCommand <object>(o =>
                {
                    ShellPage.Current.ContentNavigate(typeof(FaultReportDetailsPage), report);
                });
            }

            Interlocked.Increment(ref dialogCount);
            await dialog.ShowAsync();
        }
        public FaultReport GenerateFaultReport()
        {
            FaultReport result = null;

            if (!DashboardData.DashboardStateManager.DashboardStateContains(DashboardState.FaultReport))
            {
                FaultReportControl faultReporter = null;
                Dispatcher.Invoke(new Action(() =>
                {
                    faultReporter = new FaultReportControl(DashboardData);
                    DashboardData.FaultReportPrompt = faultReporter;
                }));
                faultReporter.PresentModal();
                //DashboardData.DashboardState = DashboardState.Default;
                faultReporter.Reset();
                result = faultReporter.FaultReport;
                Dispatcher.Invoke(new Action(() => DashboardData.FaultReportPrompt = null));
            }
            return(result);
        }
示例#8
0
 public void Create(FaultReport faultReport)
 {
     entities.AddToFaultReport(faultReport);
     entities.SaveChanges();
 }
示例#9
0
 public Task <FaultReport> SetFaultReport(FaultReport report)
 {
     return(cloud.SetFaultReport(report));
 }
示例#10
0
        public ActionResult GenerateTicket(FaultModel fm, int pid)
        {
            //try
            //{
            string  username  = Session["username"].ToString();
            Account a         = new AccountServ.AccountServiceClient().getAccountByUsername(username);
            int     accountID = a.ID;

            int         ticketNum      = new FaultsServ.FaultReportLogServiceClient().GenerateTicketNum();
            FaultReport checkTicketnum = new FaultsServ.FaultReportLogServiceClient().getTicketNum(ticketNum);

            if (checkTicketnum == null)
            {
                //FaultReport
                FaultReport fr = new FaultReport();
                //fr.ID = new int();
                fr.TicketNum = ticketNum;
                //add barcode
                BarCodeServ.BarCodeSoapClient bc = new BarCodeServ.BarCodeSoapClient();

                BarCodeData barCodeData = new BarCodeData();
                barCodeData.Height             = 125;
                barCodeData.Width              = 225;
                barCodeData.Angle              = 0;
                barCodeData.Ratio              = 5;
                barCodeData.Module             = 0;
                barCodeData.Left               = 25;
                barCodeData.Top                = 0;
                barCodeData.CheckSum           = false;
                barCodeData.FontName           = "Arial";
                barCodeData.BarColor           = "Black";
                barCodeData.BGColor            = "White";
                barCodeData.FontSize           = 10.0f;
                barCodeData.barcodeOption      = BarcodeOption.Both;
                barCodeData.barcodeType        = BarcodeType.Code_2_5_interleaved;
                barCodeData.checkSumMethod     = CheckSumMethod.None;
                barCodeData.showTextPosition   = ShowTextPosition.BottomCenter;
                barCodeData.BarCodeImageFormat = ImageFormats.PNG;


                Byte[]       imgBarcode = bc.GenerateBarCode(barCodeData, randumNum.ToString());
                MemoryStream memStream  = new MemoryStream(imgBarcode);
                Bitmap       bm         = new Bitmap(memStream);
                bm.Save(HttpContext.Response.OutputStream, ImageFormat.Jpeg);
                System.Drawing.Image image = System.Drawing.Image.FromStream(new System.IO.MemoryStream(imgBarcode));


                //end of barcode method
                fr.Barcode   = imgBarcode;
                fr.ProductID = pid;
                fr.AccountID = accountID;
                new FaultsServ.FaultReportLogServiceClient().Create(fr);

                //FaultLog
                FaultReport details = new FaultsServ.FaultReportLogServiceClient().getFaultReportIDByAccountIDTicket(accountID, ticketNum);

                FaultLog fl = new FaultLog();
                fl.Status        = "Reported";
                fl.Description   = fm.Description;
                fl.DateReport    = System.DateTime.Now;
                fl.FaultReportID = details.ID;

                new FaultsServ.FaultReportLogServiceClient().CreateLog(fl);
                SendEmailToClient(accountID, image, pid, memStream, Convert.ToInt32(fr.TicketNum));
                //SendEmailToClient(accountID, memStream,pid);
                return(RedirectToAction("Index", "Warranty"));
            }
            else
            {
                //show error
                ViewBag.Msg = "An error was encountered during the generation of the ticket";
            }
            return(RedirectToAction("Index", "Warranty"));
            //}
            //catch (Exception ex)
            //{
            //    TempData["CatchError"] = "An error was encountered. Please try again later";
            //    return RedirectToAction("Index", "Warranty");
            //}
        }
示例#11
0
 protected override bool CommitInput()
 {
     FaultReport = new FaultReport() { Subject = "User generated fault report." };
     Dispatcher.Invoke(new Action(() => FaultReport.UserReport = UserReport.Text));
     return true;
 }
示例#12
0
 public Task SendFaultReport(DumpMetainfo dumpInfo, FaultReport faultReport)
 {
     Reports.Add(faultReport);
     return(Task.CompletedTask);
 }