Added possibilities for owners and there addresses

This commit is contained in:
2021-03-08 23:46:24 +01:00
parent b4baefd68f
commit e61719e037
10 changed files with 253 additions and 40 deletions

View File

@ -1,4 +1,5 @@
using DataDomain;
using Helpers;
using StockDAL.Interface;
using System;
using System.Collections.Generic;
@ -16,6 +17,7 @@ namespace StockInfo
{
private readonly IPersonRepository _personRepository;
private readonly IAddressRepository _addressRepository;
private bool radioOk = false;
public frmPerson(IPersonRepository personRepository, IAddressRepository addressRepository)
{
@ -32,6 +34,66 @@ namespace StockInfo
private void btnAddSave_Click(object sender, EventArgs e)
{
(Person person, bool OK) = validatePerson();
if (OK)
{
person = _personRepository.SavePerson(person);
PersonId = person.Id;
}
else
{
}
}
private (Person person, bool OK) validatePerson()
{
var person = new Person();
person.Id = PersonId;
person.FirstName = txtFirstName.Text;
person.LastName = txtLastName.Text;
person.NickName = txtNickName.Text;
person.ClearingNo = txtClearingNo.Text.IsNumeric()?int.Parse(txtClearingNo.Text):0;
person.AccountNo = txtAccountNr.Text.IsNumeric() ? int.Parse(txtAccountNr.Text) : 0;
person.Born = txtPersonNr.Text;
person.Comments = txtComment.Text;
HomeAddressId = AddressSave();
person.HomeAddress = HomeAddressId;
person.InvoiceAddress = InvoiceAddressId;
return (person, true);
}
private int AddressSave()
{
var retval = 0;
bool changed = false;
Address address = new Address();
(address.Street, changed) = checkString(txtStreet.Text);
(address.Street2, changed) = checkString(txtStreet2.Text);
(address.Zipcode, changed) = checkInt(txtZipCode.Text);
(address.Destination, changed) = checkString(txtDestination.Text);
(address.Nation, changed) = checkString(txtNation.Text);
if (changed)
{
retval =_addressRepository.SaveAddress(address).Id;
}
return retval;
}
private (string, bool ) checkString(string text)
{
bool chgd = !string.IsNullOrWhiteSpace(text);
return (text, chgd);
}
private (int, bool) checkInt(string text)
{
bool chgd = false;
if(!string.IsNullOrWhiteSpace(text))
{
chgd = int.Parse(text) > 0;
}
return (chgd?int.Parse(text):0, chgd);
}
private void frmPerson_Load(object sender, EventArgs e)
@ -55,7 +117,12 @@ namespace StockInfo
txtComment.Text = person.Comments;
txtClearingNo.Text = person.ClearingNo.ToString();
txtAccountNr.Text = person.AccountNo.ToString();
var address = _addressRepository.GetAddressById(HomeAddressId);
ShowAddressFrom(HomeAddressId);
}
private void ShowAddressFrom(int AddrId)
{
var address = _addressRepository.GetAddressById(AddrId);
if (address != null)
{
txtStreet.Text = address.Street;
@ -75,11 +142,44 @@ namespace StockInfo
txtComment.Text = "";
txtClearingNo.Text = "";
txtAccountNr.Text = "";
ClearAddress();
HomeAddressId = 0;
InvoiceAddressId = 0;
rdbHome.Checked = true;
}
private void ClearAddress()
{
txtStreet.Text = "";
txtStreet2.Text = "";
txtZipCode.Text = "";
txtDestination.Text = "";
txtNation.Text = "";
}
private void rdbInvoiceAddr_CheckedChanged(object sender, EventArgs e)
{
if (!radioOk)
{
if (rdbInvoiceAddr.Checked)
{
HomeAddressId = AddressSave();
ClearAddress();
ShowAddressFrom(InvoiceAddressId);
radioOk = true;
}
else
{
InvoiceAddressId = AddressSave();
ClearAddress();
ShowAddressFrom(HomeAddressId);
radioOk = true;
}
}
else
{
radioOk = false;
}
}
}
}