/// <summary> /// ParserLogic /// </summary> /// <param name="originalLogic">originalLogic</param> /// <param name="workType">workType</param> /// <param name="companyId">companyId</param> /// <returns></returns> public string ParserLogic(string originalLogic, string workType, int companyId) { string newLogic = ""; if (workType == "Junction Lining") { if (originalLogic.Length > 0) { newLogic = "(AASS.Deleted = 0) AND (LW.Deleted = 0) AND (AASL.Deleted = 0) AND (AASS.COMPANY_ID = {0}) AND (LW.ProjectID = {1}) AND (LW.WorkType = '{2}') AND "; } else { newLogic = "(AASS.Deleted = 0) AND (LW.Deleted = 0) AND (AASL.Deleted = 0) AND (AASS.COMPANY_ID = {0}) AND (LW.ProjectID = {1}) AND (LW.WorkType = '{2}')"; } } else { if (workType == "Manhole Rehabilitation") { if (originalLogic.Length > 0) { newLogic = "(AASMHP.ProjectID = {1}) AND "; } else { newLogic = "(AASMHP.ProjectID = {1}) "; } } else { if (originalLogic.Length > 0) { newLogic = "(AASS.Deleted = 0) AND (LW.Deleted = 0) AND (AASS.COMPANY_ID = {0}) AND (LW.ProjectID = {1}) AND (LW.WorkType = '{2}') AND "; } else { newLogic = "(AASS.Deleted = 0) AND (LW.Deleted = 0) AND (AASS.COMPANY_ID = {0}) AND (LW.ProjectID = {1}) AND (LW.WorkType = '{2}')"; } } } WorkViewTDS.WorkViewConditionNewDataTable tableSorted = (WorkViewTDS.WorkViewConditionNewDataTable)Data.Tables["WorkViewConditionNew"]; foreach (WorkViewTDS.WorkViewConditionNewRow rowNew in tableSorted.Select("", "ConditionNumber DESC")) { if (!rowNew.Deleted) { string originalCondition = "Condition" + rowNew.ConditionNumber; WorkTypeViewCondition workTypeViewCondition = new WorkTypeViewCondition(); workTypeViewCondition.LoadByWorkTypeConditionId(workType, rowNew.ConditionID, companyId); WorkTypeViewConditionGateway workTypeViewConditionGateway = new WorkTypeViewConditionGateway(workTypeViewCondition.Data); string tableName = workTypeViewConditionGateway.GetTable_(workType, companyId, rowNew.ConditionID); if (tableName == "AM_ASSET_SEWER_SECTION") tableName = "AASS"; if (tableName == "AM_ASSET_SEWER_LATERAL") tableName = "AASL"; if (tableName == "LFS_ASSET_SEWER_SECTION") tableName = "LASS"; if (tableName == "LFS_ASSET_SEWER_LATERAL_CLIENT") tableName = "LASLC"; if (tableName == "LFS_WORK") tableName = "LW"; if (workType == "Rehab Assessment") { if (tableName == "LFS_WORK_FULLLENGTHLINING") tableName = "LWFLL"; } else { if (tableName == "LFS_WORK_FULLLENGTHLINING") tableName = "LWF"; } if (tableName == "LFS_WORK_FULLLENGTHLINING_M1") tableName = "LWFM1"; if (tableName == "LFS_WORK_FULLLENGTHLINING_M2") tableName = "LWFLLM2"; if (tableName == "LFS_WORK_FULLLENGTHLINING_P1") tableName = "LWFLP1"; if (tableName == "LFS_WORK_JUNCTIONLINING_SECTION") tableName = "LWJLS"; if (tableName == "LFS_WORK_JUNCTIONLINING_LATERAL") tableName = "LWJLL"; if (tableName == "LFS_WORK_REHABASSESSMENT") tableName = "LWR"; if (tableName == "LFS_WORK_POINT_REPAIRS") tableName = "LWPR"; if (tableName == "LFS_WORK_POINT_REPAIRS_REPAIR") tableName = "LWPRR"; if (tableName == "LFS_MIGRATED_SECTIONS") tableName = "LMS"; if (tableName == "LFS_WORK_MANHOLE_REHABILITATION") tableName = "LWMR"; if (tableName == "AM_ASSET_SEWER_MH") tableName = "AASMH"; string column = workTypeViewConditionGateway.GetColumn_(workType, companyId, rowNew.ConditionID); string type = workTypeViewConditionGateway.GetType(workType, companyId, rowNew.ConditionID); string sign = rowNew.Sign; string conditionValue = rowNew.Value_; string newCondition = ""; if (column == "USMH") { column = "MHID"; tableName = "AASUSMH"; } if (column == "DSMH") { column = "MHID"; tableName = "AASDSMH"; } if (column == "MN#") { column = "Address"; } if (column == "USMHAddress") { column = "Address"; tableName = "AASUSMH"; } if (column == "DSMHAddress") { column = "Address"; tableName = "AASDSMH"; } // Search if (conditionValue == "%") { if (type == "Boolean") { newCondition = newCondition + " ((" + tableName + "." + column + " = 1) OR (" + tableName + "." + column + " = 0))"; } else { if ((workType == "Junction Lining") && ((column == "FlowOrderID") || (column == "LateralID"))) { if (column == "FlowOrderID") { newCondition = newCondition + " (((" + tableName + "." + column + " LIKE '%')"; newCondition = newCondition + " OR (" + tableName + "." + column + " IS NULL))"; newCondition = newCondition + " OR ((AASL.LateralID LIKE '%')"; newCondition = newCondition + " OR (AASL.LateralID IS NULL)))"; } else { if (column == "LateralID") { newCondition = newCondition + " ((AASS.SectionID LIKE '%')"; newCondition = newCondition + " OR (AASS.SectionID IS NULL))"; } } } else { if (type == "Date") { if (sign == "=") { newCondition = newCondition + " ((CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) IS NOT NULL)"; newCondition = newCondition + " OR (CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) IS NULL))"; } else { if (sign == "<>") { newCondition = newCondition + " (CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) IS NULL)"; } else { newCondition = newCondition + " ((CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) IS NOT NULL)"; newCondition = newCondition + " OR (CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) IS NULL))"; } } } else { if (column != "CXIsRemoved") { if (sign == "=") { newCondition = newCondition + " ((" + tableName + "." + column + " LIKE '%')"; newCondition = newCondition + " OR (" + tableName + "." + column + " IS NULL))"; } if (sign == "<>") { newCondition = newCondition + " (" + tableName + "." + column + " IS NULL)"; } else { if (sign != "=") { newCondition = newCondition + " ((" + tableName + "." + column + " LIKE '%')"; newCondition = newCondition + " OR (" + tableName + "." + column + " IS NULL))"; } } } } } } } else { if (conditionValue == "") { if (sign == "<>") { if ((workType == "Junction Lining") && ((column == "FlowOrderID") || (column == "LateralID"))) { if (column == "FlowOrderID") { newCondition = newCondition + " ((" + tableName + "." + column + " IS NOT NULL)"; newCondition = newCondition + " OR (AASL.LateralID IS NOT NULL))"; } else { if (column == "LateralID") { newCondition = newCondition + " (AASS.SectionID IS NOT NULL)"; } } } else { if (column != "CXIsRemoved") { newCondition = newCondition + tableName + "." + column + " IS NOT NULL "; } else { newCondition = newCondition + " (AASS.AssetID IN " + " (SELECT AASS1.AssetID" + " FROM AM_ASSET_SEWER_SECTION AASS1 INNER JOIN " + " LFS_WORK LW1 ON (AASS1.AssetID = LW1.AssetID) AND (LW1.WorkType = 'Full Length Lining') AND (LW1.ProjectID = LW.ProjectID) INNER JOIN " + " LFS_WORK_FULLLENGTHLINING_P1 LWFLP1 ON LW1.WorkID = LWFLP1.WorkID INNER JOIN LFS_WORK LW2 ON (AASS1.AssetID = LW2.AssetID) AND (LW2.WorkType = 'Rehab Assessment') AND (LW2.ProjectID = LW1.ProjectID) " + " WHERE ( (LWFLP1.CXIsRemoved IS NOT NULL) AND (AASS1.Deleted = 0) AND (LW1.Deleted = 0) AND (LWFLP1.Deleted = 0)) " + " ) )"; } } } else { if ((workType == "Junction Lining") && ((column == "FlowOrderID") || (column == "LateralID"))) { if (column == "FlowOrderID") { newCondition = newCondition + " ((" + tableName + "." + column + " IS NULL)"; newCondition = newCondition + " OR (AASL.LateralID IS NULL))"; } if (column == "LateralID") { newCondition = newCondition + " (AASS.SectionID IS NULL)"; } } else { if (column != "CXIsRemoved") { newCondition = newCondition + tableName + "." + column + " IS NULL "; } else { newCondition = newCondition + " (AASS.AssetID IN " + " (SELECT AASS1.AssetID" + " FROM AM_ASSET_SEWER_SECTION AASS1 INNER JOIN " + " LFS_WORK LW1 ON (AASS1.AssetID = LW1.AssetID) AND (LW1.WorkType = 'Full Length Lining') AND (LW1.ProjectID = LW.ProjectID) INNER JOIN " + " LFS_WORK_FULLLENGTHLINING_P1 LWFLP1 ON LW1.WorkID = LWFLP1.WorkID INNER JOIN LFS_WORK LW2 ON (AASS1.AssetID = LW2.AssetID) AND (LW2.WorkType = 'Rehab Assessment') AND (LW2.ProjectID = LW1.ProjectID) " + " WHERE ( (LWFLP1.CXIsRemoved IS NULL) AND (AASS1.Deleted = 0) AND (LW1.Deleted = 0) AND (LWFLP1.Deleted = 0)) " + " ) )"; } } } } else { conditionValue = conditionValue.Replace("'", "''"); if ((type == "Int") || (type == "Decimal") || (type == "Boolean")) { if (conditionValue == "Yes") conditionValue = "1"; if (conditionValue == "No") conditionValue = "0"; if (column != "CXIsRemoved") { newCondition = newCondition + tableName + "." + column + sign + conditionValue; } else { newCondition = newCondition + " (AASS.AssetID IN " + " (SELECT AASS1.AssetID" + " FROM AM_ASSET_SEWER_SECTION AASS1 INNER JOIN " + " LFS_WORK LW1 ON (AASS1.AssetID = LW1.AssetID) AND (LW1.WorkType = 'Full Length Lining') AND (LW1.ProjectID = LW.ProjectID) INNER JOIN " + " LFS_WORK_FULLLENGTHLINING_P1 LWFLP1 ON LW1.WorkID = LWFLP1.WorkID INNER JOIN LFS_WORK LW2 ON (AASS1.AssetID = LW2.AssetID) AND (LW2.WorkType = 'Rehab Assessment') AND (LW2.ProjectID = LW1.ProjectID) " + " WHERE ( (LWFLP1.CXIsRemoved " + sign + conditionValue + ") AND (AASS1.Deleted = 0) AND (LW1.Deleted = 0) AND (LWFLP1.Deleted = 0)) " + " ) )"; } } else { if (sign == "=") { if ((workType == "Junction Lining") && ((column == "FlowOrderID") || (column == "LateralID"))) { if (column == "FlowOrderID") { newCondition = newCondition + " ((" + tableName + "." + column + " LIKE '%" + conditionValue + "%')"; newCondition = newCondition + " OR (AASL.LateralID LIKE '%" + conditionValue + "%'))"; } else { if (column == "LateralID") { newCondition = newCondition + "(AASS.FlowOrderID + '-JL-' + AASL.LateralID LIKE '%" + conditionValue + "%')"; } } } else { if (type != "Date") { if (conditionValue.Contains("\"")) { if (column != "Gasket") { if (column != "Size_" && column != "VideoLengthToPropertyLine" && column != "DepthOfLocated") { conditionValue = conditionValue.Replace("\"", ""); } } newCondition = newCondition + " (" + tableName + "." + column + " = '" + conditionValue + "')"; } else { if (column == "Issue" && conditionValue == "(All)") { newCondition = newCondition + " ((LWJLL.Issue LIKE '%')"; newCondition = newCondition + " OR (LWJLL.Issue IS NULL))"; } else { newCondition = newCondition + " (" + tableName + "." + column + " LIKE '%" + conditionValue + "%')"; } } } else { // Date if (conditionValue.Length > 7) { newCondition = newCondition + " CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) " + sign + "'" + conditionValue + "'"; } else { newCondition = newCondition + " CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) LIKE '%" + conditionValue + "%'"; } } } } else { if ((workType == "Junction Lining") && (column == "FlowOrderID")) { newCondition = newCondition + " ((" + tableName + "." + column + sign + "'" + conditionValue + "')"; newCondition = newCondition + " OR (AASL.LateralID " + sign + "'" + conditionValue + "'))"; } else { if ((workType == "Junction Lining") && (column == "LateralID")) { newCondition = newCondition + " ((AASS.FlowOrderID + '-JL-' + AASL.LateralID NOT LIKE '%" + conditionValue + "%')"; newCondition = newCondition + "OR (AASS.FlowOrderID + '-JL-' + AASL.LateralID IS NULL))"; } else { if (column == "Comments" || column == "History") { newCondition = newCondition + tableName + "." + column + " NOT LIKE '%" + conditionValue + "%'"; } else { if (type != "Date") { newCondition = newCondition + tableName + "." + column + sign + "'" + conditionValue + "'"; } else { // Date if (conditionValue.Length > 7) { if (sign == "<>") { newCondition = newCondition + " ((CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) " + sign + "'" + conditionValue + "')"; newCondition = newCondition + " OR (CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) IS NULL))"; } else { newCondition = newCondition + " CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) " + sign + "'" + conditionValue + "'"; } } else { if (sign == "<>") { newCondition = newCondition + " ((CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) NOT LIKE '%" + conditionValue + "%')"; newCondition = newCondition + " OR (CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime) IS NULL))"; } else { if (sign == ">" || sign == "<=") { newCondition = newCondition + " CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime)" + sign + " '12/31/" + conditionValue + "'"; } else { newCondition = newCondition + " CAST(CONVERT(varchar," + tableName + "." + column + ", 101) AS smalldatetime)" + sign + " '" + conditionValue + "'"; } } } } } } } } } } } originalLogic = originalLogic.Replace(originalCondition, newCondition); } } if (originalLogic.Length > 0) { newLogic = newLogic + originalLogic; } return newLogic; }
/// <summary> /// GetConditionsForSummary /// </summary> /// <param name="workType"></param> /// <param name="companyId"></param> /// <returns></returns> public string GetConditionsForSummary(string workType, int companyId) { string conditions = ""; foreach (WorkViewTDS.WorkViewConditionNewRow row in (WorkViewTDS.WorkViewConditionNewDataTable)Data.Tables["WorkViewConditionNew"]) { if (!row.Deleted) { WorkTypeViewCondition workTypeViewCondition = new WorkTypeViewCondition(); workTypeViewCondition.LoadByWorkTypeConditionId(workType, row.ConditionID, companyId); WorkTypeViewConditionGateway workTypeViewConditionGateway = new WorkTypeViewConditionGateway(workTypeViewCondition.Data); if (row.Value_ == "") { conditions = conditions + "Condition" + row.ConditionNumber + ": " + workTypeViewConditionGateway.GetName(workType, companyId, row.ConditionID) + " " + row.Sign + " (empty), "; } else { conditions = conditions + "Condition" + row.ConditionNumber + ": " + workTypeViewConditionGateway.GetName(workType, companyId, row.ConditionID) + " " + row.Sign + " " + row.Value_ + ", "; } } } if (conditions.Length > 2) { conditions = conditions.Substring(0, conditions.Length - 2); } return conditions; }