kindlebox/Kindlebox/AddALitter.cs

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();
}
}
}