示例#1
0
 public static IEngineer Initialize(IEngineer engineer)
 {
     if (_engineer == null)
     {
         _engineer = engineer;
     }
     return(_engineer);
 }
示例#2
0
        public void AddEngineer(IEngineer engineer)
        {
            if (Engineers == null)
            {
                Engineers = new List <IEngineer>();
            }

            Engineers.Add(engineer);
        }
示例#3
0
 private static void AddRepairs(IEngineer e, string[] repair)
 {
     for (int i = 0; i < repair.Length; i += 2)
     {
         string  partName = repair[i];
         int     houres   = int.Parse(repair[i + 1]);
         IRepair r        = new Repair(partName, houres);
         e.AddRepair(r);
     }
 }
示例#4
0
 private static void Addrepairs(IEngineer engineer, string[] repairArgs)
 {
     for (int i = 0; i < repairArgs.Length; i += 2)
     {
         string  partName = repairArgs[i];
         int     hours    = int.Parse(repairArgs[i + 1]);
         IRepair repair   = new Repair(partName, hours);
         engineer.AddRepair(repair);
     }
 }
示例#5
0
 public UnitExample(IAdmin adminContext, ICleaner cleanerContext, IDriver driverContext, IEngineer engineerContext, IFleetManager fleetManagerContext, ITram tramContext, IUser userContext)
 {
     this.adminContext        = adminContext;
     this.cleanerContext      = cleanerContext;
     this.driverContext       = driverContext;
     this.engineerContext     = engineerContext;
     this.fleetManagerContext = fleetManagerContext;
     this.tramContext         = tramContext;
     this.userContext         = userContext;
 }
 private static void TakeRepairs(IEngineer engineer, List <string> repairs)
 {
     for (int i = 0; i < repairs.Count; i += 2)
     {
         var part   = repairs[i];
         var hours  = int.Parse(repairs[i + 1]);
         var repair = new Repair(part, hours);
         engineer.Repairs.Add(repair);
     }
 }
示例#7
0
 private static void CreateEngineer(string[] soldierArgs, IEngineer engineer)
 {
     string[] repairs = soldierArgs
                        .Skip(6)
                        .ToArray();
     for (int i = 0; i < repairs.Length; i += 2)
     {
         IRepair repair = new Repair(repairs[i], int.Parse(repairs[i + 1]));
         engineer.AddRepair(repair);
     }
 }
        private static void AddPepairs(IEngineer engineer, string[] repearTokens)
        {
            for (int i = 0; i < repearTokens.Length; i += 2)
            {
                string partName    = repearTokens[i];
                int    hoursWorked = int.Parse(repearTokens[i + 1]);

                IRepair repair = new Repair(partName, hoursWorked);

                engineer.AddRepair(repair);
            }
        }
示例#9
0
        private static void AddRepairs(string[] repairArgs, IEngineer engineer)
        {
            for (int i = 0; i < repairArgs.Length; i += 2)
            {
                var partName = repairArgs[i];
                var hours    = int.Parse(repairArgs[i + 1]);

                var repair = new Repair(partName, hours);

                engineer.AddRepair(repair);
            }
        }
示例#10
0
        private static IEngineer GetRepairs(string[] dataArr, IEngineer engineer)
        {
            for (int i = 7; i < dataArr.Length; i += 2)
            {
                string  part        = dataArr[i - 1];
                string  hoursWorket = dataArr[i];
                IRepair repair      = new Repair(part, int.Parse(hoursWorket));
                engineer.AddRepair(repair);
            }

            return(engineer);
        }
示例#11
0
        public ISoldier CreatSoldier(string[] soldierArgs, ICollection <ISoldier> privatesList)
        {
            string soldierType = soldierArgs[0];

            int    id        = int.Parse(soldierArgs[1]);
            string firstName = soldierArgs[2];
            string lastName  = soldierArgs[3];

            ISoldier soldier = null;

            if (soldierType == "Private")
            {
                decimal salary = decimal.Parse(soldierArgs[4]);

                soldier = new Private(firstName, lastName, id, salary);
            }
            else if (soldierType == "LieutenantGeneral")
            {
                decimal salary = decimal.Parse(soldierArgs[4]);

                soldier = GreateGeneral(soldierArgs, id, firstName, lastName, salary, privatesList);
            }
            else if (soldierType == "Engineer")
            {
                decimal salary = decimal.Parse(soldierArgs[4]);
                string  corps  = soldierArgs[5];

                IEngineer engineer = CreateEngineer(soldierArgs, id, firstName, lastName, salary, corps);

                soldier = engineer;
            }
            else if (soldierType == "Commando")
            {
                decimal salary = decimal.Parse(soldierArgs[4]);
                string  corps  = soldierArgs[5];

                ICommando commando = CreateComando(soldierArgs, id, firstName, lastName, salary, corps);

                soldier = commando;
            }
            else if (soldierType == "Spy")
            {
                int codeNumber = int.Parse(soldierArgs[4]);

                soldier = new Spy(firstName, lastName, id, codeNumber);
            }

            return(soldier);
        }
