static void Main(string[] args) { System.Console.WriteLine("Create Client"); ClientBLL clientBLL = new ClientBLL(); IClient clientThomas = clientBLL.Create("Thomas", new DateTime(1980, 3, 25)); System.Console.WriteLine("Create Plan"); PlanBLL planBLL = new PlanBLL(); IPlan planNoSMS; try { planNoSMS = planBLL.Create("No SMS <3", -2, 0, 15, -.30M, 0.15M, true); } catch (DbEntityValidationException dbEx) { printValidationException(dbEx); planNoSMS = planBLL.Create("No SMS ", -1, 0, 15, .30M, 0.15M, true); } System.Console.WriteLine("Create Subscription"); SubscriptionBLL subscriptionBLL = new SubscriptionBLL(); ISubscription subscriptionThomas = subscriptionBLL.Create( planNoSMS.GetPlanId(), clientThomas.GetClientId(), "06234235262", DateTime.Now, null); String phoneNumber = subscriptionThomas.GetPhoneNumber(); System.Console.WriteLine("Searching client by phone number : " + phoneNumber); IClient clientThomas2 = clientBLL.GetByPhoneNumber(phoneNumber); if (clientThomas2 != null) { System.Console.WriteLine("client Thomas found by phone number : " + clientThomas2.GetClientId()); } else { System.Console.WriteLine("client not found"); } System.Console.WriteLine("Update phone number"); subscriptionThomas.SetPhoneNumber("0623425262"); subscriptionBLL.Update(subscriptionThomas); System.Console.WriteLine(); System.Console.WriteLine("List all clients"); foreach (IClient client in clientBLL.GetAll()) { System.Console.WriteLine(client.GetName() + " id " + client.GetClientId() + " borne on " + client.GetBirthday().ToShortDateString()); } System.Console.WriteLine(); System.Console.WriteLine("List all plans"); foreach (IPlan plan in planBLL.GetAll()) { System.Console.WriteLine(plan.GetName() + " id " + plan.GetPlanId()); } System.Console.WriteLine(); System.Console.WriteLine("List all subscriptions"); foreach (ISubscription subscription in subscriptionBLL.GetAll()) { System.Console.WriteLine(subscription.GetPhoneNumber() + " id " + subscription.GetSubscriptionId()); } System.Console.WriteLine(); System.Console.WriteLine("Creating some SMS and Call History"); List <IHistory> Histories = new List <IHistory>(); HistoryBLL historyBLL = new HistoryBLL(); string[] phone_nums = { "(1) (415) 123-1234", "(415) 123-1234", "1-800-123-1234", "206/782-8410", "206.782.8410", "05324225543", "+335324225543", "206 782 8410 ", "206-782-8410", "(206) 782-8410", "555-555-5555", "05324+343" }; foreach (string phone_num in phone_nums) { try { System.Console.WriteLine("Create hist with : " + phone_num); ISMSHistory history = historyBLL.CreateSMS(subscriptionThomas.GetSubscriptionId(), DateTime.Now, phone_num, "+33"); ICallHistory call = historyBLL.CreateVoice(subscriptionThomas.GetSubscriptionId(), DateTime.Now, phone_num, "+33", 35); Thread.Sleep(1000); Histories.Add(history); Histories.Add(call); } catch (InvalidFormatException e) { System.Console.WriteLine(e.Message); } catch (DbEntityValidationException dbEx) { printValidationException(dbEx); } } System.Console.WriteLine(); System.Console.WriteLine("List all history"); foreach (IHistory histor in historyBLL.GetAll()) { if (histor is ICallHistory) { System.Console.WriteLine("Phone call : " + histor.GetTimestamp() + " FROM : " + subscriptionBLL.GetById(histor.GetSubscriptionId()).GetPhoneNumber() + " TO : " + histor.GetDestinationNumber() + " DURING : " + ((ICallHistory)histor).GetDuration() + " Seconds"); } else { System.Console.WriteLine("SMS : " + histor.GetTimestamp() + " FROM : " + subscriptionBLL.GetById(histor.GetSubscriptionId()).GetPhoneNumber() + " TO : " + histor.GetDestinationNumber()); } historyBLL.Delete(histor); } System.Console.WriteLine(); System.Console.WriteLine("Creating some options"); OptionBLL optionBLL = new OptionBLL(); IOption option = optionBLL.Create("SMSBooster", 0, 100, 10, false); System.Console.WriteLine(); System.Console.WriteLine("List all options"); foreach (IOption opt in optionBLL.GetAll()) { System.Console.WriteLine("Option : " + opt.GetName() + " minute limit : " + opt.GetMinuteLimit() + " sms limit : " + opt.GetSMSLimit() + " price : " + opt.GetPrice() + " is available : " + opt.GetIsAvailable()); } System.Console.WriteLine(); System.Console.WriteLine("Creating SubOption"); SubOptionBLL subOptionBLL = new SubOptionBLL(); ISubOption subOption = subOptionBLL.Create(subscriptionThomas.GetSubscriptionId(), option.GetOptionId(), DateTime.Today, DateTime.Today.AddDays(10)); System.Console.WriteLine(); System.Console.WriteLine("Listing SubOptions"); foreach (ISubOption opt in subOptionBLL.GetAll()) { string res = "SubOption subscriptor : " + subscriptionBLL.GetById(opt.GetSubscriptionId()).GetPhoneNumber() + " for option : " + optionBLL.GetById(opt.GetOptionId()).GetName() + " Started on : " + opt.GetStartDate().ToShortDateString(); if (opt.GetEndDate() != null) { res += " Ending on : " + ((DateTime)opt.GetEndDate()).ToShortDateString(); } System.Console.WriteLine(res); } System.Console.WriteLine(); System.Console.WriteLine("Trying to break the system "); int nb = 0; try { clientBLL.Create("Thoma$", new DateTime(1980, 3, 25)); System.Console.WriteLine("Got {0} :) ", ++nb); } catch (DbEntityValidationException dbEx) { printValidationException(dbEx); } try { clientBLL.Create("Thomas", DateTime.Today.AddDays(3)); System.Console.WriteLine("Got {0} :) ", ++nb); } catch (DbEntityValidationException dbEx) { printValidationException(dbEx); } try { planBLL.Create("<3", 0, 0, 0, 0, 0, false); System.Console.WriteLine("Got {0} :) ", ++nb); } catch (DbEntityValidationException dbEx) { printValidationException(dbEx); } try { planBLL.Create("love", -2, -2, -2, -2, -2, false); System.Console.WriteLine("Got one :) "); nb++; } catch (DbEntityValidationException dbEx) { printValidationException(dbEx); } try { subscriptionBLL.Create(1, 1, "+3345566786", DateTime.Today, DateTime.Today.AddDays(-3)); System.Console.WriteLine("Got one :) "); nb++; } catch (DbEntityValidationException dbEx) { printValidationException(dbEx); } try { optionBLL.Create("<3", -2, -2, -1, true); System.Console.WriteLine("Got one :) "); nb++; } catch (DbEntityValidationException dbEx) { printValidationException(dbEx); } try { subOptionBLL.Create(1, 1, DateTime.Today, DateTime.Today.AddDays(-3)); System.Console.WriteLine("Got one :) "); nb++; } catch (DbEntityValidationException dbEx) { printValidationException(dbEx); } subOptionBLL.Delete(subOption); optionBLL.Delete(option); subscriptionBLL.Delete(subscriptionThomas); clientBLL.Delete(clientThomas); planBLL.Delete(planNoSMS); System.Console.Read(); }