예제 #1
0
        /// <summary>
        /// Repair robots in max range.
        /// </summary>
        /// <returns></returns>
        public RepairAnswerCommand Repair()
        {
            RepairAnswerCommand answer = new RepairAnswerCommand();

            addRobotTask(RepairAsync(answer));
            return(answer);
        }
예제 #2
0
        /// <summary>
        /// Repair robots closer then <code>maxDistance</code>.
        /// </summary>
        /// <param name="maxDistance">How far can be robots witch will be repaired.</param>
        /// <returns></returns>
        public RepairAnswerCommand Repair(int maxDistance)
        {
            RepairAnswerCommand answer = new RepairAnswerCommand();

            addRobotTask(RepairAsync(answer, maxDistance));
            return(answer);
        }
예제 #3
0
        /// <summary>
        /// Repair robots closer then <code>maxDistance</code>. And send it to server asynchronously.
        /// </summary>
        /// <param name="destination">Where to fill answer data.</param>
        /// <param name="maxDistance">How far can be robots witch will be repaired.</param>
        /// <returns></returns>
        private async Task <RepairAnswerCommand> RepairAsync(RepairAnswerCommand destination, int maxDistance)
        {
            await sendCommandAsync(new RepairCommand(maxDistance));

            RepairAnswerCommand answer = await receiveCommandAsync <RepairAnswerCommand>();

            destination.FillData(answer);
            return(answer);
        }
            public override bool IsTransferable(ACommand c)
            {
                RepairAnswerCommand command = c as RepairAnswerCommand;

                if (command != null)
                {
                    cache.Cached(command, new RepairAnswerCommandV1_0(command.SUCCESS));
                    return(true);
                }
                return(false);
            }