Ejemplo n.º 1
0
        public ActionResult LoginPost(UsuarioViewModel loginModel)
        {
            ILoginBusiness login = DependencyFactory.Resolve<ILoginBusiness>();
            try
            {
                var user = login.LoginUser(loginModel.Mail, loginModel.Password);
                var keyToken = StringCompressor.CompressString(user.SerializarToJson());
                FormsAuthentication.SetAuthCookie(keyToken, true);
                Response.StatusCode = 200;
                return new JsonResult { Data = user, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
            }
            catch (ExceptionBusiness ex)
            {

                Response.StatusCode = 404;
                return new JsonResult { Data = ex.Message, JsonRequestBehavior = JsonRequestBehavior.AllowGet };

            }
            catch (Exception)
            {
                Response.StatusCode = 500;
                return new JsonResult { Data = "Error del servidor", JsonRequestBehavior = JsonRequestBehavior.AllowGet };
            }


        }
    public void Save()
    {
        WordSet wordSet = GameController.Instance.GetWordSet();

        var puzzle = new UserPuzzle
        {
            Clue    = wordSet.Clue,
            Content = StringCompressor.CompressString(JsonUtility.ToJson(wordSet))
        };

        LocalDBController.Instance.UserPuzzles.AddPuzzle(puzzle);
    }
Ejemplo n.º 3
0
        public void CompressDecompressTest()
        {
            var text = " asd  fdghfg d werwse uyiy uyui bn cvgbh dfgd fg";

            var bytes  = Encoding.UTF8.GetBytes(text);
            var base64 = Convert.ToBase64String(bytes);

            var textLength   = text.Length;
            var base64Length = base64.Length;

            var compressedText   = StringCompressor.CompressString(text);
            var decompressedText = StringCompressor.DecompressString(compressedText);

            Assert.AreEqual(text, decompressedText);
        }
Ejemplo n.º 4
0
        public void SampleTest1()
        {
            //Arrange
            string s1 = "abcdefghijklmnop";

            //Act
            string compressed   = StringCompressor.CompressString(s1);
            string uncompressed = StringCompressor.DecompressString(compressed);

            //Artifacts
            mTestHelper.CreateTestArtifact("Stringcompression", s1 + Environment.NewLine + compressed);

            //Assert
            Assert.AreEqual(uncompressed, s1, "uncompressed=s1");
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> SearchInMain(MainModelView mainModelView)
        {
            if (mainModelView.Search != null)
            {
                long id;
                if (long.TryParse(mainModelView.Search, out id))

                {
                    var q = await appDbContext.MainTable.Where(i => i.Id == id).ToListAsync();

                    var f = await appDbContext.MainTable.ToListAsync();

                    var           filt           = f.Select(i => i._IPinfo.CompanyName).Distinct().ToList();
                    MainModelView mainModelView1 = new MainModelView()
                    {
                        MainTables = q
                    };
                    TempData["MainData"] = JsonConvert.SerializeObject(mainModelView1);
                    return(RedirectToAction("MainTable", "Home"));
                }
                else if (mainModelView.Search.Length != 0)
                {
                    //var tmp = await appDbContext.MainTable.Where(i => i.FilesInfo.Path.Contains(mainModelView.Search)).ToListAsync();


                    var cmp = await appDbContext.MainTable.Where(i => i._IPinfo.CompanyName.Contains(mainModelView.Search)).ToListAsync();

                    //tmp.AddRange(cmp);
                    //   var f = await appDbContext.MainTable.ToListAsync();
                    //  var filt = f.Select(i => i._IPinfo.CompanyName).Distinct().ToList();
                    MainModelView mainModelView11 = new MainModelView()
                    {
                        MainTables = cmp,
                    };
                    string str = JsonConvert.SerializeObject(cmp);
                    byte[] arr = Encoding.ASCII.GetBytes(str);
                    var    tq  = StringCompressor.CompressString(str);
                    //    string h = "hello";
                    TempData["MainData"] = tq;

                    //return RedirectToAction("MainTable", "Home");
                }
            }


            return(RedirectToAction("MainTable", "Home"));
        }
Ejemplo n.º 6
0
        public UsuarioViewModel LoginPost(UsuarioViewModel loginModel)
        {
            ILoginBusiness login = DependencyFactory.Resolve <ILoginBusiness>();

            try
            {
                var user     = login.LoginUser(loginModel.Mail, loginModel.Password);
                var keyToken = StringCompressor.CompressString(user.SerializarToJson());
                FormsAuthentication.SetAuthCookie(keyToken, true);
                return(user);
            }
            catch (ExceptionBusiness)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new Exception("Error del servidor", ex);
            }
        }
Ejemplo n.º 7
0
        public void CompressDecomPressString()
        {
            // Arrange
            var subject        = StringEncryptor.Instance;
            var originalString = "Testing 123: Add some special characters &é@#'öçà!£$<ù}";

            // Act
            var encryptedString1    = subject.Encrypt(originalString);
            var compressedString1   = StringCompressor.CompressString(encryptedString1);
            var decompressedString1 = StringCompressor.DecompressString(compressedString1);
            var decryptedString1    = subject.Decrypt(decompressedString1);
            var compressedString2   = StringCompressor.CompressString(originalString);
            var decompressedString2 = StringCompressor.DecompressString(compressedString2);



            // Assert
            Assert.AreEqual(originalString, decryptedString1, "Compressed and Decrypted string should match original string");
            //Assert.IsTrue((compressedString1.Length <= encryptedString1.Length), "Compressed Encrypted String should be smaller than the Encrypted string");
            Assert.AreEqual(originalString, decompressedString2, "Decompressed string should match original string");
            //Assert.IsTrue((compressedString2.Length <= originalString.Length), "Compressed String should be smaller than the original");
        }
Ejemplo n.º 8
0
            /// <summary>
            /// Save the data in the files object to the specified path
            /// </summary>
            public void Save(string path)
            {
                // This will contain the uncompressed data that we are going to dump into the output file
                List <string> data = new List <string>();

                foreach (Scanning.File file in files)
                {
                    // We use a | to split the parameters since windows will not allow that character to appear in file names
                    //  We also convert the bools to be either "1" or "0" to save space
                    data.Add($"{file.path}|{file.size}|{(file.isFolder ? 1 : 0)}|{(file.isFirstRoot ? 1 : 0)}");
                }

                // We then use a * as the line seperator since that is another character windows will not allow and compress the resulting string
                string compressed = StringCompressor.CompressString(String.Join("*", data));

                // Create the output file
                using (FileStream fs = File.Create(path))
                {
                    // Write the data to the file
                    byte[] raw = new UTF8Encoding(true).GetBytes(compressed);
                    fs.Write(raw, 0, raw.Length);
                }
            }
Ejemplo n.º 9
0
        public void exportData(long startTimestamp, string basePath)
        {
            if (Directory.Exists(basePath + "/export") == false)
            {
                Directory.CreateDirectory(basePath + "/export");
            }

            string now         = Timestamp.getNow().ToString();
            string nowReadable = DateTime.Now.ToString("yyyy-MM-dd");

            int i = 0;

            foreach (MongoCollection <BsonDocument> collection in mongodb.getCollections())
            {
                if (collection.Name.Contains("system.indexes") == false)
                {
                    string export_str = getExportData(startTimestamp, collection).ToString();
                    export_str = StringCompressor.CompressString(export_str);

                    File.WriteAllText(basePath + "/export/database_" + nowReadable + "_" + startTimestamp + "_" + now + "_PART-" + i + ".json", export_str); //1443611923418
                    i++;
                }
            }
        }
Ejemplo n.º 10
0
 private static string SerializeAndCompress(Dictionary <string, MedalCount> results)
 {
     return(StringCompressor.CompressString(JsonConvert.SerializeObject(results)));
 }
Ejemplo n.º 11
0
 public string GetString()
 {
     return(StringCompressor.CompressString(JsonUtility.ToJson(this)));
 }
 /// <summary>
 /// Compresses a string and returns a deflate compressed, Base64 encoded string.
 /// </summary>
 /// <param name="uncompressedString">String to compress</param>
 public static string ToCompressString(this string uncompressedString)
 {
     return(StringCompressor.CompressString(uncompressedString));
 }
Ejemplo n.º 13
0
 private static string SerializeAndCompress(IEnumerable <string> recordsForYear)
 {
     return(StringCompressor.CompressString(JsonConvert.SerializeObject(recordsForYear)));
 }
Ejemplo n.º 14
0
 private static string SerializeAndCompress(Dictionary <string, List <string> > recordsByYear)
 {
     return(StringCompressor.CompressString(JsonConvert.SerializeObject(recordsByYear)));
 }
Ejemplo n.º 15
0
    void OnGUI()
    {
        #region Get clue and category

        GUILayout.Label("Generator", EditorStyles.boldLabel);
        _clue     = EditorGUILayout.TextField("Clue", _clue);
        _category = (CategoryComponent)EditorGUILayout.ObjectField(_category, typeof(CategoryComponent), true);


        #endregion

        if (GUILayout.Button("Save"))
        {
            #region Initial Checks

            if (_clue == "")
            {
                EditorUtility.DisplayDialog("Error", "Specify clue!", "OK");
                return;
            }
            if (_category == null)
            {
                EditorUtility.DisplayDialog("Error", "Specify category!", "OK");
                return;
            }
            if (_category.GetComponentsInChildren <CategoryComponent>().Length > 1)
            {
                EditorUtility.DisplayDialog("Error", "Category " + _category.Name + " has subcategory!", "OK");
                return;
            }


            #endregion

            #region Get word manager

            var wordManagers = FindObjectsOfType <WordManager>();

            if (wordManagers.Length == 0)
            {
                EditorUtility.DisplayDialog("Error", "Word manager not found!", "OK");
                return;
            }

            if (wordManagers.Length > 1)
            {
                EditorUtility.DisplayDialog("Error", "More than one Word manager!", "OK");
                return;
            }

            var wordManager = wordManagers[0];

            #endregion

            #region Create wordSet

            WordSet wordSet = new WordSet();

            wordSet.Clue  = _clue;
            wordSet.Words = new List <SWord>();

            foreach (var word in wordManager.GetComponentsInChildren <Word>())
            {
                wordSet.Words.Add(new SWord(word));
            }

            #endregion


            #region Save wordset to database
            // create category in database
            var puzzle = new Puzzle
            {
                ID         = 1,
                CategoryID = _category.ID,
                Clue       = wordSet.Clue,
                Row        = _category.transform.childCount,
                Content    = StringCompressor.CompressString(JsonUtility.ToJson(wordSet)),
                LastUpdate = DateTime.Now
            };

            Puzzle newPuzzle = ServerEditor.Post <Puzzle>(@"Puzzles/Create", puzzle, "Create puzzle", "Create");

            if (newPuzzle == null)
            {
                EditorUtility.DisplayDialog("Error", "Puzzle can't save in server!", "OK");
                return;
            }

            _category.AddPuzzle(newPuzzle);

            #endregion
        }
    }
Ejemplo n.º 16
0
 public static string CompressString(string input)
 {
     return(StringCompressor.CompressString(input));
 }
Ejemplo n.º 17
0
    void OnGUI()
    {
        #region Get clue and category

        GUILayout.Label("Generator", EditorStyles.boldLabel);

        _clue = EditorGUILayout.TextField("Clue", _clue);



        _puzzle = (PuzzleComponent)EditorGUILayout.ObjectField(_puzzle, typeof(PuzzleComponent), true);

        #endregion

        #region Spawn wordSet

        if (GUILayout.Button("Spawn"))
        {
            _clue = _puzzle.Clue;
            var Wordspawner = FindObjectOfType <WordSpawner>();

            if (Wordspawner == null)
            {
                EditorUtility.DisplayDialog("Error", "Can't find word spawner", "Ok");
                return;
            }



            Wordspawner.EditorInstatiate = EditorInstantiate;

            WordSet wSet = new WordSet();
            JsonUtility.FromJsonOverwrite(StringCompressor.DecompressString(_puzzle.Content), wSet);
            Wordspawner.WordSet = wSet;
            _wordSet            = wSet;
            Wordspawner.SpawnWords();
        }

        #endregion


        #region Regenerate wordSet

        if (GUILayout.Button("Regenerate"))
        {
            var wordGenerator = FindObjectOfType <WordSetGenerator>();
            if (wordGenerator == null)
            {
                EditorUtility.DisplayDialog("Error", "Can't find word spawner", "Ok");
                return;
            }

            wordGenerator.AllWords = "";
            foreach (var word in _wordSet.Words)
            {
                wordGenerator.AllWords += word.Name + " ";
            }
            wordGenerator.UsedWordCount = _wordSet.Words.Count;
            MgsCoroutine.GetTime        = GetTime;
            MgsCoroutine.Start(
                wordGenerator.MakeWordSet(),
                () => EditorUtility.DisplayCancelableProgressBar(MgsCoroutine.Title, MgsCoroutine.Info, MgsCoroutine.Percentage),
                0.1);

            EditorUtility.ClearProgressBar();

            wordGenerator.EditorInstantiate = EditorInstantiate;

            wordGenerator.SpawnWordSet();

            Selection.activeObject = wordGenerator.gameObject;
        }

        #endregion


        if (GUILayout.Button("Save"))
        {
            #region Get word manager

            var wordManagers = FindObjectsOfType <WordManager>();

            if (wordManagers.Length == 0)
            {
                EditorUtility.DisplayDialog("Error", "Word manager not found!", "OK");
                return;
            }

            if (wordManagers.Length > 1)
            {
                EditorUtility.DisplayDialog("Error", "More than one Word manager!", "OK");
                return;
            }

            var wordManager = wordManagers[0];

            #endregion

            #region Create New wordSet

            WordSet wordSet = new WordSet();

            wordSet.Clue  = _clue;
            wordSet.Words = new List <SWord>();

            foreach (var word in wordManager.GetComponentsInChildren <Word>())
            {
                wordSet.Words.Add(new SWord(word));
            }

            #endregion

            #region Replace Puzzle TO Server
            // create category in database
            var puzzle = new Puzzle
            {
                ID         = _puzzle.PuzzleData.ID,
                CategoryID = _puzzle.PuzzleData.CategoryID,
                Clue       = _clue,
                Row        = _puzzle.PuzzleData.Row,
                Content    = StringCompressor.CompressString(JsonUtility.ToJson(wordSet)),
                LastUpdate = DateTime.Now
            };

            _puzzle.Content = puzzle.Content;
            _puzzle.Clue    = puzzle.Clue;
            _puzzle.Dirty   = true;
            _puzzle.UpdateData();

            ServerEditor.Post(@"Puzzles/Update/" + _puzzle.PuzzleData.ID, puzzle, "Update puzzle",
                              "Update");

            #endregion
        }
    }
Ejemplo n.º 18
0
        private static void RunExperiment(ExperimentParameters experimentParameters)//, DatabaseContext databaseX)
        {
            var database = new DatabaseContext(DatabaseFullPath);
            var version  = new Version(DateTime.Now);
            var stoper   = new Stopwatch();

            //if (database.Exists(experimentParameters))
            //{
            //    Console.WriteLine("BYLEM WIDZIALEM");
            //    //database.Dispose();
            //    return;
            //}

            database.Insert(version);
            database.Insert(experimentParameters);
            database.Insert(experimentParameters.EvolutionParameters);

            IDictionary <int, EvolutionStep> evolutionSteps = null;

            try
            {
                var enginesFactory = new EnginesFactory();

                var engine = enginesFactory.Create(experimentParameters);

                var distanceCalculator      = new CanberraDistanceCalculator();
                var positivePointsGenerator = new PositivePointsGenerator();
                stoper.Restart();
                var positiveTrainingPoints = positivePointsGenerator.GeneratePoints(experimentParameters.NumberOfPositivePoints, engine.Benchmark.Domains, engine.Benchmark.Constraints);
                stoper.Stop();
                engine.Statistics.PositiveTrainingPointsGenerationTime = stoper.Elapsed;

                var negativePointsGenerator = new NegativePointsGenerator(positiveTrainingPoints, distanceCalculator, new NearestNeighbourDistanceCalculator(distanceCalculator));
                //var negativeTrainingPoints = negativePointsGenerator.GeneratePoints(experimentParameters.NumberOfNegativePoints, engine.Benchmark.Domains);
                stoper.Restart();
                var negativeTrainingPoints = negativePointsGenerator.GeneratePoints(experimentParameters.NumberOfNegativePoints, engine.Benchmark.Domains, engine.Benchmark.Constraints);
                stoper.Stop();
                engine.Statistics.NegativeTrainingPointsGenerationTime = stoper.Elapsed;
                //Console.WriteLine("Evolution starts!");
                var trainingPoints = positiveTrainingPoints.Concat(negativeTrainingPoints).ToArray();

                stoper.Restart();
                var mathModel = engine.SynthesizeModel(trainingPoints);
                stoper.Stop();
                engine.Statistics.TotalSynthesisTime = stoper.Elapsed;

                database.Insert(mathModel);

                var testPointsGenerator = new TestPointsGenerator();
                stoper.Restart();
                var testPoints = testPointsGenerator.GeneratePoints(experimentParameters.NumberOfTestPoints, engine.Benchmark.Domains, engine.Benchmark.Constraints);
                stoper.Stop();
                engine.Statistics.TestPointsGenerationTime = stoper.Elapsed;

                var statistics = engine.EvaluateModel(testPoints);

                database.Insert(statistics);

                evolutionSteps = engine.CoreEvolutionSteps;
                //Logger.Instance.Log(experimentParameters);

                //Logger.Instance.Log(mathModel);
                //Logger.Instance.Log(statistics);

                //database.Insert(Logger.Instance.GetLogAsString());
            }
            catch (Exception exception)
            {
                database.Insert(exception);
            }

            database.Save();

            if (evolutionSteps != null && experimentParameters.TrackEvolutionSteps)
            {
                Logger.Instance.Log(evolutionSteps);
                var logsFullPath = Path.GetFullPath(LogsDirPath + experimentParameters.GetFileName("Log", ".cmplog"));
                File.WriteAllText(logsFullPath, StringCompressor.CompressString(Logger.Instance.GetLogAsString()));
            }
            //GlobalStoper.Stop();
            //Console.WriteLine(GlobalStoper.ElapsedMilliseconds);
            //Console.ReadKey();
            database.Dispose();
        }
Ejemplo n.º 19
0
    void Compress(string String, bool HighDensity, bool Compression)
    {
        Generated     = false;
        Progress.text = "";
        string CData;

        Split = false;
        Texture2D QRCode;

        if (HighDensity)
        {
            if (Compression)
            {
                CData = StringCompressor.CompressString(String);
            }
            else
            {
                CData = String;
            }
            if (CData.Length > MaxSize3)
            {
                Split = true;
            }
            if (Input.GetKey(KeyCode.LeftShift))
            {
                if (Input.GetKey(KeyCode.S))
                {
                    Split = true;
                }
                else
                {
                    Split = false;
                }
            }
            if (!Split)
            {
                QRClass Data = new QRClass
                {
                    SaveVersion = "v1",
                    Master      = false,
                    UUID        = SystemInfo.deviceUniqueIdentifier,
                    ThisQR      = 1,
                    Compression = Compression,
                    Data        = CData
                };
                CData = JsonUtility.ToJson(Data, false);
                string[] Data3    = new string[3];
                int      DataSize = CData.Length;
                int      ChunkSize;
                while (DataSize % 3 != 0)
                {
                    CData   += " ";
                    DataSize = CData.Length;
                }
                ChunkSize = DataSize / 3;
                int Chunk = 0;
                for (int i = 0; i < DataSize; i++)
                {
                    if (i % ChunkSize == 0)
                    {
                        Chunk++;
                    }
                    Data3[Chunk - 1] += CData[i];
                }
                Color[] Img1 = GenerateBarcode(Data3[0], 1024, 1024, Color.cyan).GetPixels();
                Color[] Img2 = GenerateBarcode(Data3[1], 1024, 1024, Color.magenta).GetPixels();
                Color[] Img3 = GenerateBarcode(Data3[2], 1024, 1024, Color.yellow).GetPixels();
                for (var i = 0; i < Img1.Length; ++i)
                {
                    Img2[i] *= Img3[i];
                    Img1[i] *= Img2[i];
                }
                QRCode            = new Texture2D(1024, 1024, TextureFormat.RGBA32, false);
                QRCode.filterMode = FilterMode.Point;
                QRCode.SetPixels(Img1);
                QRCode.Apply();
                QRarr    = new Texture2D[1];
                MaxQR    = 0;
                QRarr[0] = QRCode;
            }
            else
            {
                int      Part      = 0;
                decimal  D         = CData.Length;
                int      Blocks    = (int)Math.Ceiling(D / MaxSize3);
                string[] SplitData = new string[Blocks];
                for (int i = 0; i < CData.Length; i++)
                {
                    if (i % MaxSize3 == 0)
                    {
                        Part++;
                    }
                    SplitData[Part - 1] += CData[i];
                }
                QRarr = new Texture2D[Blocks + 1];
                QRClass Package = new QRClass
                {
                    SaveVersion = "v1",
                    Master      = true,
                    UUID        = SystemInfo.deviceUniqueIdentifier,
                    MaxFiles    = Blocks
                };
                string   Header     = JsonUtility.ToJson(Package, false);
                string[] Header3    = new string[3];
                int      HeaderSize = Header.Length;
                int      ChunkHSize;
                while (HeaderSize % 3 != 0)
                {
                    Header    += " ";
                    HeaderSize = Header.Length;
                }
                ChunkHSize = HeaderSize / 3;
                int HChunk = 0;
                for (int j = 0; j < HeaderSize; j++)
                {
                    if (j % ChunkHSize == 0)
                    {
                        HChunk++;
                    }
                    Header3[HChunk - 1] += Header[j];
                }
                Color[] ImgH1 = GenerateBarcode(Header3[0], 1024, 1024, Color.cyan).GetPixels();
                Color[] ImgH2 = GenerateBarcode(Header3[1], 1024, 1024, Color.magenta).GetPixels();
                Color[] ImgH3 = GenerateBarcode(Header3[2], 1024, 1024, Color.yellow).GetPixels();
                for (var j = 0; j < ImgH1.Length; ++j)
                {
                    ImgH2[j] *= ImgH3[j];
                    ImgH1[j] *= ImgH2[j];
                }
                Texture2D QRHeader = new Texture2D(1024, 1024, TextureFormat.RGBA32, false);
                QRHeader.filterMode = FilterMode.Point;
                QRHeader.SetPixels(ImgH1);
                QRHeader.Apply();
                QRarr[0] = QRHeader;
                for (int i = 1; i < Blocks + 1; i++)
                {
                    QRClass Data = new QRClass
                    {
                        SaveVersion = "v1",
                        Master      = false,
                        UUID        = SystemInfo.deviceUniqueIdentifier,
                        ThisQR      = i + 1,
                        Compression = Compression,
                        Data        = SplitData[i - 1]
                    };
                    CData = JsonUtility.ToJson(Data, false);
                    string[] Data3    = new string[3];
                    int      DataSize = CData.Length;
                    int      ChunkSize;
                    while (DataSize % 3 != 0)
                    {
                        CData   += " ";
                        DataSize = CData.Length;
                    }
                    ChunkSize = DataSize / 3;
                    int Chunk = 0;
                    for (int j = 0; j < DataSize; j++)
                    {
                        if (j % ChunkSize == 0)
                        {
                            Chunk++;
                        }
                        Data3[Chunk - 1] += CData[j];
                    }
                    Color[] Img1 = GenerateBarcode(Data3[0], 1024, 1024, Color.cyan).GetPixels();
                    Color[] Img2 = GenerateBarcode(Data3[1], 1024, 1024, Color.magenta).GetPixels();
                    Color[] Img3 = GenerateBarcode(Data3[2], 1024, 1024, Color.yellow).GetPixels();
                    for (var j = 0; j < Img1.Length; ++j)
                    {
                        Img2[j] *= Img3[j];
                        Img1[j] *= Img2[j];
                    }
                    QRCode = new Texture2D(1024, 1024, TextureFormat.RGBA32, false)
                    {
                        filterMode = FilterMode.Point
                    };
                    QRCode.SetPixels(Img1);
                    QRCode.Apply();
                    QRarr[i] = QRCode;
                }
                MaxQR = Blocks;
            }
        }
        else
        {
            if (Compression)
            {
                CData = StringCompressor.CompressString(String);
            }
            else
            {
                CData = String;
            }
            if (CData.Length > MaxSize)
            {
                Split = true;
            }
            if (Input.GetKey(KeyCode.LeftShift))
            {
                if (Input.GetKey(KeyCode.S))
                {
                    Split = true;
                }
                else
                {
                    Split = false;
                }
            }
            if (!Split)
            {
                QRClass Data = new QRClass
                {
                    SaveVersion = "v1",
                    Master      = false,
                    UUID        = SystemInfo.deviceUniqueIdentifier,
                    ThisQR      = 1,
                    Compression = Compression,
                    Data        = CData
                };
                CData = JsonUtility.ToJson(Data, false);
                Color[] Img = GenerateBarcode(CData, 1024, 1024, Color.black).GetPixels();
                QRCode = new Texture2D(1024, 1024, TextureFormat.RGBA32, false)
                {
                    filterMode = FilterMode.Point
                };
                QRCode.SetPixels(Img);
                QRCode.Apply();
                QRarr    = new Texture2D[1];
                MaxQR    = 0;
                QRarr[0] = QRCode;
            }
            else
            {
                int      Part      = 0;
                decimal  D         = CData.Length;
                int      Blocks    = (int)Math.Ceiling(D / MaxSize);
                string[] SplitData = new string[Blocks];
                for (int i = 0; i < CData.Length; i++)
                {
                    if (i % MaxSize == 0)
                    {
                        Part++;
                    }
                    SplitData[Part - 1] += CData[i];
                }
                QRarr = new Texture2D[Blocks + 1];
                QRClass Package = new QRClass
                {
                    SaveVersion = "v1",
                    Master      = true,
                    UUID        = SystemInfo.deviceUniqueIdentifier,
                    MaxFiles    = Blocks
                };
                string    Header   = JsonUtility.ToJson(Package, false);
                Color[]   Img1     = GenerateBarcode(Header, 1024, 1024, Color.black).GetPixels();
                Texture2D QRHeader = new Texture2D(1024, 1024, TextureFormat.RGBA32, false)
                {
                    filterMode = FilterMode.Point
                };
                QRHeader.SetPixels(Img1);
                QRHeader.Apply();
                QRarr[0] = QRHeader;
                for (int i = 1; i < Blocks + 1; i++)
                {
                    QRClass Data = new QRClass
                    {
                        SaveVersion = "v1",
                        Master      = false,
                        UUID        = SystemInfo.deviceUniqueIdentifier,
                        ThisQR      = i + 1,
                        Compression = Compression,
                        Data        = SplitData[i - 1]
                    };
                    CData = JsonUtility.ToJson(Data, false);
                    Color[] Img = GenerateBarcode(CData, 1024, 1024, Color.black).GetPixels();
                    QRCode            = new Texture2D(1024, 1024, TextureFormat.RGBA32, false);
                    QRCode.filterMode = FilterMode.Point;
                    QRCode.SetPixels(Img);
                    QRCode.Apply();
                    QRarr[i] = QRCode;
                }
                MaxQR = Blocks;
            }
        }
        Generated = true;
    }