示例#12
0
        private ISoldier GetEngineerType(int id, string firstName, string lastName, decimal salary, string[] newArgs)
        {
            IEngineer engineer = null;

            Corp corp;
            bool isCastToCorp = Enum.TryParse <Corp>(newArgs[0], out corp);

            if (isCastToCorp)
            {
                engineer = new Engineer(id, firstName, lastName, salary, corp);
                string partName;
                int    hoursWorked;
                for (int i = 1; i < newArgs.Length; i += 2)
                {
                    partName    = newArgs[i];
                    hoursWorked = int.Parse(newArgs[i + 1]);
                    IRepair repair = new Repair(partName, hoursWorked);
                    engineer.AddRepairs(repair);
                }
            }

            return(engineer);
        }
示例#13
0
 public void AddEngineerToShift(IShift shift, IEngineer engineer)
 {
     shift.Engineer = engineer;
     engineer.Shifts.Add(shift);
 }
示例#14
0
        public void Run()
        {
            while (true)
            {
                string[] command = reader.ReadLine().Split();

                if (command[0] == "End")
                {
                    break;
                }

                string soldierType = command[0];
                int    id          = int.Parse(command[1]);
                string firstName   = command[2];
                string lastName    = command[3];

                ISoldier soldier = null;

                if (soldierType == "Private")
                {
                    decimal salary = decimal.Parse(command[4]);

                    soldier = new Private(id, firstName, lastName, salary);
                }
                else if (soldierType == "LieutenantGeneral")
                {
                    soldier = AddGeneral(command, id, firstName, lastName);
                }
                else if (soldierType == "Engineer")
                {
                    decimal salary = decimal.Parse(command[4]);
                    string  corps  = command[5];

                    try
                    {
                        IEngineer engineer = CreateEngineer(command, id, firstName, lastName, salary, corps);
                        soldier = engineer;
                    }
                    catch (InvalidCorpsException ice)
                    {
                        continue;
                    }
                }
                else if (soldierType == "Commando")
                {
                    decimal salary = decimal.Parse(command[4]);
                    string  corps  = command[5];

                    try
                    {
                        ICommando commando = GetCommando(command, id, firstName, lastName, salary, corps);
                        soldier = commando;
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
                else if (soldierType == "Spy")
                {
                    int codeNumber = int.Parse(command[4]);

                    soldier = new Spy(id, firstName, lastName, codeNumber);
                }

                if (soldier != null)
                {
                    this.soldiers.Add(soldier);
                }
            }

            foreach (var soldier in this.soldiers)
            {
                this.writter.WriteLine(soldier.ToString());
            }
        }
示例#15
0
 public abstract void ConsultWith(IEngineer engineer);
示例#16
0
 public static string Stringify(this IEngineer soldier) => $"{Stringify((ISpecialisedSoldier) soldier)}\r\nRepairs:\r\n  {string.Join("\r\n  ", soldier.Repairs)}".TrimEnd();
示例#17
0
        public void Run()
        {
            string command;

            while ((command = this.reader.ReadLine()) != "End")
            {
                string[] cmdArgs = command.Split(' ', StringSplitOptions.RemoveEmptyEntries).ToArray();

                string soldierType = cmdArgs[0];
                int    id          = int.Parse(cmdArgs[1]);
                string firstName   = cmdArgs[2];
                string lastName    = cmdArgs[3];

                ISoldier soldier = null;

                if (soldierType == "Private")
                {
                    decimal salary = decimal.Parse(cmdArgs[4]);
                    soldier = new Private(id, firstName, lastName, salary);
                }
                else if (soldierType == "LieutenantGeneral")
                {
                    soldier = AddGeneral(cmdArgs, id, firstName, lastName);
                }
                else if (soldierType == "Engineer")
                {
                    decimal salary = decimal.Parse(cmdArgs[4]);
                    string  corps  = cmdArgs[5];
                    try
                    {
                        IEngineer engineer = CreateEngineer(cmdArgs, id, firstName, lastName, salary, corps);

                        soldier = engineer;
                    }
                    catch (InvalidCorpsExceptions)
                    {
                        continue;
                    }
                }
                else if (soldierType == "Commando")
                {
                    decimal salary = decimal.Parse(cmdArgs[4]);
                    string  corps  = cmdArgs[5];

                    try
                    {
                        ICommando commando = new Commando(id, firstName, lastName, salary, corps);

                        string[] missionArgs = cmdArgs.Skip(6).ToArray();

                        for (int i = 0; i < missionArgs.Length; i += 2)
                        {
                            try
                            {
                                string missionCodeName = missionArgs[i];
                                string missionState    = missionArgs[i + 1];

                                IMission mission = new Mission(missionCodeName, missionState);

                                commando.AddMissions(mission);
                            }
                            catch (InvalidMissionStateException)
                            {
                                continue;
                            }
                        }
                        soldier = commando;
                    }
                    catch (InvalidCorpsExceptions)
                    {
                        continue;
                    }
                }
                else if (soldierType == "Spy")
                {
                    int codeNumber = int.Parse(cmdArgs[4]);
                    soldier = new Spy(id, firstName, lastName, codeNumber);
                }

                if (soldier != null)
                {
                    this.soldiers.Add(soldier);
                }
            }

            foreach (var soldier in this.soldiers)
            {
                this.writer.WriteLine(soldier.ToString());
            }
        }
 public override void ConsultWith(IEngineer engineer)
 {
     _engineer = engineer;
 }
        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 CompanyMenber(IHumanResource ihr, IEngineer ie)
 {
     this.ihr = ihr;
     this.ie  = ie;
 }
示例#21
0
 public void AddEngineer(IEngineer engineer)
 {
     Engineers.Add(engineer);
 }
 public EditCommand(FacilityMap map, XYZ location, IEngineer engineer)
 {
     _map      = map;
     _location = location;
     _engineer = engineer;
 }
        static void Main(string[] args)
        {
            List <ISoldier> soldiers = new List <ISoldier>();

            while (true)
            {
                string input = Console.ReadLine();

                if (input == "End")
                {
                    break;
                }

                string[] info      = input.Split();
                string   type      = info[0];
                int      id        = int.Parse(info[1]);
                string   firstName = info[2];
                string   lastName  = info[3];

                try
                {
                    if (type == "Private")
                    {
                        decimal  salary   = decimal.Parse(info[4]);
                        IPrivate @private = new Private(id, firstName, lastName, salary);
                        soldiers.Add(@private);
                    }
                    else if (type == "LieutenantGeneral")
                    {
                        decimal            salary            = decimal.Parse(info[4]);
                        ILieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salary);

                        for (int i = 5; i < info.Length; i++)
                        {
                            int      currentId = int.Parse(info[i]);
                            IPrivate @private  = (IPrivate)soldiers.First(p => p.Id == currentId);
                            lieutenantGeneral.AddPrivate(@private);
                        }

                        soldiers.Add(lieutenantGeneral);
                    }
                    else if (type == "Engineer")
                    {
                        decimal salary = decimal.Parse(info[4]);

                        IEngineer engineer = null;
                        Corps     corps;
                        bool      validCorps = Enum.TryParse <Corps>(info[5], out corps);

                        if (validCorps)
                        {
                            engineer = new Engineer(id, firstName, lastName, salary, corps);
                        }
                        else
                        {
                            throw new InvalidCorpsException();
                        }

                        for (int i = 6; i < info.Length; i += 2)
                        {
                            string repairPart  = info[i];
                            int    repairHours = int.Parse(info[i + 1]);

                            IRepair repair = new Repair(repairPart, repairHours);
                            engineer.AddRepair(repair);
                        }

                        soldiers.Add(engineer);
                    }
                    else if (type == "Commando")
                    {
                        decimal salary = decimal.Parse(info[4]);

                        ICommando commando = null;
                        Corps     corps;
                        bool      validCorps = Enum.TryParse <Corps>(info[5], out corps);

                        if (validCorps)
                        {
                            commando = new Commando(id, firstName, lastName, salary, corps);
                        }
                        else
                        {
                            throw new InvalidCorpsException();
                        }

                        for (int i = 6; i < info.Length; i += 2)
                        {
                            try
                            {
                                string       codeName = info[i];
                                MissionState state;
                                bool         validMission = Enum.TryParse <MissionState>(info[i + 1], out state);

                                if (validMission)
                                {
                                    IMission mission = new Mission(codeName, state);
                                    commando.AddMission(mission);
                                }
                                else
                                {
                                    throw new InvalidMissionException();
                                }
                            }
                            catch (InvalidMissionException ime)
                            {
                                Console.WriteLine();
                            }
                        }

                        soldiers.Add(commando);
                    }
                    else if (type == "Spy")
                    {
                        int codeNumber = int.Parse(info[4]);

                        ISpy spy = new Spy(id, firstName, lastName, codeNumber);

                        soldiers.Add(spy);
                    }
                }
                catch (InvalidCorpsException ice)
                {
                    Console.WriteLine();
                }
            }

            foreach (var soldier in soldiers)
            {
                Console.WriteLine(soldier.ToString());
            }
        }
示例#24
0
 public EngineerRepository(IEngineer context)
 {
     this.context = context;
 }
示例#25
0
        public void Run()
        {
            string[] commandArgs = Console.ReadLine()
                                   .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                                   .ToArray();

            string soldierType = commandArgs[0];

            while (soldierType != "End")
            {
                ISoldier soldier = null;

                int    id        = int.Parse(commandArgs[1]);
                string firstName = commandArgs[2];
                string lastName  = commandArgs[3];
                decimal.TryParse(commandArgs[4], out decimal salary);

                if (soldierType == "Private")
                {
                    soldier = CreatePrivate(id, firstName, lastName, salary);
                }
                else if (soldierType == "LieutenantGeneral")
                {
                    soldier = CreateGeneral(commandArgs, id, firstName, lastName, salary);
                }
                else if (soldierType == "Engineer")
                {
                    try
                    {
                        IEngineer engineer = CreateEngineer(commandArgs, id, firstName, lastName, salary);

                        soldier = engineer;
                    }
                    catch (InvalidCorpsException ice)
                    {
                        continue;
                    }
                }
                else if (soldierType == "Commando")
                {
                    try
                    {
                        ICommando commando = CreateCommando(commandArgs, id, firstName, lastName, salary);

                        soldier = commando;
                    }
                    catch (InvalidCorpsException ice)
                    {
                        continue;
                    }
                }
                else if (soldierType == "Spy")
                {
                    soldier = CreateSpy(commandArgs, id, firstName, lastName);
                }

                if (soldier != null)
                {
                    this.soldiers.Add(soldier);
                }

                commandArgs = Console.ReadLine()
                              .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                              .ToArray();

                soldierType = commandArgs[0];
            }

            foreach (var soldier in this.soldiers)
            {
                Console.WriteLine(soldier);
            }
        }
示例#26
0
        public void Run()
        {
            string command;

            while ((command = Console.ReadLine()) != "End")
            {
                ISoldier soldier   = null;
                string[] cmdArgs   = command.Split();
                string   type      = cmdArgs[0];
                int      id        = int.Parse(cmdArgs[1]);
                string   firstName = cmdArgs[2];
                string   lastName  = cmdArgs[3];
                if (type == "Private")
                {
                    decimal salary = decimal.Parse(cmdArgs[4]);
                    soldier = new Private(id, firstName, lastName, salary);
                }
                else if (type == "LieutenantGeneral")
                {
                    soldier = AddGeneral(cmdArgs, id, firstName, lastName);
                }
                else if (type == "Engineer")
                {
                    decimal salary = decimal.Parse(cmdArgs[4]);
                    string  corps  = cmdArgs[5];

                    try
                    {
                        IEngineer engineer = CreateEngineer(cmdArgs, id, firstName, lastName, salary, corps);
                        soldier = engineer;
                    }
                    catch (InvalidCorpsException ice)
                    {
                        continue;
                    }
                }
                else if (type == "Commando")
                {
                    decimal salary = decimal.Parse(cmdArgs[4]);
                    string  corps  = cmdArgs[5];
                    try
                    {
                        ICommando commando = GetCommando(cmdArgs, id, firstName, lastName, salary, corps);
                        soldier = commando;
                    }
                    catch (InvalidCorpsException ice)
                    {
                        continue;
                    }
                }
                else if (type == "Spy")
                {
                    int codeNumber = int.Parse(cmdArgs[4]);
                    soldier = new Spy(id, firstName, lastName, codeNumber);
                }
                if (soldier != null)
                {
                    this.soldiers.Add(soldier);
                }
            }
            foreach (var soldier in this.soldiers)
            {
                Console.WriteLine(soldier);
            }
        }
 public void Init(IHumanResource ihr, IEngineer ie)
 {
     this.ihr = ihr;
     this.ie  = ie;
 }
        public void Run()
        {
            string cmd;

            while ((cmd = this.reader.ReadLine()) != END_INPUT)
            {
                string[] args        = cmd.Split(" ", StringSplitOptions.RemoveEmptyEntries).ToArray();
                string   soldierType = args[0];
                int      iD          = int.Parse(args[1]);
                string   firstName   = args[2];
                string   lastName    = args[3];

                ISoldier soldier = null;

                switch (soldierType)
                {
                case "Private":
                    decimal salary = decimal.Parse(args[4]);
                    soldier = CreatePrivate(iD, firstName, lastName, salary);
                    break;

                case "LieutenantGeneral":
                    salary = decimal.Parse(args[4]);
                    ILieutenantGeneral general = CreateLieutenant(args, iD, firstName, lastName, salary);
                    soldier = general;
                    break;

                case "Engineer":
                    salary = decimal.Parse(args[4]);
                    string corps = args[5];

                    try
                    {
                        IEngineer engineer = CreateEngineer(args, iD, firstName, lastName, salary, corps);
                        soldier = engineer;
                    }
                    catch (InvalideCorpsException)
                    {
                        continue;
                    }

                    break;

                case "Commando":
                    salary = decimal.Parse(args[4]);
                    corps  = args[5];
                    try
                    {
                        ICommando commando = CreateCommando(args, iD, firstName, lastName, salary, corps);
                        soldier = commando;
                    }
                    catch (InvalideCorpsException)
                    {
                        continue;
                    }

                    break;

                case "Spy":
                    int codeNumber = int.Parse(args[4]);
                    soldier = new Spy(iD, firstName, lastName, codeNumber);
                    break;
                }

                if (soldier != null)
                {
                    this.soldiers.Add(soldier);
                }
            }

            foreach (var soldier in this.soldiers)
            {
                this.writer.Writeline(soldier.ToString());
            }
        }
示例#29
0
        public void Run()
        {
            string command;

            while ((command = this.reader.ReadLine()) != "End")
            {
                string[] cmdArgs = command
                                   .Split(' ', StringSplitOptions.RemoveEmptyEntries)
                                   .ToArray();
                string   soldierType = cmdArgs[0];
                int      id          = int.Parse(cmdArgs[1]);
                string   firstName   = cmdArgs[2];
                string   lastName    = cmdArgs[3];
                ISoldier soldier     = null;
                if (soldierType == "Private")
                {
                    soldier = AddPrivate(cmdArgs, id, firstName, lastName);
                }
                else if (soldierType == "LieutenantGeneral")
                {
                    LieutenantGeneral general = AddGeneral(cmdArgs, id, firstName, lastName);
                    soldier = general;
                }
                else if (soldierType == "Engineer")
                {
                    decimal salary = decimal.Parse(cmdArgs[4]);
                    string  corps  = cmdArgs[5];
                    try
                    {
                        IEngineer engineer = AddSoldier(cmdArgs, id, firstName, lastName, salary, corps);
                        soldier = engineer;
                    }
                    catch (InvalidCorpsExeption ice)
                    {
                        continue;
                    }
                }
                else if (soldierType == "Commando")
                {
                    decimal salary = decimal.Parse(cmdArgs[4]);
                    string  corps  = cmdArgs[5];
                    try
                    {
                        ICommando commando = GetCommando(cmdArgs, id, firstName, lastName, salary, corps);
                        soldier = commando;
                    }
                    catch (InvalidCorpsExeption ice)
                    {
                        continue;
                    }
                }
                else if (soldierType == "Spy")
                {
                    int codeNumber = int.Parse(cmdArgs[4]);
                    soldier = new Spy(id, firstName, lastName, codeNumber);
                }
                if (soldier != null)
                {
                    this.soldiers.Add(soldier);
                }
            }
            foreach (var soldier in this.soldiers)
            {
                this.writer.WriteLine(soldier.ToString());
            }
        }
 public override void ConsultWith(IEngineer engineer)
 {
     engineer.IAm(this);
 }