288 lines
9.9 KiB
C#
288 lines
9.9 KiB
C#
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Drawing.Drawing2D;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Kindlebox
|
|
{
|
|
public partial class ViewRabbit : Form
|
|
{
|
|
|
|
List<Kit> kitList = new List<Kit>();
|
|
public Guid kitID = Guid.Empty;
|
|
|
|
List<Litter> litterList = new List<Litter>();
|
|
public Guid litterID = Guid.Empty;
|
|
|
|
public Guid rabbitID;
|
|
|
|
public ViewRabbit()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void ViewRabbit_Load(object sender, EventArgs e)
|
|
{
|
|
RefreshRabbitInfo();
|
|
}
|
|
|
|
private void ViewRabbit_Leave(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void ViewRabbit_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
//rabbitID = Guid.Empty;
|
|
}
|
|
|
|
private void btnEdit_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
EditRabbitForm editRabbitForm = new EditRabbitForm(rabbitID);
|
|
editRabbitForm.ShowDialog();
|
|
}
|
|
|
|
public void RefreshRabbitInfo()
|
|
{
|
|
if (rabbitID != Guid.Empty)
|
|
{
|
|
foreach (Rabbit r in RabbitList.rabbits)
|
|
{
|
|
if (r.RabbitID == rabbitID)
|
|
{
|
|
this.Text = r.FarmName + "'s " + r.RabbitName;
|
|
|
|
// get rabbit info
|
|
lblFarmName.Text = r.FarmName + "'s";
|
|
lblRabbitName.Text = r.RabbitName;
|
|
|
|
pbRabbitImage.Image = (Image)Properties.Resources.ResourceManager.GetObject(r.ImagePath);
|
|
|
|
lblBirthdayText.Text = r.Birthday.ToShortDateString();
|
|
lblColorText.Text = r.Color;
|
|
lblEarNumText.Text = r.EarNumber;
|
|
lblGCNumText.Text = r.GCNumber;
|
|
lblRegNumText.Text = r.RegNumber;
|
|
lblSexText.Text = r.Sex;
|
|
lblWeightText.Text = r.Weight + " lbs.";
|
|
|
|
lblAGene.Text = r.AGene;
|
|
lblBGene.Text = r.BGene;
|
|
lblCGene.Text = r.CGene;
|
|
lblDGene.Text = r.DGene;
|
|
lblEGene.Text = r.EGene;
|
|
lblEnGene.Text = r.EnGene;
|
|
lblVGene.Text = r.VGene;
|
|
|
|
|
|
// fill in mini pedigree
|
|
Rabbit sire = r.getSire(r.SireID);
|
|
smallPedigreeUC1.SireFarmText = EscapeFarmName(sire.FarmName);
|
|
smallPedigreeUC1.SireRabbitText = sire.RabbitName;
|
|
|
|
Rabbit dam = r.getDam(r.DamID);
|
|
smallPedigreeUC1.DamFarmText = EscapeFarmName(dam.FarmName);
|
|
smallPedigreeUC1.DamRabbitText = dam.RabbitName;
|
|
|
|
Rabbit ssire = sire.getSire(sire.SireID);
|
|
smallPedigreeUC1.SSireFarmText = EscapeFarmName(ssire.FarmName);
|
|
smallPedigreeUC1.SSireRabbitText = ssire.RabbitName;
|
|
|
|
Rabbit sdam = sire.getDam(sire.DamID);
|
|
smallPedigreeUC1.SDamFarmText = EscapeFarmName(sdam.FarmName);
|
|
smallPedigreeUC1.SDamRabbitText = sdam.RabbitName;
|
|
|
|
Rabbit dsire = dam.getSire(dam.SireID);
|
|
smallPedigreeUC1.DSireFarmText = EscapeFarmName(dsire.FarmName);
|
|
smallPedigreeUC1.DSireRabbitText = dsire.RabbitName;
|
|
|
|
Rabbit ddam = dam.getDam(dam.DamID);
|
|
smallPedigreeUC1.DDamFarmText = EscapeFarmName(ddam.FarmName);
|
|
smallPedigreeUC1.DDamRabbitText = ddam.RabbitName;
|
|
|
|
if (r.Sex == "Doe")
|
|
{
|
|
|
|
if (r.PregnantStatus == true)
|
|
{
|
|
btnAddLitter.Visible = true;
|
|
bRemoveBreeding.Visible = true;
|
|
btnBreeding.Visible = false;
|
|
}
|
|
else
|
|
{
|
|
btnBreeding.Visible = true;
|
|
btnAddLitter.Visible = false;
|
|
bRemoveBreeding.Visible = false;
|
|
}
|
|
}
|
|
|
|
// fill in the kits
|
|
foreach (Rabbit k in RabbitList.rabbits)
|
|
{
|
|
if (!listbKits.Items.Contains(k.RabbitName + " - " + k.Color)){
|
|
if (k.DamID == rabbitID || k.SireID == rabbitID)
|
|
{
|
|
// Add kit to listbox
|
|
Kit kit = new Kit(k.RabbitID, k.RabbitName, k.Color);
|
|
listbKits.Items.Add(k.RabbitName + " - " + k.Color);
|
|
|
|
// Add kit to kitList
|
|
kitList.Add(kit);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// fill in the litters
|
|
foreach (Litter l in LitterList.litters)
|
|
{
|
|
if (l.DamID == rabbitID || l.SireID == rabbitID)
|
|
{
|
|
if (!listbLitters.Items.Contains(l.LitterDate.ToShortDateString() + " - " + l.LitterSize))
|
|
{
|
|
//Add Litter to listbox
|
|
Litter litter = new Litter(l.LitterID, l.SireID, l.DamID, l.LitterSize, l.LitterDate);
|
|
listbLitters.Items.Add(l.LitterDate.ToShortDateString() + " - " + l.LitterSize);
|
|
|
|
//Add Litter to litterList
|
|
litterList.Add(litter);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private string EscapeFarmName(string farmName)
|
|
{
|
|
if (farmName.Contains("&"))
|
|
{
|
|
farmName = farmName.Replace("&", "&&");
|
|
}
|
|
return farmName;
|
|
}
|
|
|
|
private void ViewRabbit_Activated(object sender, EventArgs e)
|
|
{
|
|
RefreshRabbitInfo();
|
|
}
|
|
|
|
private void btnPedigree_Click(object sender, EventArgs e)
|
|
{
|
|
ViewPedigree viewPedigree = new ViewPedigree(rabbitID);
|
|
viewPedigree.Show();
|
|
}
|
|
|
|
private void btnBreeding_Click(object sender, EventArgs e)
|
|
{
|
|
AddABreeding addABreeding = new AddABreeding(rabbitID);
|
|
addABreeding.Show();
|
|
}
|
|
|
|
private void listbKits_MouseDoubleClick(object sender, MouseEventArgs e)
|
|
{
|
|
if (listbKits.SelectedItem != null)
|
|
{
|
|
var index = listbKits.SelectedIndex;
|
|
|
|
var kitID = kitList[index].RabbitID;
|
|
|
|
ViewRabbit viewRabbit = new ViewRabbit();
|
|
viewRabbit.rabbitID = kitID;
|
|
viewRabbit.Show();
|
|
}
|
|
}
|
|
|
|
internal class Kit
|
|
{
|
|
public Guid RabbitID { get; set; }
|
|
public string RabbitName { get; set; }
|
|
public string Color { get; set; }
|
|
|
|
public Kit(Guid rabbitID, string rabbitName, string color)
|
|
{
|
|
RabbitID = rabbitID;
|
|
RabbitName = rabbitName;
|
|
Color = color;
|
|
}
|
|
}
|
|
|
|
private void smallPedigreeUC1_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
ViewPedigree viewPedigree = new ViewPedigree(rabbitID);
|
|
viewPedigree.Show();
|
|
}
|
|
|
|
private void label1_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void btnAddLitter_Click(object sender, EventArgs e)
|
|
{
|
|
AddALitter addALitter = new AddALitter(rabbitID);
|
|
addALitter.Show();
|
|
}
|
|
|
|
private void bRemoveBreeding_Click(object sender, EventArgs e)
|
|
{
|
|
DialogResult dialogResult = MessageBox.Show("Removing this breeding will mark it as unsuccessful. Are you sure you want to continue?", "Remove Breeding?", MessageBoxButtons.YesNo);
|
|
if (dialogResult == DialogResult.Yes)
|
|
{
|
|
|
|
Guid breedingID = Guid.Empty;
|
|
|
|
foreach (Breeding b in BreedingList.breedings)
|
|
{
|
|
if (b.DamID == rabbitID)
|
|
{
|
|
//breedingID = b.BreedingID; break;
|
|
b.isSuccessful = false;
|
|
b.isActive = false;
|
|
}
|
|
}
|
|
|
|
//if (breedingID != Guid.Empty)
|
|
//{
|
|
// BreedingList.breedings.RemoveAll(r => r.BreedingID == breedingID);
|
|
//}
|
|
|
|
foreach (Rabbit r in RabbitList.rabbits)
|
|
{
|
|
if (r.RabbitID == rabbitID)
|
|
{
|
|
r.PregnantStatus = false;
|
|
}
|
|
}
|
|
|
|
UpdateJson.UpdateRabbits();
|
|
UpdateJson.UpdateBreedings();
|
|
|
|
//string fileName = Properties.Settings.Default.RabbitFile;
|
|
//var json = JsonConvert.SerializeObject(RabbitList.rabbits);
|
|
|
|
//System.IO.File.WriteAllText(fileName, json);
|
|
|
|
}
|
|
else if (dialogResult == DialogResult.No)
|
|
{
|
|
// do nothing
|
|
}
|
|
}
|
|
}
|
|
}
|