public DataValidatorReturn Create(int workOrderID, int itemNumber, int activityID) { WorkOrderHeader workOrderHeader = null; DVR = MethodHelper.IsGreaterThanZero("Work Order Number", workOrderID); if (DVR.IsValid == false) { return(DVR); } DVR = MethodHelper.IsGreaterThanZero("Item Number", itemNumber); if (DVR.IsValid == false) { return(DVR); } DVR = MethodHelper.IsGreaterThanZero("Activity ID", activityID); if (DVR.IsValid == false) { return(DVR); } if (Find(workOrderID, itemNumber, activityID).ItemFound) { DVR.IsValid = false; DVR.ReturnText = "Work Order Detail # " + workOrderID.ToString() + " already exists."; DVR.ItemFound = true; return(DVR); } BO_WorkOrderHeader bo_WorkOrderHeader = new BO_WorkOrderHeader(); DVR = bo_WorkOrderHeader.Find(workOrderID); if (DVR.ItemFound == false) { DVR.IsValid = false; DVR.ReturnText = "Work Order Header # " + workOrderID.ToString() + " doesn't exist."; DVR.ItemFound = true; return(DVR); } else { workOrderHeader = DVR.ReturnType as WorkOrderHeader; } using (var context = new WorkOrderLogEntities()) { // Find the work Order Header here. WorkOrderDetail workOrderDetail = new WorkOrderDetail() { WOHdrID = workOrderID, ItemNumber = itemNumber, ActivityID = activityID }; try { int activityTypeID = 2; context.WorkOrderDetails.Add(workOrderDetail); context.SaveChanges(); //Once we have created a work order detail need to look for the //Activity using the activity Id, and then get the activityTypeId //Go to the sourcescripthdr table and get the sourcescripthdrid //and use the info from the sourcescriptdtl table to create //WorkOrderDtlScript records also need to create these actual files //by retrieving the source items and pasting to the new files. BO_SourceScriptHdr bo_SourceScriptHdr = new BO_SourceScriptHdr(); DataValidatorReturn dataValidatorReturn = bo_SourceScriptHdr.Find(activityTypeID); if (dataValidatorReturn.ItemFound) { var sourceScriptHdr = dataValidatorReturn.ReturnType as SourceScriptHdr; var sourceScriptDtls = sourceScriptHdr.SourceScriptDtls; if (sourceScriptDtls.Any()) { string sourceFileFullPath = string.Empty; string sourceFile = string.Empty; string sourceClientCode = string.Empty; string destFile = string.Empty; string destClientCode = string.Empty; string destFileFullPath = string.Empty; string destFolder = string.Empty; string sourceFileContents = string.Empty; string destFileContents = string.Empty; foreach (SourceScriptDtl sourceScriptDtl in sourceScriptDtls) { // Set the source File. sourceFile = sourceScriptDtl.SourceFile; sourceClientCode = sourceScriptDtl.ClientCode; sourceFileFullPath = Path.Combine(sourceScriptDtl.Client.ClientFolder, sourceScriptDtl.SourceFile); destClientCode = workOrderHeader.ClientCode; destFile = sourceFile.Replace(sourceClientCode, destClientCode); destFolder = workOrderHeader.Client.ClientFolder; destFileFullPath = Path.Combine(destFolder, destFile); // Logic change instead of copying, replace text required sourceFileContents = File.ReadAllText(sourceFileFullPath); destFileContents = sourceFileContents.Replace(sourceClientCode, destClientCode); destFileContents = destFileContents.Replace("0", workOrderHeader.WOHdrID.ToString()); File.WriteAllText(destFileFullPath, destFileContents); //Create WorkOrderDetailScripts foreach script created. BO_WorkOrderDtlScripts bo_WorkOrderDtlScripts = new BO_WorkOrderDtlScripts(); bo_WorkOrderDtlScripts.Create(workOrderDetail.WODtlId, destFile); } context.SaveChanges(); } } DVR.IsValid = true; DVR.ReturnText = "Work Order Detail #" + workOrderID.ToString() + " Added to the Database."; DVR.ReturnType = workOrderDetail; } catch (Exception exception) { DVR.IsValid = false; DVR.ReturnText = exception.Message; } } return(DVR); }
public DataValidatorReturn Find(int workOrderID, int itemNumber, int activityID) { DVR = MethodHelper.IsGreaterThanZero("Work Order Number", workOrderID); if (DVR.IsValid == false) { return(DVR); } DVR = MethodHelper.IsGreaterThanZero("Item Number", itemNumber); if (DVR.IsValid == false) { return(DVR); } DVR = MethodHelper.IsGreaterThanZero("Activity ID", activityID); if (DVR.IsValid == false) { return(DVR); } BO_WorkOrderHeader bO_WorkOrderHeader = new BO_WorkOrderHeader(); DVR = bO_WorkOrderHeader.Find(workOrderID); if (DVR.ItemFound == false) { return(DVR); } BO_Activity bO_Activity = new BO_Activity(); DVR = bO_Activity.Find(activityID); if (DVR.ItemFound == false) { return(DVR); } try { List <WorkOrderDetail> workOrderDetails = new List <WorkOrderDetail>(); using (var context = new WorkOrderLogEntities()) { workOrderDetails = context.WorkOrderDetails.Where(x => x.WOHdrID == workOrderID && x.ActivityID == activityID && x.ItemNumber == itemNumber).ToList(); } DVR.ItemFound = workOrderDetails.Any(); DVR.IsValid = true; DVR.ReturnType = workOrderDetails.FirstOrDefault(); if (DVR.ItemFound) { DVR.ReturnText = workOrderDetails.Count().ToString() + " Work Order Details Found."; DVR.ReturnType = workOrderDetails.FirstOrDefault(); } else { DVR.ReturnText = "Work Order Detail Not Found."; } } catch (Exception exception) { DVR.IsValid = false; DVR.ReturnText = exception.Message; } return(DVR); }