public ActionResult Search(SearchViewModel viewModel) { var minCourtDate = viewModel.MinCourtDate.HasValue ? viewModel.MinCourtDate.Value : DateTime.MinValue; var maxCourtDate = viewModel.MaxCourtDate.HasValue ? viewModel.MaxCourtDate.Value : DateTime.MaxValue; var minViolations = viewModel.MinViolations.HasValue ? viewModel.MinViolations.Value : Int32.MinValue; var maxViolations = viewModel.MaxViolations.HasValue ? viewModel.MaxViolations.Value : 1000000; var violations = Enumerable.Empty<Violation>(); var citations = Enumerable.Empty<Citation>(); using (GHVEntities context = new GHVEntities()) { violations = context.Violations.ToList(); citations = context.Citations.Where(c => c.CourtDateDate >= minCourtDate && c.CourtDateDate <= maxCourtDate).ToList(); } foreach (var citation in citations) { citation.Violations = violations.Where(v => v.CitationNumber != null && v.CitationNumber.GetValueOrDefault().ToString() == citation.CitationNumber); } var citationsWithViolations = citations.Where(c => (c.Violations ?? Enumerable.Empty<Violation>()).Count() >= minViolations && (c.Violations ?? Enumerable.Empty<Violation>()).Count() <= maxViolations); viewModel.SearchResults = citationsWithViolations.Select(c => new SearchResult() { CitationNumber = c.CitationNumber, LicenseNumber = c.DriversLicenseNumber, CourtDate = c.CourtDateDate.GetValueOrDefault(), NumberOfViolations = c.Violations.Count() }); return View(viewModel); }
public static void MyAwesomeWebJobMethod() { using (GHVEntities ghv = new GHVEntities()) { DateTime dt = DateTime.Now.Date.AddDays(7); var items = ghv.Citations.Where(p => p.CourtDateDate >= dt && p.CourtDateDate <= dt).ToList(); CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["AzureWebJobsStorage"]); // Create the queue client. CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient(); // Retrieve a reference to a queue. CloudQueue queue = queueClient.GetQueueReference("reminderqueue"); // Create the queue if it doesn't already exist. queue.CreateIfNotExists(); foreach (var cit in items) { int citid = 0; int.TryParse(cit.CitationNumber, out citid); foreach(var ucs in ghv.UserCitations.Where(p => p.CitationId == cit.Id)) { foreach (var u in ghv.Users.Where(p => p.Id == ucs.UserId)) { if (u.PhoneNumber != null && u.PhoneNumber != "" && u.PhoneNumberVerificationDate != null) { ToSend send = new ToSend() { To = TwilioHelper.FormatPhoneNumber(u.PhoneNumber), Message = string.Format("You have an upcoming court date on {0} for citation #{1}", cit.CourtDateDate.Value.ToShortDateString(), cit.CitationNumber) }; // Create a message and add it to the queue. CloudQueueMessage message = new CloudQueueMessage(JsonConvert.SerializeObject(send)); queue.AddMessage(message); } } } } } }
public CitationController(GHVEntities entities, UserSessionVerificationService vertificationService) { this.entities = entities; this.vertificationService = vertificationService; }
public UserSessionVerificationService(GHVEntities entities, RedisConnectionManager conman) { this.entities = entities; this.conman = conman; }
public ViolationController(GHVEntities entities) { this.entities = entities; }
public TwilioController(GHVEntities context, UserSessionVerificationService u) { _context = context; _userSessionVerificationService = u; }
public UserController(GHVEntities entities) { this.entities = entities; }
public ConversationContext Execute(ConversationState state, string message) { var responseMessage = new StringBuilder(); var citations = Enumerable.Empty<Citation>(); using (var context = new GHVEntities()) { citations = context.Citations.Where(citation => citation.DriversLicenseNumber == message || citation.CitationNumber == message).ToList(); } if (citations.Count() < 1) { responseMessage.Append("We could not find any tickets that match that license or ticket number"); } else { responseMessage.AppendLine("We found the following citations."); var count = 1; foreach (var citation in citations) { responseMessage.AppendLine(); responseMessage.AppendFormat("Press {0} for the citation with the court date on {1:dddd MMMM d}", count, citation.CourtDateDate); responseMessage.AppendLine(); count++; } responseMessage.AppendLine(); } return new ConversationContext() { ResponseMessage = responseMessage.ToString(), Gather = true }; }
public ConversationContext Execute(ConversationState state, string message) { var responseMessage = new StringBuilder(); var citations = Enumerable.Empty<Citation>(); using (var context = new GHVEntities()) { citations = context.Citations.Where(citation => citation.DriversLicenseNumber == message || citation.CitationNumber == message).ToList(); } if (citations.Count() < 1) { responseMessage.Append("We could not find any tickets that match that license or ticket number"); } else { responseMessage.AppendLine("We found the following citation(s)"); var count = 1; foreach (var citation in citations) { responseMessage.AppendLine(); responseMessage.AppendFormat("{0}) Date: {1:MM/dd/yyyy} Fine: {2:C}", count, citation.CourtDateDate, citation.TotalFees); responseMessage.AppendLine(); count++; } responseMessage.AppendLine(); responseMessage.Append("Select a ticket to see more information"); } return new ConversationContext() { ResponseMessage = responseMessage.ToString() }; }
public CourtDataController(GHVEntities context) { _context = context; }