Пример #1
0
        public DTO.EditFormData GetData(int userId, int id, int?factoryOrderDetailID, out Library.DTO.Notification notification)
        {
            notification = new Library.DTO.Notification()
            {
                Type = Library.DTO.NotificationType.Success
            };
            DTO.EditFormData data = new DTO.EditFormData();
            data.Data = new DTO.QCReport();
            DTO.FactoryOrderDetail factoryOrderDetailDTO = new DTO.FactoryOrderDetail();

            //Child data
            data.Data.QCReportDetails   = new List <DTO.QCReportDetail>();
            data.Data.QCReportDefects   = new List <DTO.QCReportDefect>();
            data.Data.QCReportImages    = new List <DTO.QCReportImage>();
            data.Data.QCReportDocuments = new List <DTO.QCReportDocument>();

            //Support
            data.AvailableReports      = new List <DTO.QCReport>();
            data.QCReportImageTitles   = new List <DTO.QCReportImageTitleDTO>();
            data.InspectionTypes       = new List <Support.DTO.InspectionType>();
            data.PackagingTypes        = new List <Support.DTO.PackagingType>();
            data.QCReportDocumentTypes = new List <DTO.QCReportDocumentType>(); // qc report document type | tran.cuong | 20180228

            //try to get data
            try
            {
                using (QCReportMngEntities context = CreateContext())
                {
                    if (id <= 0)
                    {
                        //Get Factory Order Detail Info
                        var factoryOrderDetail = context.QCReportMng_FactoryOrderDetail_View.FirstOrDefault(o => o.FactoryOrderDetailID == factoryOrderDetailID);
                        factoryOrderDetailDTO          = converter.DB2DTO_FactoryOrderDetail(factoryOrderDetail);
                        data.Data.FactoryOrderDetailID = factoryOrderDetailDTO.FactoryOrderDetailID;
                        data.Data.ProformaInvoiceNo    = factoryOrderDetailDTO.ProformaInvoiceNo;
                        data.Data.OrderQnt             = factoryOrderDetailDTO.OrderQnt;
                        data.Data.Season      = factoryOrderDetailDTO.Season;
                        data.Data.ArticleCode = factoryOrderDetailDTO.ArticleCode;
                        data.Data.Description = factoryOrderDetailDTO.Description;
                        data.Data.ClientUD    = factoryOrderDetailDTO.ClientUD;
                        data.Data.FactoryUD   = factoryOrderDetailDTO.FactoryUD;

                        //Get Available QC Report Info
                        var availableReport = context.QCReportMng_QCReport_View.Where(o => o.FactoryOrderDetailID == factoryOrderDetailID).ToList();
                        data.AvailableReports = converter.DB2DTO_ListQCReport(availableReport);
                    }
                    else
                    {
                        var report = context.QCReportMng_QCReport_View.FirstOrDefault(o => o.QCReportID == id);
                        if (report == null)
                        {
                            throw new Exception("Can not found the report to edit");
                        }
                        //Get Available QC Report Info
                        var availableReport = context.QCReportMng_QCReport_View.Where(o => o.FactoryOrderDetailID == report.FactoryOrderDetailID).ToList();
                        data.AvailableReports = converter.DB2DTO_ListQCReport(availableReport);
                        data.Data             = converter.DB2DTO_QCReport(report);
                    }
                    //Get Available QC Report Info
                    data.QCReportImageTitles = converter.DB2DTO_QCReportImageTitles(context.QCReportImageTitle.ToList());
                    data.InspectionTypes     = supportFactory.GetInspectionType().ToList();
                    data.PackagingTypes      = supportFactory.GetPackagingType().ToList();

                    // qc report document type | tran.cuong | 20180228
                    data.QCReportDocumentTypes = converter.DB2DTO_QCReportDocumentType(context.QCReportMng_QCReportDocumentType_View.ToList());
                }
            }
            catch (Exception ex)
            {
                notification.Type    = Library.DTO.NotificationType.Error;
                notification.Message = ex.Message;
            }

            return(data);
        }