/// <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; } } }