private ISoldier GetlieutenantGeneral(int id, string firstName, string lastName, decimal salary, string[] inputArgs) { ILieutenantGeneral lieutenant = new LeutenantGeneral(firstName, lastName, id, salary); for (int i = 5; i < inputArgs.Length; i++) { var privateId = int.Parse(inputArgs[i]); IPrivate privateSoldier = (IPrivate)this.soldiers.FirstOrDefault(x => x.Id == privateId); lieutenant.Privates.Add(privateSoldier); } return(lieutenant); }
private ISoldier GetLeutenantGeneral(int id, string firstName, string lastName, decimal salary, string[] inputArgs) { ILeutenantGeneral leutenantGeneral = new LeutenantGeneral(id, firstName, lastName, salary); for (int counter = 5; counter < inputArgs.Length; counter++) { int privateId = int.Parse(inputArgs[counter]); IPrivate privateSoldier = (IPrivate)this.soldiers.FirstOrDefault(s => s.Id == privateId); leutenantGeneral.Privates.Add(privateSoldier); } return(leutenantGeneral); }
private ISoldier GetLieutenantGeneral(int id, string firstName, string lastName, decimal salary, string[] splitted) { ILieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salary); for (int i = 5; i < splitted.Length; i++) { IPrivate soldier = (IPrivate)this.soldiers .FirstOrDefault(s => s.Id == int.Parse(splitted[i])); lieutenantGeneral.Privates.Add(soldier); } return(lieutenantGeneral); }
private ISoldier GetLieutenantGeneral(string id, string firstName, string lastName, decimal salary, string[] argsInput) { ILieutenantGeneral lieutentGeneral = new LieutenantGeneral(id, firstName, lastName, salary); for (int i = 5; i < argsInput.Length; i++) { string privateId = argsInput[i]; IPrivate privateSoldier = (IPrivate)this.soldiers.FirstOrDefault(x => x.Id == privateId); lieutentGeneral.Privates.Add(privateSoldier); } return(lieutentGeneral); }
private ISoldier GeneratePrivate(int id, string firstName, string lastName, string[] args) { ILieutenantGeneral lieutenant = new LieutenantGeneral(firstName, lastName, id, decimal.Parse(args[4])); for (int i = 5; i < args.Length; i++) { int privateId = int.Parse(args[i]); IPrivate subordinate = (IPrivate)soldiers.FirstOrDefault(x => x.Id == privateId); lieutenant.Privates.Add(subordinate); } return(lieutenant); }
private ISoldier GetLieutenantGeneral(int id, string firstName, string lastName, decimal salary, string[] tokens) { ILieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salary); for (int i = 5; i < tokens.Length; i++) { int privateId = int.Parse(tokens[i]); IPrivate privateSoldier = (IPrivate)this.soldiers.FirstOrDefault(x => x.Id == privateId); lieutenantGeneral.Privates.Add(privateSoldier); } return(lieutenantGeneral); }
private ISoldier GetLieutenantGeneral(string id, string firstName, string lastName, decimal salary, string[] info) { ILieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salary); List <string> privates = new List <string>(); for (int i = 5; i < info.Length; i++) { IPrivate privateSoldier = (IPrivate)soldiers.FirstOrDefault(s => s.Id == info[i]); lieutenantGeneral.AddPrivates(privateSoldier); } return(lieutenantGeneral); }
public static List <IPrivate> GetLieutenantGeneralPrivates(string[] ids, List <ISoldier> soldiers) { List <IPrivate> privates = new List <IPrivate>(); foreach (var id in ids) { IPrivate @private = (Private)soldiers.FirstOrDefault(x => x.Id == int.Parse(id)); if (@private != null) { privates.Add(@private); } } return(privates); }
private ISoldier GetLieutenantGeneral(int id, string firstName, string lastName, decimal salary, string[] comands) { ILieutenantGeneral LGeneral = new LieutenantGeneral(id, firstName, lastName, salary); for (int i = 5; i < comands.Length; i++) { int privetId = int.Parse(comands[i]); IPrivate curentPrivet = (IPrivate)soldiers.FirstOrDefault(x => x.Id == privetId); LGeneral.Privets.Add(curentPrivet); } return(LGeneral); }
private ISoldier GetLieutenantGeneral(int id, string firstName, string lastName, decimal salary, string[] inputArgs) { ILieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salary); for (int i = 5; i < inputArgs.Length; i++) { var privateSoldierId = int.Parse(inputArgs[i]); IPrivate privateSodier = (IPrivate)soldiers.FirstOrDefault(p => p.Id == privateSoldierId); if (privateSodier != null) { lieutenantGeneral.Privates.Add(privateSodier); } } return(lieutenantGeneral); }
private ISoldier CreateLieutenantGeneral(int id, string firstName, string lastName, string[] inputArgs) { decimal salray = decimal.Parse(inputArgs[4]); ILieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salray); for (int i = 5; i < inputArgs.Length; i++) { int currentId = int.Parse(inputArgs[i]); IPrivate curentPrivate = (IPrivate)soldiers.FirstOrDefault(x => x.Id == currentId); lieutenantGeneral.Privates.Add(curentPrivate); } return(lieutenantGeneral); }
private void AddLieutenantGeneral(string id, string firstName, string lastName, string[] data) { decimal salary = decimal.Parse(data[4]); ILieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salary); for (int i = 5; i < data.Length; i++) { IPrivate targetPrivate = (IPrivate)this.GetSoldierById(data[i]); if (targetPrivate != null) { lieutenantGeneral.Privates.Add(targetPrivate); } } this.soldiers.Add(lieutenantGeneral); }
private ISoldier GetLieutenantGeneral(string id, string firstName, string lastName, decimal salary, string[] commandArgs) { ILieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salary); string[] privatesToAddArgs = commandArgs .Skip(5) .ToArray(); foreach (var pid in privatesToAddArgs) { IPrivate soldierToAdd = (IPrivate)this.arms .First(s => s.Id == pid); lieutenantGeneral.AddPrivate(soldierToAdd); } return(lieutenantGeneral); }
private void CreateLieutenantGeneral(string[] tokens, string soldierType, int soldierId, string firstName, string lastName) { if (soldierType == typeof(LieutenantGeneral).Name) { decimal salary = decimal.Parse(tokens[4]); List <IPrivate> privates = new List <IPrivate>(); for (int i = 5; i < tokens.Length; i++) { IPrivate searchedPrivate = (IPrivate)soldiers.FirstOrDefault(s => s.Id == int.Parse(tokens[i]) && s.GetType().Name == "Private"); if (searchedPrivate != null) { privates.Add(searchedPrivate); } } ISoldier currentSoldier = new LieutenantGeneral (soldierId, firstName, lastName, salary, privates); soldiers.Add(currentSoldier); } }
void M() { var d = new DefaultToString(); Console.WriteLine(d.ToString()); // BAD var s = "hello " + d; // BAD new A().ToString(); // GOOD new B().ToString(); // GOOD var ints = new int[] { 1, 2, 3 }; Console.WriteLine(ints); // BAD Console.WriteLine(string.Join(", ", ints)); // GOOD s = "hello " + ints; // BAD s = "hello " + string.Join(", ", ints); // GOOD s = "" + NullableE; // GOOD E e = E.A; Console.WriteLine(e); // GOOD C c = new D(); Console.WriteLine(c); // GOOD var sb = new StringBuilder(); sb.Append(new char[] { 'a', 'b', 'c' }, 0, 3); // GOOD IPrivate f = null; Console.WriteLine(f); // BAD IPublic g = null; Console.WriteLine(g); // GOOD }
public static ISoldier CreateSoldier(string input) { string[] token = input.Split(); var soldierType = token[0]; var soldierId = int.Parse(token[1]); var soldierFirstName = token[2]; var soldierSecondName = token[3]; switch (soldierType) { case "Private": Private priv = new Private(soldierId, soldierFirstName, soldierSecondName, double.Parse(token[4])); Privates.Add(soldierId, priv); return(priv); case "LeutenantGeneral": LeutenantGeneral leutenant = new LeutenantGeneral( soldierId, soldierFirstName, soldierSecondName, double.Parse(token[4])); for (int i = 5; i < token.Length; i++) { int searchedID = int.Parse(token[i]); IPrivate p = Privates[searchedID]; leutenant.AddPrivate(p); } Privates.Add(soldierId, leutenant); return(leutenant); case "Engineer": Engineer engineer = new Engineer( soldierId, soldierFirstName, soldierSecondName, double.Parse(token[4]), token[5]); for (int i = 6; i < token.Length; i += 2) { IRepair r = new Repair(token[i], int.Parse(token[i + 1])); engineer.AddRepair(r); } Privates.Add(soldierId, engineer); return(engineer); case "Commando": Commando commando = new Commando( soldierId, soldierFirstName, soldierSecondName, double.Parse(token[4]), token[5]); for (int i = 6; i < token.Length; i += 2) { var missionName = token[i]; var missionState = token[i + 1]; try { Mission m = new Mission(missionName, missionState); commando.AddMission(m); } catch (Exception) { } } Privates.Add(soldierId, commando); return(commando); case "Spy": int soldeirCodeNumber = int.Parse(token[4]); Spy spy = new Spy(soldierId, soldierFirstName, soldierSecondName, soldeirCodeNumber); return(spy); default: return(null); } }
public void AddPrivate(IPrivate newPrivate) { this.listOfPrivates.Add(newPrivate); }
public void AddPrivate(IPrivate pPrivate) { this.privates.Add(pPrivate); }
public static string Stringify(this IPrivate soldier) => $"{Stringify((ISoldier) soldier)} Salary: {soldier.Salary:f2}";
public void Run() { string input; while ((input = Console.ReadLine()) != "End") { String[] commands = input.Split(); string command = commands[0]; if (command == "Private") { int id = int.Parse(commands[1]); string firstName = commands[2]; string lastName = commands[3]; decimal salary = decimal.Parse(commands[4]); Private soldier = new Private(id, firstName, lastName, salary); this.soldiers.Add(soldier); } else if (command == "LieutenantGeneral") { int id = int.Parse(commands[1]); string firstName = commands[2]; string lastName = commands[3]; decimal salary = decimal.Parse(commands[4]); LieutenantGeneral general = new LieutenantGeneral(id, firstName, lastName, salary); foreach (string privateId in commands.Skip(5)) { IPrivate getId = (IPrivate)this.soldiers.SingleOrDefault(i => i.Id == int.Parse(privateId)); if (getId != null) { general.AddPrivate(getId); } } this.soldiers.Add(general); } else if (command == "Engineer") { int id = int.Parse(commands[1]); string firstName = commands[2]; string lastName = commands[3]; decimal salary = decimal.Parse(commands[4]); if (Enum.TryParse <Corps>(commands[5], out Corps corps)) { Engineer enginner = new Engineer(id, firstName, lastName, salary, corps); string[] repairParts = commands.Skip(6).ToArray(); for (int i = 0; i < repairParts.Length; i += 2) { string repairPart = repairParts[i]; int repairHour = int.Parse(repairParts[i + 1]); Repair repair = new Repair(repairPart, repairHour); enginner.AddRepair(repair); } this.soldiers.Add(enginner); } } else if (command == "Commando") { int id = int.Parse(commands[1]); string firstName = commands[2]; string lastName = commands[3]; decimal salary = decimal.Parse(commands[4]); if (Enum.TryParse <Corps>(commands[5], out Corps corps)) { Commando soldier = new Commando(id, firstName, lastName, salary, corps); string[] missions = commands.Skip(6).ToArray(); for (int i = 0; i < missions.Length; i += 2) { string missionName = missions[i]; string missionState = missions[i + 1]; if (Enum.TryParse(missionState, out State state)) { Mission mission = new Mission(missionName, state); soldier.AddMission(mission); } } this.soldiers.Add(soldier); } } else if (command == "Spy") { int id = int.Parse(commands[1]); string firstName = commands[2]; string lastName = commands[3]; int codeNumber = int.Parse(commands[4]); Spy soldier = new Spy(id, firstName, lastName, codeNumber); this.soldiers.Add(soldier); } } print(); }
public void AddPrivate(IPrivate @private) { _privates.Add(@private); }
public static void Main() { var engine = new Engine(); var entry = Console.ReadLine(); var sb = new StringBuilder(); var privateList = new List <IPrivate>(); while (entry != "End") { try { var soldierInfo = entry.Split().ToList(); var type = soldierInfo[0]; var id = soldierInfo[1]; var firstName = soldierInfo[2]; var lastName = soldierInfo[3]; double salary; string corps; switch (type) { case "Private": salary = double.Parse(soldierInfo[4]); var currentPrivate = new Private(firstName, lastName, id, salary); privateList.Add(currentPrivate); sb.AppendLine(currentPrivate.ToString()); break; case "LeutenantGeneral": var leutanantsPrivates = new List <IPrivate>(); for (int numOfPrivates = 0; numOfPrivates < soldierInfo.Count - 5; numOfPrivates++) { IPrivate currentPrivateToAdd = privateList.FirstOrDefault(x => x.ID == soldierInfo[5 + numOfPrivates]); leutanantsPrivates.Add(currentPrivateToAdd); } var leutenantGeneral = new LeutanantGeneral(firstName, lastName, id, double.Parse(soldierInfo[4]), leutanantsPrivates); sb.AppendLine(leutenantGeneral.ToString()); break; case "Engineer": salary = double.Parse(soldierInfo[4]); corps = soldierInfo[5]; var numOfRepairs = (soldierInfo.Count - 5) / 2; var listRepairs = new List <Repair>(); var index = 0; for (int i = 0; i < numOfRepairs; i++) { var repairName = soldierInfo[6 + index]; var repairWorkinHours = int.Parse(soldierInfo[7 + index]); var repair = new Repair(repairName, repairWorkinHours); listRepairs.Add(repair); index += 2; } var currentEngineer = new Engineer(firstName, lastName, id, salary, corps, listRepairs); sb.AppendLine(currentEngineer.ToString()); break; case "Commando": salary = double.Parse(soldierInfo[4]); corps = soldierInfo[5]; var numOfMissions = (soldierInfo.Count - 5) / 2; var missionsList = new List <Mission>(); var missionIndex = 0; for (int i = 0; i < numOfMissions; i++) { var missionName = soldierInfo[6 + missionIndex]; var missionStatus = soldierInfo[7 + missionIndex]; var mission = new Mission(missionName, missionStatus); missionsList.Add(mission); missionIndex += 2; } var currentCommando = new Commando(firstName, lastName, id, salary, corps, missionsList); sb.AppendLine(currentCommando.ToString()); break; case "Spy": var codeNumber = soldierInfo[4]; var currentSpy = new Spy(firstName, lastName, id, codeNumber); sb.AppendLine(currentSpy.ToString()); break; } } catch (Exception ex) { Console.WriteLine(ex.Message); } entry = Console.ReadLine(); } Console.WriteLine(sb.ToString().TrimEnd('\n')); }
private string Parse(List <string> input) { var soldierType = input[0]; var soldierId = int.Parse(input[1]); var firstName = input[2]; var lastName = input[3]; ISoldier soldier = null; if (soldierType == "Private") { var salary = decimal.Parse(input[4]); soldier = new Private(soldierId, firstName, lastName, salary); } else if (soldierType == "LieutenantGeneral") { var salary = decimal.Parse(input[4]); var listOfPrivates = new List <IPrivate>(); for (int i = 5; i < input.Count; i++) { IPrivate currentPrivate = (IPrivate)soldiers[int.Parse(input[i])]; listOfPrivates.Add(currentPrivate); } soldier = new LieutenantGeneral(soldierId, firstName, lastName, salary, listOfPrivates); } else if (soldierType == "Engineer") { var salary = decimal.Parse(input[4]); var isCorps = Enum.TryParse <Corps>(input[5], out Corps corps); if (!isCorps) { throw new Exception(); } var repairs = new List <IRepair>(); for (int i = 6; i < input.Count; i += 2) { var repairPart = input[i]; var repairHours = int.Parse(input[i + 1]); var repair = new Repair(repairPart, repairHours); repairs.Add(repair); } soldier = new Engineer(soldierId, firstName, lastName, salary, corps, repairs); } else if (soldierType == "Commando") { var salary = decimal.Parse(input[4]); var isCorps = Enum.TryParse <Corps>(input[5], out Corps corps); if (!isCorps) { throw new Exception(); } var missions = new List <IMission>(); for (int i = 6; i < input.Count; i += 2) { var missionName = input[i]; var state = input[i + 1]; var isState = Enum.TryParse <State>(state, out State finalState); if (!isState) { continue; } var mission = new Mission(missionName, finalState); missions.Add(mission); } soldier = new Commando(soldierId, firstName, lastName, salary, corps, missions); } else if (soldierType == "Spy") { var codeNumber = int.Parse(input[4]); soldier = new Spy(soldierId, firstName, lastName, codeNumber); } soldiers.Add(soldierId, soldier); return(soldier.ToString()); }
public void Run() { while (true) { string input = Console.ReadLine(); if (input == "End") { break; } string[] inputArgs = input.Split(); string type = inputArgs[0]; int id = int.Parse(inputArgs[1]); string firstName = inputArgs[2]; string lastName = inputArgs[3]; decimal salary = decimal.Parse(inputArgs[4]); if (type == "Private") { IPrivate privateSoldier = new Private(id, firstName, lastName, salary); this.soldiers.Add(privateSoldier); } else if (type == "LieutenantGeneral") { ILieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salary); for (int i = 5; i < inputArgs.Length; i++) { int priv = int.Parse(inputArgs[i]); IPrivate privateSoldier = (IPrivate)this.soldiers.FirstOrDefault(x => x.Id == priv); if (privateSoldier != null) { lieutenantGeneral.Privates.Add(privateSoldier); } } soldiers.Add(lieutenantGeneral); } else if (type == "Engineer") { string corpsAsString = inputArgs[5]; if (!Enum.TryParse(corpsAsString, out Corps corps)) { continue; } IEngineer engineer = new Engineer(id, firstName, lastName, salary, corps); for (int i = 6; i < inputArgs.Length; i += 2) { string repairPart = inputArgs[i]; int hours = int.Parse(inputArgs[i + 1]); IRepair repair = new Repair(repairPart, hours); engineer.Repairs.Add(repair); } soldiers.Add(engineer); } else if (type == "Commando") { string corpsAsString = inputArgs[5]; if (!Enum.TryParse(corpsAsString, out Corps corps)) { continue; } ICommando commando = new Commando(id, firstName, lastName, salary, corps); for (int i = 6; i < inputArgs.Length; i += 2) { string codeName = inputArgs[i]; string stateAsString = inputArgs[i + 1]; if (!Enum.TryParse(stateAsString, out State state)) { continue; } Mission mission = new Mission(codeName, state); commando.Missions.Add(mission); } soldiers.Add(commando); } else if (type == "Spy") { int codeNumber = int.Parse(inputArgs[4]); ISpy spy = new Spy(id, firstName, lastName, codeNumber); soldiers.Add(spy); } } foreach (var soldier in soldiers) { Console.WriteLine(soldier); } }
public void Add(IPrivate soldier) { privates.Add(soldier); }
public void AddPrivates(IPrivate newPrivate) { this.Privates.Add(newPrivate); }
public void AddPrivate(IPrivate @private) { this.privates.Add(@private); }
public void Run() { List <ISoldier> soldiers = new List <ISoldier>(); string input = string.Empty; while ((input = Console.ReadLine()) != "End") { string[] elements = input .Split(" ", StringSplitOptions.RemoveEmptyEntries) .ToArray(); string typeSoldier = elements[0]; string id = elements[1]; string firstName = elements[2]; string lastName = elements[3]; ISoldier soldier = null; if (typeSoldier == "Private") { decimal salary = decimal.Parse(elements[4]); soldier = new Private(id, firstName, lastName, salary); } else if (typeSoldier == "LieutenantGeneral") { decimal salary = decimal.Parse(elements[4]); soldier = new LieutenantGeneral(id, firstName, lastName, salary); for (int i = 5; i < elements.Length; i++) { string targetId = elements[i]; IPrivate @private = (IPrivate)soldiers .FirstOrDefault(x => x.Id == targetId); ILieutenantGeneral lieutenantGeneral = soldier as ILieutenantGeneral; lieutenantGeneral.AddPrivate(@private); } } else if (typeSoldier == "Engineer") { decimal salary = decimal.Parse(elements[4]); string targetCorp = elements[5]; bool isCorpValid = Enum.TryParse <Corp>(targetCorp, out Corp corp); if (!isCorpValid) { continue; } soldier = new Engineer(id, firstName, lastName, salary, corp); IEngineer engineer = soldier as IEngineer; for (int i = 6; i < elements.Length; i += 2) { string partName = elements[i]; int hours = int.Parse(elements[i + 1]); IRepair repair = new Repair(partName, hours); engineer.AddRepair(repair); } } else if (typeSoldier == "Commando") { decimal salary = decimal.Parse(elements[4]); string targetCorp = elements[5]; bool isCorpValid = Enum.TryParse <Corp>(targetCorp, out Corp corp); if (!isCorpValid) { continue; } soldier = new Commando(id, firstName, lastName, salary, corp); ICommando commando = soldier as ICommando; for (int i = 6; i < elements.Length; i += 2) { string codeName = elements[i]; string targetMissionState = elements[i + 1]; bool isMissionStateValid = Enum.TryParse <MissionState>(targetMissionState, out MissionState missionState); if (!isMissionStateValid) { continue; } IMission mission = new Mission(codeName, missionState); commando.AddMission(mission); } } else if (typeSoldier == "Spy") { int codeNumber = int.Parse(elements[4]); soldier = new Spy(id, firstName, lastName, codeNumber); } soldiers.Add(soldier); } foreach (ISoldier soldier in soldiers) { Console.WriteLine(soldier); } }
public void AddPrivate(IPrivate privateSoldier) { this._privates.Add(privateSoldier); }
public void AddPrivate(IPrivate priv) { this.Privates.Add(priv); }