public string GetFullScript(Guid CompositionID) { string code = ""; ScriptComposition sc = GetCompositionById(CompositionID); code += sc.GetHalfScript(); code += "\r\n" + GetFullImgParams(CompositionID); if (sc.ScriptFunction != null) { code += sc.ScriptFunction.Code; } return(code); }
public void MakeDB() { StreamReader sr; string folder = "scripts"; string code = ""; string[] codeParts; string[] paramParts; string[] elements; ScriptImport si = new ScriptImport { Code = "" }; ScriptFileParam sfp; ScriptImgParam sip; ScriptImgParamItem sipi; ScriptFunction sf; ScriptComposition sc; if (Directory.Exists(folder)) { Scripts = Directory.GetFiles(folder, "*-*"); for (int i = 0; i < Scripts.Length; i++) { elements = Path.GetFileNameWithoutExtension(Scripts[i]).Split('-'); sr = new StreamReader(Scripts[i]); code = sr.ReadToEnd(); codeParts = code.Split(new string[] { "\r\n\r\n" }, StringSplitOptions.None); if (codeParts.Length >= 3 && !(pyDB.ScriptExists(elements[0], elements[1]))) { si = pyDB.GetImportByMD5(GetMd5(codeParts[0])); //if (codeParts[0] != si.Code) if (si == null) { si = new ScriptImport { Code = codeParts[0], MD5 = GetMd5(codeParts[0]) }; pyDB.ScriptImports.Add(si); } sfp = new ScriptFileParam { Code = codeParts[1] }; pyDB.ScriptFileParams.Add(sfp); //sip = new ScriptImgParam { Code = codeParts[2] }; //pyDB.ScriptImgParams.Add(sip); if (codeParts.Length >= 4) { code = ""; for (int j = 3; j < codeParts.Length; j++) { code += codeParts[j]; } sf = new ScriptFunction { Code = code }; pyDB.ScriptFunctions.Add(sf); pyDB.SaveChanges(); sc = new ScriptComposition { Extension = elements[0], Description = elements[1], ScriptImport = pyDB.ScriptImports.First(p => p.ID == si.ID), ScriptFileParam = pyDB.ScriptFileParams.First(p => p.ID == sfp.ID), ScriptFunction = pyDB.ScriptFunctions.First(p => p.ID == sf.ID) }; } else { pyDB.SaveChanges(); sc = new ScriptComposition { Extension = elements[0], Description = elements[1], ScriptImport = pyDB.ScriptImports.First(p => p.ID == si.ID), ScriptFileParam = pyDB.ScriptFileParams.First(p => p.ID == sfp.ID), ScriptFunction = null }; } pyDB.ScriptCompositions.Add(sc); paramParts = codeParts[2].Split(new string[] { "\r\n" }, StringSplitOptions.None); //List<ScriptImgParamItem> test = new List<ScriptImgParamItem>(); for (int j = 0; j < paramParts.Length; j++) { code = GetMd5(paramParts[j]); if (!pyDB.ImgParamItemExists(code)) { sipi = new ScriptImgParamItem { ID = code, Code = paramParts[j] }; pyDB.ScriptImgParamItems.Add(sipi); //test.Add(sipi); } sip = new ScriptImgParam { ScriptCompositionID = sc.ID, ScriptImgParamItemID = code, Order = j }; pyDB.ScriptImgParams.Add(sip); //sip = new ScriptImgParam { Code = codeParts[2] }; //pyDB.ScriptImgParams.Add(sip); } pyDB.SaveChanges(); } } } }
public string ScriptValidation() { string res = ""; int errAll = 0; int errN = 5; bool gotW = false; bool gotH = false; bool gotBPP = false; bool gotWO = false; bool gotPF = false; ScriptComposition[] c = ScriptCompositions.ToArray(); ScriptImgParam[] ip; for (int i = 0; i < c.Length; i++) { errN = 5; gotW = false; gotH = false; gotBPP = false; gotWO = false; gotPF = false; ScriptComposition sc = c[i]; ip = ScriptImgParams.Include("ScriptImgParamItem").Where(x => x.ScriptCompositionID == sc.ID).ToArray(); for (int j = 0; j < ip.Length; j++) { if (ip[j].ScriptImgParamItem.Code.Contains("IMG_WIDTH") && !gotW) { if (ip[j].ScriptImgParamItem.Code[4] == 'W') { gotW = true; errN--; } } if (ip[j].ScriptImgParamItem.Code.Contains("IMG_HEIGHT") && !gotH) { if (ip[j].ScriptImgParamItem.Code[4] == 'H') { gotH = true; errN--; } } if (ip[j].ScriptImgParamItem.Code.Contains("IMG_BPP") && !gotBPP) { if (ip[j].ScriptImgParamItem.Code[4] == 'B') { gotBPP = true; errN--; } } if (ip[j].ScriptImgParamItem.Code.Contains("IMG_PIXEL_FORMAT") && !gotPF) { if (ip[j].ScriptImgParamItem.Code[4] == 'P') { gotPF = true; errN--; } } if (ip[j].ScriptImgParamItem.Code.Contains("WRITE_ORDER = List[System.String]()") && !gotWO) { gotWO = true; errN--; } } if (gotW && gotH && gotBPP && gotPF && gotWO) { res += " + Скрипт формата " + c[i].Extension + " прошёл проверку.\n"; } else { res += " - Скрипт формата " + c[i].Extension + " не прошёл проверку: найдено ошибок - " + errN + ".\n"; if (!gotW) { res += "\tОтсутствует параметр IMG_WIDTH\n"; } if (!gotH) { res += "\tОтсутствует параметр IMG_HEIGHT\n"; } if (!gotBPP) { res += "\tОтсутствует параметр IMG_BPP\n"; } if (!gotPF) { res += "\tОтсутствует параметр IMG_PIXEL_FORMAT\n"; } if (!gotWO) { res += "\tОтсутствует параметр WRITE_ORDER\n"; } errAll += errN; } } res += "Проверка модулей завершена: найдено ошибок - " + errAll + "."; return(res); }