/// <summary> /// Kliknutí na grafický záznam - finance * uloží zakliknutý záznam do proměnné editFinanceRecord v této třídě /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GraphicFinanceRecordClick(object sender, EventArgs e) { editFinanceRecord = sender as FinanceRecord; AddFinanceWindow window = new AddFinanceWindow(this, DefineVM_Finance(false)); window.Show(); }
/// <summary> /// Metoda pro odebrání transakce /// </summary> /// <param name="removeRecord">Záznam k odebrání</param> public void RemoveFinanceRecord(FinanceRecord removeRecord) { // Odebrání záznamu z kolekce FinanceRecords.Remove(removeRecord); SaveFinance(); SaveIDs(); }
/// <summary> /// Rozšířený konstruktor - umožňuje bindovat data pro úpravu záznamu /// </summary> /// <param name="pigColection">Kolekce všech prasat pro comboBox</param> /// <param name="selectType">Vybraný typ transakce - příjem / výdaj</param> /// <param name="selectCategory">Vybraná kategorie</param> /// <param name="selectPig">Vybrané konkrétní zvíře</param> /// <param name="editRecord">Upravovaný záznam</param> public VM_Finance(List <Pig> pigColection, int selectType, int selectCategory, int selectPig, FinanceRecord editRecord) { Pigs = pigColection; SelectType = selectType; SelectCategory = selectCategory; SelectPig = selectPig; record = editRecord; NewRecordFlag = false; }
/// <summary> /// Metoda pro vytvoření View modelu finance /// </summary> /// <returns>View model</returns> public VM_Finance DefineVM_Finance(bool newFinanceRecord) { List <Pig> pigs = new List <Pig>(); // Přidání kolekcí prasnic a následně ostatních prasat pigs.AddRange(admin.Saws); pigs.AddRange(admin.Pigs); // Úprava stávajícího záznamu if (!newFinanceRecord && editFinanceRecord != null) { // Nalezení zvířete v kolekci, a uložení jeho pořadí - aby bylo možné v ComboBoxu zobrazit odpovídající řádek // - pokud nenajde vrátí -1 a tento index se uloží do vybraného prasete int pigIndex = pigs.FindIndex(a => a.Id == editFinanceRecord.RelativeAnimalId); return(new VM_Finance(pigs, (int)editFinanceRecord.TypeRecord, (int)editFinanceRecord.Category, pigIndex, editFinanceRecord)); } // View model pro nový záznam - tedy data pro comboBoxy pouze else { editFinanceRecord = null; return(new VM_Finance(pigs)); } }
/// <summary> /// Metoda pro přidání nebo úpravu transakce /// </summary> /// <param name="operation">0 - nový záznam * 1 - úprava stávajícího</param> /// <param name="date">Datum transakce</param> /// <param name="name">Název transakce * MAX 50 znaků</param> /// <param name="price">Částka transakce</param> /// <param name="description">Popis transakce</param> /// <param name="typeFinance">Příjmy / výdaje</param> /// <param name="category">Pořadí kategorie transakce</param> /// <param name="animalId">Pořadí zvířete, kterého se transakce týká</param> /// <param name="editRecord">Záznam pro úpravu</param> public void AddEditFinanceRecord(byte operation, DateTime date, string name, int price, string description, FinanceTypeRecord typeFinance, FinanceCategory category , int animalId, FinanceRecord editRecord) { // Nový záznam if (operation == 0) { FinanceRecords.Add(new FinanceRecord(price, name, date, description, typeFinance, category, animalId)); } // Úprava stávajícího else if (operation == 1) { editRecord.Date = date; editRecord.Name = name; editRecord.Price = price; editRecord.Description = description; editRecord.TypeRecord = typeFinance; editRecord.Category = category; editRecord.RelativeAnimalId = animalId; } // Uložení dat na disk C SaveFinance(); SaveIDs(); }
/// <summary> /// Základní konstruktor - nový záznam model /// </summary> /// <param name="pigColection">Kolekce všech prasat pro comboBox</param> public VM_Finance(List <Pig> pigColection) { record = null; Pigs = pigColection; NewRecordFlag = true; }
/// <summary> /// Základní konstruktor - vytvoří vše potřebné pro vykreslení /// </summary> /// <param name="record"></param> public FinanceGraphicRecord(FinanceRecord record) { // Částka Price = new TextBlock { FontSize = 16, FontWeight = FontWeights.Bold, Foreground = Brushes.Black, Text = record.Price.ToString() + "\tKč" }; // Datum Date = new TextBlock { FontSize = 15, FontWeight = FontWeights.Bold, Foreground = Brushes.Black, Text = record.Date.ToShortDateString() }; // Název kategorie CategoryName = new TextBlock { FontSize = 14, FontWeight = FontWeights.DemiBold, Foreground = Brushes.Black, Text = Admin.FinanceCategory_Czech[(int)record.Category] }; // Název transakce Title = new TextBlock { FontSize = 14, FontWeight = FontWeights.DemiBold, Foreground = Brushes.Black, Text = record.Name }; // HOrní obdelník RectangleTop = new Rectangle { Width = 380, Height = 25, RadiusX = 3, RadiusY = 3, Fill = new SolidColorBrush(Color.FromArgb(255, 111, 121, 182)) }; RectangleDown = new Rectangle { Width = 380, Height = 25, RadiusX = 5, RadiusY = 5, Fill = new SolidColorBrush(Color.FromArgb(160, 0, 255, 0)), //Brushes.White, StrokeThickness = 1, Stroke = Brushes.Gray }; if (record.TypeRecord == FinanceTypeRecord.Costs) { RectangleDown.Fill = new SolidColorBrush(Color.FromArgb(160, 255, 0, 0));//(255, 255, 108, 108)); } // Přiřazení záznamu a přidání obsluhy kliknutí na spodní obdelník, název kategorie a název transakce FinanceRecord = record; RectangleDown.MouseDown += RectangleDown_MouseDown; Title.MouseDown += RectangleDown_MouseDown; CategoryName.MouseDown += RectangleDown_MouseDown; }