public BasePolicy ReturnBaseObject(string json) { BasePolicy result = new BasePolicy(); var jsonType = (IJsonType)handler.Handle(json); if (handler.errors != null) { foreach (var item in handler.errors) { Console.WriteLine(item.ToString()); } } if (jsonType is null) { Console.WriteLine("Ошибка конвертации"); } else { if (jsonType.GetType() == typeof(BasePolicy)) { return((BasePolicy)jsonType); } else { result = mapper.Map <BasePolicy>(jsonType); } } return(result); }
public void CreatesCorrectPolicy() { var basePolicy = new BasePolicy(); var xml = basePolicy.GetXml().ToString(); xml.Should().Be("<base />"); }
static void Main(string[] args) { try { AutoMapperConfigure(); var baseType = new BaseTypeHandler(); var firstType = new FirstTypeHandler(); var secondType = new SecondTypeHandler(); var thirdType = new ThirdTypeHandler(); BasePolicy basePolicies = new BasePolicy(); Context context; while (!JsonTypeChoose()) { } switch (jsonType) { case 0: context = new Context(baseType, mapper); basePolicies = context.ReturnBaseObject(json0); break; case 1: context = new Context(firstType, mapper); basePolicies = context.ReturnBaseObject(json1); break; case 2: context = new Context(secondType, mapper); basePolicies = context.ReturnBaseObject(json2); break; case 3: context = new Context(thirdType, mapper); basePolicies = context.ReturnBaseObject(json3); break; case 4: // Тип не определен и определяется в зависимости от переданного json baseType.SetNext(firstType).SetNext(secondType).SetNext(thirdType); string[] selectableJson = new string[4] { json0, json1, json2, json3 }; Random rand = new Random(); context = new Context(baseType, mapper); basePolicies = context.ReturnBaseObject(selectableJson[rand.Next(0, selectableJson.Length)]); break; } Console.WriteLine(JsonConvert.SerializeObject(basePolicies)); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); }
public static iPolicy generateDateTimePolicyByCategory(string category, DateTime minDate, DateTime maxDate) { if (minDate > maxDate) { return(null); } iPolicy policy = new BasePolicy(p => p.info.category.Equals(category), (p, u) => DateTime.Now <minDate | DateTime.Now> maxDate); return(policy); }
public static iPolicy generateWeeklyTimePolicyByProduct(string name, string category, string man, int minDay, int minHour, int maxDay, int maxHour) { if (minDay > maxDay | minDay < 1 | minDay > 7 | maxDay < 1 | maxDay > 7 | minHour < 0 | minHour > 23 | maxHour < 0 | maxHour > 23) { return(null); } iPolicy policy = new BasePolicy(p => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (Product p, aUser u) => DateTime.Now.Day <minDay | DateTime.Now.Day> maxDay | (DateTime.Now.Day == minDay & DateTime.Now.Hour < minHour) | (DateTime.Now.Day == maxDay & DateTime.Now.Hour > maxHour)); return(policy); }
public static iPolicy generateDateTimePolicyByProduct(string name, string category, string man, DateTime minDate, DateTime maxDate) { if (minDate > maxDate) { return(null); } iPolicy policy = new BasePolicy(p => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (p, u) => DateTime.Now <minDate | DateTime.Now> maxDate); return(policy); }
public bool addDateTimePolicyByCategory(string category, DateTime minDate, DateTime maxDate) { if (minDate > maxDate) { return(false); } iPolicy policy = new BasePolicy(p => p.info.category.Equals(category), (p, u) => DateTime.Now <minDate | DateTime.Now> maxDate); this.purchasePolicies.Add(policy); return(true); }
public bool addWeeklyTimePolicyByProduct(string name, string category, string man, int minDay, int minHour, int maxDay, int maxHour) { if (minDay > maxDay | minDay < 1 | minDay > 7 | maxDay < 1 | maxDay > 7 | minHour < 0 | minHour > 23 | maxHour < 0 | maxHour > 23) { return(false); } iPolicy policy = new BasePolicy(p => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (Product p, aUser u) => DateTime.Now.Day <minDay | DateTime.Now.Day> maxDay | (DateTime.Now.Day == minDay & DateTime.Now.Hour < minHour) | (DateTime.Now.Day == maxDay & DateTime.Now.Hour > maxHour)); this.purchasePolicies.Add(policy); return(true); }
public bool addDateTimePolicyByProduct(string name, string category, string man, DateTime minDate, DateTime maxDate) { if (minDate > maxDate) { return(false); } iPolicy policy = new BasePolicy(p => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (p, u) => DateTime.Now <minDate | DateTime.Now> maxDate); this.purchasePolicies.Add(policy); return(true); }
public void addMinAmountPolicyByCategory(string category, int minAmount) { iPolicy policy = new BasePolicy(p => p.info.category.Equals(category), (Product p, aUser u) => p.amount >= minAmount); this.purchasePolicies.Add(policy); }
public void addMinAmountPolicyByProduct(string name, string category, string man, int minAmount) { iPolicy policy = new BasePolicy(p => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (Product p, aUser u) => p.amount >= minAmount); this.purchasePolicies.Add(policy); }
public void addDailyPolicyByCategory(string category, int hour) { iPolicy policy = new BasePolicy(p => p.info.category.Equals(category), (Product p, aUser u) => DateTime.Now.Hour <= hour); this.purchasePolicies.Add(policy); }
public void addDailyPolicyByProduct(string name, string category, string man, int maxHour) { iPolicy policy = new BasePolicy(p => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (Product p, aUser u) => DateTime.Now.Hour <= maxHour); this.purchasePolicies.Add(policy); }
public static iPolicy generateDailyPolicyByCategory(string category, int hour) { iPolicy policy = new BasePolicy(p => p.info.category.Equals(category), (Product p, aUser u) => DateTime.Now.Hour <= hour); return(policy); }
public void addAgePolicyByProduct(string name, string category, string man, int minAge) { iPolicy policy = new BasePolicy((Product p) => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (Product p, aUser u) => u.getAge() >= minAge); this.purchasePolicies.Add(policy); }
// this is a class that has static methods // it provides services for generating buying policies public static iPolicy generateAgePolicyByProduct(string name, string category, string man, int minAge) { iPolicy policy = new BasePolicy((Product p) => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (Product p, aUser u) => u.getAge() >= minAge); return(policy); }
public static iPolicy generateAgePolicyByCategory(string category, int minAge) { iPolicy policy = new BasePolicy(p => p.info.category.Equals(category), (Product p, aUser u) => u.getAge() >= minAge); return(policy); }
public static iPolicy generateMinAmountPolicyByCategory(string category, int minAmount) { iPolicy policy = new BasePolicy(p => p.info.category.Equals(category), (Product p, aUser u) => p.amount >= minAmount); return(policy); }
public static iPolicy generateMinAmountPolicyByProduct(string name, string category, string man, int minAmount) { iPolicy policy = new BasePolicy(p => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (Product p, aUser u) => p.amount >= minAmount); return(policy); }
public void addAgePolicyByCategory(string category, int minAge) { iPolicy policy = new BasePolicy(p => p.info.category.Equals(category), (Product p, aUser u) => u.getAge() >= minAge); this.purchasePolicies.Add(policy); }
public static iPolicy generateDailyPolicyByProduct(string name, string category, string man, int maxHour) { iPolicy policy = new BasePolicy(p => p.info.Equals(ProductInfo.getProductInfo(name, category, man)), (Product p, aUser u) => DateTime.Now.Hour <= maxHour); return(policy); }