Exemple #1
0
        /// <summary>
        /// Write <seealso cref="DataModel"/> to data storage contoller at defined random index. Then write that index to CurrentCategory index collection, and save changes of category storage controller.
        /// </summary>
        /// <param name="category">Adding data</param>
        public void AddData(DataModel data, CategoryModel toCategory)
        {
            List <int> usingIndexes = GetUsingDataIndexes();

            int maxValue = dataController.Count();
            int newIndex = random.Next(0, maxValue);

            while (usingIndexes.Contains(newIndex))
            {
                newIndex = random.Next(0, maxValue);
            }

            dataController.PasteAt(SecureManager.GetIndexOf(newIndex), data);

            List <CategoryModel> categories = categoryController.ToList();

            for (int i = 0; i < categories.Count; i++)
            {
                if (categories[i].Equals(toCategory))
                {
                    CategoryModel newCategory = new CategoryModel {
                        DataIndexes = new List <int>(toCategory.DataIndexes), Name = toCategory.Name
                    };
                    newCategory.DataIndexes.Add(newIndex);
                    categoryController.PasteAt(i, newCategory);
                    break;
                }
            }
        }