Loading...
nickwork avatar nickwork 657 Точки
Best Answer

1 и 2 заедно https://easyupload.io/j1xzhg

0
Milko123 avatar Milko123 14 Точки

Благодаря! Честно казано въпреки, че ми даде готово решение, което работи, не мога да разбера как се получава връзката в контролера за принтиране с метода History. Също така къде открояваме кой робот на каква процедура принадлежи и каква е ролята на колекция procedures? 

0
nickwork avatar nickwork 657 Точки

Класът контролер има метод хистори, но ако погледнеш класа процедура, ще видиш ,че и там има също фунцкия с това име хистори, която има тази функционалност

 public abstract class Procedure : IProcedure

public string History()
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine($"{this.GetType().Name}"); // дава името на процедурата

            foreach (var robot in this.robots)
            {
                sb.AppendLine($"{robot.ToString()}");               
            }

            return sb.ToString().TrimEnd();
        }

....тя пък от своя страна вика метод, който е от класа робот (override наToString() метода...името на процедурата я взимаме от тук  ($"{this.GetType().Name}")) който пък от своя страна дава инфо за робота (this.GetType().Name, this.Name, this.happiness, this.energy);)

 

0
Milko123 avatar Milko123 14 Точки

Добре, но примерно в условието пише при Hystory "Returns information about all robots which had current procedure type in the format:", което за мен значи, че  ако се извика команда Hystory Polish това значи, че трябва да се принтират всички роботи, които са преминали Polish. В такъв случай не разбирам листа за процедури в контролера как прави връзката с това, кои роботи каква процедура са преминали. Видях че има Dictionary, но и там не примерно не се казва Key - Procedure, Value - List<IRobot>, които са преминали процедура от даден тип. Може би не разбирам условието

0
nickwork avatar nickwork 657 Точки

Това е метода от класа контролер:

 public string History(string procedureType)
        {
            IProcedure procedure = this.procedures.FirstOrDefault(x => x.GetType().Name == procedureType);

            return procedure.History();
        }

Той приема име на процедура, с това парче код ( IProcedure procedure = this.procedures.FirstOrDefault(x => x.GetType().Name == procedureType); бъркам в колекцията private List<IProcedure> procedures, която се намира в този клас контролер и взимам процедурата с името, което са ми дали като вход. След това извиквам на самата процедура метода procedure.History();, който пък от своя страна ми връща стринг билдера с информацията от предното ми обяснение... (обърни внимание, че всяка процедура има своя колекция с роботи, които влизат в колекцията като извикаме метода DoService())...пробвай да дебъгнеш с някакви данни, имаш цялото решение, следи променливите и смятам че ще ти стане ясно кое от къде се взима..

0
Milko123 avatar Milko123 14 Точки

Аха разбрах. Момента, който ми убягваше е, че всяка процедура си генерира собствена колекция, която се пълни с роботите, които са я преминали, иначе другото ми е ясно. Благодаря!

0
04/08/2020 19:46:12
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.