Example #1
0
        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);
        }
Example #2
0
        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);

                            }
                        }
                    }
                }
            }
        }
Example #3
0
 public CitationController(GHVEntities entities, UserSessionVerificationService vertificationService)
 {
     this.entities = entities;
     this.vertificationService = vertificationService;
 }
 public UserSessionVerificationService(GHVEntities entities, RedisConnectionManager conman)
 {
     this.entities = entities;
     this.conman = conman;
 }
Example #5
0
 public ViolationController(GHVEntities entities)
 {
     this.entities = entities;
 }
Example #6
0
 public TwilioController(GHVEntities context, UserSessionVerificationService u)
 {
     _context = context;
     _userSessionVerificationService = u;
 }
Example #7
0
 public UserController(GHVEntities entities)
 {
     this.entities = entities;
 }
Example #8
0
        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
            };
        }
Example #9
0
        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()
            };
        }
Example #10
0
 public CourtDataController(GHVEntities context)
 {
     _context = context;
 }