145 lines
4.2 KiB
C#
145 lines
4.2 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.Windows.Forms.VisualStyles;
|
|
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
|
|
|
namespace Kindlebox
|
|
{
|
|
public partial class AddALitter : Form
|
|
{
|
|
Guid damID;
|
|
Guid litterID;
|
|
Guid sireID;
|
|
Guid breedingID;
|
|
|
|
int litterSize = 0;
|
|
|
|
Form addLitterForm = new Form();
|
|
|
|
public AddALitter(Guid _damID)
|
|
{
|
|
InitializeComponent();
|
|
damID = _damID;
|
|
}
|
|
|
|
private void AddALitter_Load(object sender, EventArgs e)
|
|
{
|
|
addLitterForm = this;
|
|
|
|
foreach (Breeding b in BreedingList.breedings)
|
|
{
|
|
if (b.DamID == damID)
|
|
{
|
|
breedingID = b.BreedingID;
|
|
sireID = b.SireID;
|
|
}
|
|
}
|
|
|
|
foreach (Rabbit r in RabbitList.rabbits)
|
|
{
|
|
//if (r.Sex == "Buck" && r.Status.Equals(0))
|
|
//{
|
|
// cbChooseSire.Items.Add(new BreedingComboBoxItem { Text = r.RabbitName, Value = r.RabbitID });
|
|
|
|
//}
|
|
|
|
if (r.RabbitID == sireID)
|
|
{
|
|
lblSire.Text = "Sire: " + r.RabbitName;
|
|
}
|
|
|
|
if (r.RabbitID == damID)
|
|
{
|
|
lblDam.Text = "Dam: " + r.RabbitName;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void bAddLitter_Click(object sender, EventArgs e)
|
|
{
|
|
//sireID = (cbChooseSire.SelectedItem as BreedingComboBoxItem).Value;
|
|
|
|
litterID = Guid.NewGuid();
|
|
litterSize = int.Parse(tbLitterSize.Text);
|
|
|
|
|
|
if (LitterList.litters != null)
|
|
{
|
|
Litter litter = new Litter(litterID, sireID, damID, litterSize, dtpBirthDate.Value);
|
|
LitterList.litters.Add(litter);
|
|
}
|
|
else
|
|
{
|
|
LitterList.litters = new List<Litter>();
|
|
Litter litter = new Litter(litterID, sireID, damID, litterSize, dtpBirthDate.Value);
|
|
LitterList.litters.Add(litter);
|
|
}
|
|
|
|
// Update the dam's pregnancy status
|
|
foreach (var rabbit in RabbitList.rabbits.Where(Rabbit => Rabbit.RabbitID == damID))
|
|
{
|
|
rabbit.PregnantStatus = false;
|
|
}
|
|
|
|
|
|
// Add each new kit that was in the litter
|
|
for (int i = 0; i < litterSize; i++)
|
|
{
|
|
Guid newKitID = Guid.NewGuid();
|
|
|
|
var firstChars = Properties.Settings.Default.FarmName.Split(' ').Select(s => s[0]);
|
|
|
|
var FarmInitials = "";
|
|
|
|
foreach (var firstChar in firstChars)
|
|
{
|
|
FarmInitials += firstChar;
|
|
}
|
|
|
|
String newKitName = FarmInitials + " kit (" + newKitID.ToString("N").Substring(0,5) + ")";
|
|
|
|
Rabbit rabbit = new Rabbit(newKitID, Properties.Settings.Default.FarmName, newKitName, dtpBirthDate.Value, sireID, damID, litterID);
|
|
|
|
RabbitList.rabbits.Add(rabbit);
|
|
}
|
|
|
|
UpdateJson.UpdateRabbits();
|
|
|
|
SaveLitter();
|
|
addLitterForm.Close();
|
|
}
|
|
|
|
private void SaveLitter()
|
|
{
|
|
foreach (var litter in LitterList.litters.Where(Litter => Litter.LitterID == litterID)){
|
|
litter.SireID = sireID;
|
|
litter.DamID = damID;
|
|
litter.LitterSize = litterSize;
|
|
litter.LitterDate = dtpBirthDate.Value;
|
|
}
|
|
|
|
UpdateJson.UpdateLitters();
|
|
|
|
|
|
foreach (Breeding b in BreedingList.breedings.Where(Breeding => Breeding.BreedingID == breedingID))
|
|
{
|
|
b.isSuccessful = true;
|
|
b.isActive = false;
|
|
b.LitterID = litterID;
|
|
}
|
|
|
|
//BreedingList.breedings.RemoveAll(x => x.BreedingID == breedingID);
|
|
|
|
UpdateJson.UpdateBreedings();
|
|
}
|
|
}
|
|
}
|