Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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" }));
            }
        }
Beispiel #4
0
        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));
        }