Ejemplo n.º 1
0
        public IEmergency Create(List <string> args)
        {
            var typeOfEmergencyToString = args[0].Replace("Register", Preffix);
            var name = args[1];

            EmergencyLevel emergencyLevel           = (EmergencyLevel)Enum.Parse(typeof(EmergencyLevel), args[2]);
            var            registrationTimeToString = args[3];
            var            lastParameter            = args[4];

            Type typeOfRegistrationTime        = typeof(RegistrationTime);
            var  constructorOfRegistrationTime = typeOfRegistrationTime.GetConstructor(new[] { typeof(string) });
            var  instanceOfRegistrationTime    = constructorOfRegistrationTime.Invoke(new object[] { registrationTimeToString });

            var allTypes               = Assembly.GetExecutingAssembly().GetTypes();
            var emergencyType          = allTypes.FirstOrDefault(t => t.Name == typeOfEmergencyToString);
            var constructorOfEmergency = emergencyType.GetConstructors().FirstOrDefault();

            var argsToPass = new object[args.Count - 1];

            argsToPass[0] = name;
            argsToPass[1] = emergencyLevel;
            argsToPass[2] = instanceOfRegistrationTime;

            if (typeOfEmergencyToString == "PublicHealthEmergency" || typeOfEmergencyToString == "PublicPropertyEmergency")
            {
                argsToPass[3] = int.Parse(lastParameter);
            }
            else
            {
                argsToPass[3] = lastParameter;
            }

            return((IEmergency)constructorOfEmergency.Invoke(argsToPass));
        }
 public PublicPropertyEmergency(string description, EmergencyLevel emergencyLevel, RegistrationTime registrationTime, int propertyDamage) : base(description, emergencyLevel, registrationTime)
 {
     this.PropertyDamage = propertyDamage;
 }
Ejemplo n.º 3
0
 public PublicOrderEmergency(string description, EmergencyLevel emergencyLevel, RegistrationTime registrationTime, string status)
     : base(description, emergencyLevel, registrationTime)
 {
     this.Status = status;
 }
Ejemplo n.º 4
0
 public OrderEmergency(string description, EmergencyLevel emergencyLevel, IRegistrationTime registrationTime, bool isSpecialCase)
     : base(description, emergencyLevel, registrationTime)
 {
     this.IsSpecialCase = isSpecialCase;
 }
Ejemplo n.º 5
0
 protected BaseEmergency(string description, EmergencyLevel emergencyLevel, RegistrationTime registrationTime)
 {
     this.Description      = description;
     this.emergencyLevel   = emergencyLevel;
     this.registrationTime = registrationTime;
 }
Ejemplo n.º 6
0
 public PublicHealthEmergency(string description, EmergencyLevel emergencyLevel, RegistrationTime registrationTime, int casualties)
     : base(description, emergencyLevel, registrationTime)
 {
     this.Casualties = casualties;
 }
 public PublicHealthEmergency(string description, EmergencyLevel emergencyLevel, IRegistrationTime registrationTime, int numberOfCasualties)
     : base(description, emergencyLevel, registrationTime)
 {
     this.NumberOfCasualties = numberOfCasualties;
 }