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); }