Example #1
0
        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);
        }
Example #2
0
        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();
                    }
                }
            }
        }
Example #3
0
        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);
        }