コード例 #1
0
 private bool IsTransDetailValid(TransDetail transDetail)
 {
     if (transDetail == null)
     {
         return(false);
     }
     if (transDetail.Xp_Css_Left == null || transDetail.Xp_Css_Top == null || transDetail.Xp_Css_Width == null)
     {
         return(false);
     }
     return(true);
 }
コード例 #2
0
        private TransDetail BuildTransDetail(string fieldName, string cssProperties)
        {
            TransDetail transDetail = new TransDetail {
                FieldName = fieldName
            };
            var parts = cssProperties.Split(';');

            foreach (var part in parts)
            {
                int number = 0;
                if (part.Contains("width"))
                {
                    if (int.TryParse(part.Replace("width:", "").Replace("px", "").Trim(), out number))
                    {
                        transDetail.Xp_Css_Width = number;
                        number = 0;
                    }
                }
                else if (part.Contains("left"))
                {
                    if (int.TryParse(part.Replace("left:", "").Replace("px", "").Trim(), out number))
                    {
                        transDetail.Xp_Css_Left = number;
                        number = 0;
                    }
                }
                else if (part.Contains("top"))
                {
                    if (int.TryParse(part.Replace("top:", "").Replace("px", "").Trim(), out number))
                    {
                        transDetail.Xp_Css_Top = number;
                        number = 0;
                    }
                }
            }
            return(transDetail);
        }
コード例 #3
0
 public static string UpdateTransDetRecord(TransDetail transDetail)
 {
     return($"\nUPDATE TRANS_DET\nSET XP_CSS_LEFT = '{transDetail.Xp_Css_Left}', XP_CSS_TOP = '{transDetail.Xp_Css_Top}', XP_CSS_WIDTH = '{transDetail.Xp_Css_Width}'\nWHERE FIELDNAME = '{transDetail.FieldName}' AND [TYPE] = '{transDetail.Type}' AND [NAME] = '{transDetail.Name}'");
 }
コード例 #4
0
 public static string SqlIfElseUpdateTransDet(TransDetail transDetail)
 {
     return($"\t{SqlQueryBuilder.IfElse(SelectCountForTransDetRecord(transDetail), UpdateTransDetRecord(transDetail), PrintTransDetailUpdateError(transDetail))}");
 }
コード例 #5
0
 public static string PrintTransDetailUpdateError(TransDetail transDetail)
 {
     return(SqlQueryBuilder.Print($"\tWARNING: Record was NOT UPDATED. --- FIELDNAME: {transDetail.FieldName} --- NAME: {transDetail.Name} --- TYPE: {transDetail.Type} "));
 }
コード例 #6
0
 public static string SelectCountForTransDetRecord(TransDetail transDetail)
 {
     return($"(SELECT COUNT(*) FROM TRANS_DET WHERE FIELDNAME = '{transDetail.FieldName}' AND [TYPE] = '{transDetail.Type}' AND [NAME] = '{transDetail.Name}') = 1");
 }
コード例 #7
0
        private TransDetailParseResponse ParseTransDetailsFromFile(string sourceFilePath)
        {
            int    jsonRecordId         = 0;
            int    errorRecordId        = 0;
            int    potentialRecordCount = 0;
            var    data                     = File.ReadAllLines(sourceFilePath);
            string transDetailName          = GetTransDetailName(sourceFilePath);
            List <TransDetailError>  errors = new List <TransDetailError>();
            TransDetailParseResponse transDetailParseResponse = new TransDetailParseResponse {
                ParsedTransDetails = new List <TransDetail>()
            };

            for (var i = 0; i < data.Length; i++)
            {
                TransDetail      transDetail      = null;
                TransDetailError transDetailError = null;
                int fileLineNumber = i + 1;

                if (data[i]?.Trim().StartsWith("#txt") ?? false)
                {
                    potentialRecordCount++;
                    string fieldName = data[i].Replace("#txt", "")?.Trim();
                    transDetailError           = new TransDetailError();
                    transDetailError.FieldName = fieldName;

                    if (data[i]?.Trim().EndsWith(",") ?? false)
                    {
                        transDetailError.IsLineEndingWithComma = true;
                    }

                    if ((data[i + 1]?.Trim().StartsWith("{") ?? false) && fieldName != null)
                    {
                        if (data[i + 1].Contains("height: 20px"))
                        {
                            string cssProperties = data[i + 1].Replace("{", "").Replace("}", "").ToLower();
                            transDetail = BuildTransDetail(fieldName, cssProperties);
                        }
                        else
                        {
                            transDetailError.IsErrorDueToHeight20Px = true;
                        }
                    }
                    else
                    {
                        transDetailError.IsErrorDueToBrace = true;
                    }
                }

                if (transDetail != null)
                {
                    transDetail.FileLineNumber = fileLineNumber;
                    transDetail.Name           = transDetailName;
                }

                if (IsTransDetailValid(transDetail))
                {
                    transDetail.JsonRecordId = ++jsonRecordId;
                    transDetailParseResponse.ParsedTransDetails.Add(transDetail);
                }
                else if (transDetailError != null)
                {
                    transDetailError.FileLineNumber     = fileLineNumber;
                    transDetailError.IsXpCssLeftNull    = transDetail?.Xp_Css_Left == null;
                    transDetailError.IsXpCssTopNull     = transDetail?.Xp_Css_Top == null;
                    transDetailError.IsXpCssWidthNull   = transDetail?.Xp_Css_Width == null;
                    transDetailError.ErrorRecordId      = ++errorRecordId;
                    transDetailError.InvalidTransDetail = transDetail;
                    errors.Add(transDetailError);
                }
            }

            transDetailParseResponse.ParseResult = BuildParseResult(potentialRecordCount, transDetailParseResponse.ParsedTransDetails, errors);

            return(transDetailParseResponse);
        }