public ActionResult SearchClient(string clientName) { DashboardViewModel model = new DashboardViewModel(); string UserId = User.Identity.GetUserId(); LogicService cmLogic = new LogicService(); //Get clients for the user that match the search string var allClientsForUser = cmLogic.GetClientsForUser(UserId); List <ClientDTO> matchingClients = new List <ClientDTO>(); foreach (ClientDTO client in allClientsForUser) { //Only return search result if the search term is 2 characters or more if (clientName.Length >= 2) { //Make case insensitive //Return client if client name matches or the search term contains the client name if ((client.Name.ToLower().Contains(clientName.ToLower())) || (client.Name.ToLower() == clientName.ToLower())) { matchingClients.Add(client); } } } model.ClientsForUser.ClientsToDisplay = matchingClients; return(View(model)); }
public ActionResult Result(int statusCode, string message) { DashboardViewModel model = new DashboardViewModel(); string UserId = User.Identity.GetUserId(); LogicService cmLogic = new LogicService(); //Get jobs for user for dashboard view model model.ClientsForUser.ClientsToDisplay = cmLogic.GetClientsForUser(UserId); var jobsForUser = cmLogic.GetJobsForUser(UserId); //Remove any completed jobs var incompleteJobs = jobsForUser.Where(j => j.Complete == false).ToList(); //Remove any jobs with a start date greater than 30 days from now var upcomingJobs = incompleteJobs.Where(j => ((j.StartDate >= DateTime.Now) && (j.StartDate < DateTime.Now.AddDays(30)))).ToList(); //Sort jobs by start date List <jobDTO> sortedJobsForUser = new List <jobDTO>(); sortedJobsForUser = upcomingJobs.OrderBy(j => j.StartDate).ToList(); model.JobsForUser.JobsToDisplay = sortedJobsForUser; model.statusCode = statusCode; model.message = message; return(View(model)); }
public ActionResult ViewClient(int clientId) { string UserId = User.Identity.GetUserId(); var model = new ClientViewModel(); LogicService cmLogic = new LogicService(); //Acquire client var clientsForUser = cmLogic.GetClientsForUser(UserId); var matchingClient = clientsForUser.Where(cl => cl.Id == clientId); //Acquire jobs for client var jobsForUser = cmLogic.GetJobsForUser(UserId); var matchingJobsForClient = jobsForUser.Where(j => j.ClientId == clientId); //Split list into complete and incomplete lists var jobsForClientComplete = matchingJobsForClient.Where(j => j.Complete == true); var jobsForClientIncomplete = matchingJobsForClient.Where(j => j.Complete == false); //Sort jobs by start date var sortedJobsForClientComplete = jobsForClientComplete.OrderBy(j => j.StartDate).Reverse().ToList(); var sortedJobsForClientIncomplete = jobsForClientIncomplete.OrderBy(j => j.StartDate).ToList(); if (matchingClient.Count() > 0) { var client = matchingClient.First(); model.Name = client.Name; model.Email = client.Email; model.PhoneNumber = client.PhoneNumber; model.StreetAddress = client.Address.Street; model.City = client.Address.City; model.State = client.Address.State; model.Zip = client.Address.Zip; model.JobsForClientComplete = sortedJobsForClientComplete; model.JobsForClientIncomplete = sortedJobsForClientIncomplete; return(View(model)); } else { return(RedirectToAction("Result", "Dashboard", new { statusCode = 1, message = "Unable To Access Client Information" })); } }
public ActionResult ScheduleJob() { var model = new AddJobViewModel(); //Populate list box for displaying Service Type selection LogicService cmLogic = new LogicService(); List <SelectListItem> clientSelection = new List <SelectListItem>(); var clientOptions = cmLogic.GetClientsForUser(User.Identity.GetUserId()); foreach (ClientDTO c in clientOptions) { SelectListItem selectItem = new SelectListItem() { Text = c.Name, Value = c.Name }; clientSelection.Add(selectItem); } model.JobOptions.ClientOptions = clientSelection; //Populate dropdown for displaying Client selection List <SelectListItem> serviceTypeSelection = new List <SelectListItem>(); var serviceTypeOptions = cmLogic.GetServiceTypes(); foreach (ServiceTypeDTO st in serviceTypeOptions) { SelectListItem selectItem = new SelectListItem() { Text = st.Name, Value = st.Name }; serviceTypeSelection.Add(selectItem); } model.JobOptions.ServiceTypeOptions = serviceTypeSelection; //Return updated view model with selection lists for service types and clients return(View(model)); }