wczoraj zdalni zrobili krzywdę niektórym stacjonarnym
public interface IBenefit { }
public interface IServiceBenefitów { List<IBenefit> Daj(Pracownik beneficjent); }
public class Pracownik
{
public string Imie { get; set; }
public bool Zdalny { get; set; }
public int MaksymalnaPączkowaPrzepustowośćDzienna { get; set; }
public bool ŚwiadomośćSwojejPrzepustowościDziennej { get; set; }
}
public class Paczek : IBenefit { }
public class OdbiórPączkówException : Exception
{
public OdbiórPączkówException(string message) : base(message) { }
}
public class PączkowySerwis : IServiceBenefitów
{
private readonly int przydziałPączkowy = 2;
private List<Paczek> pączkiZdalnych = new List<Paczek>();
public List<IBenefit> Daj(Pracownik pracownik)
{
List<IBenefit> pączkiKtórePracownikowiSięPoProstuNależą = new List<IBenefit>();
for (int i = 0; i < przydziałPączkowy; i++)
pączkiKtórePracownikowiSięPoProstuNależą.Add(new Paczek());
if (pracownik.Zdalny)
{
for (int i = 0; i < przydziałPączkowy; i++)
pączkiZdalnych.Add(new Paczek());
throw new OdbiórPączkówException($"Słuchaj {pracownik.Imie}.... teleport pączków nie jest możliwy.");
}
else
{
if (pączkiZdalnych.Count >= 2
&& pączkiKtórePracownikowiSięPoProstuNależą.Count < pracownik.MaksymalnaPączkowaPrzepustowośćDzienna)
{
pączkiKtórePracownikowiSięPoProstuNależą.Add(pączkiZdalnych[0]);
pączkiKtórePracownikowiSięPoProstuNależą.Add(pączkiZdalnych[1]);
pączkiZdalnych.RemoveAt(0);
pączkiZdalnych.RemoveAt(0);
}
}
return pączkiKtórePracownikowiSięPoProstuNależą;
}
}