public async Task <ActionResult> Contact(string shortcut)
        {
            if (shortcut == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Photoshop photoshop = await _context.Photoshops.SingleOrDefaultAsync(x => x.Shortcut == shortcut);

            if (photoshop == null)
            {
                return(HttpNotFound());
            }

            var model = new ContactViewData
            {
                Item = Mapper.Map <PhotoshopViewModel.Summary>(photoshop)
            };

            //     model.Categorieses = _context.Categories.ToList().As<IList<CategoryViewModel>>();
            return(View(model));
        }
        public static ContactViewModel RetrieveContactViewModel(ContactListState contactListState, List <Int32> userAccountIds, Int32 userId, HttpContextBase httpContext, string searchValue = "")
        {
            FilterViewModel userFilterViewModel = null;

            if ((httpContext != null) && (httpContext.Session[SessionHelper.FilterViewModel] != null))
            {
                userFilterViewModel = new FilterViewModel().FromXml(httpContext.Session[SessionHelper.FilterViewModel].ToString());
            }
            else
            {
                // possible state retrieval?
                userFilterViewModel = new FilterViewModel();
            }

            var contactViewData = ContactServiceFacade.RetrieveContactsView(userAccountIds,
                                                                            contactListState.BoundDate,
                                                                            contactListState.CurrentPage,
                                                                            contactListState.SortColumn.GetStringValue(),
                                                                            contactListState.SortDirection,
                                                                            userId,
                                                                            searchValue,
                                                                            contactListState.ContactStatusFilter,
                                                                            userFilterViewModel.CompanyId,
                                                                            userFilterViewModel.ChannelId,
                                                                            userFilterViewModel.DivisionId,
                                                                            contactListState.LoanPurposeFilter,
                                                                            userFilterViewModel.BranchId,
                                                                            contactListState.ConciergeFilter
                                                                            );

            if (contactViewData == null)
            {
                contactViewData = new ContactViewData {
                    ContactsItems = new List <ContactViewItem>(), TotalItems = 0, TotalPages = 0
                };
            }
            // Set paging numbers
            else if (userAccountIds.Any())
            {
                contactViewData.TotalItems = contactViewData.TotalItems;
                contactViewData.TotalPages = contactViewData.TotalItems / 10;
                if ((contactViewData.TotalItems % 10) != 0)
                {
                    contactViewData.TotalPages++;
                }
            }

            var contactViewModel = new ContactViewModel()
            {
                Contacts   = contactViewData.ContactsItems,
                PageCount  = contactViewData.TotalPages,
                TotalItems = contactViewData.TotalItems,
                ProspectLO = PopulateProspectLoanOfficers(httpContext),
                ProspectLOConciergeList = PopulateLoanOfficersForProspectDropdown(httpContext)
            };


            ContactGridHelper.ProcessPagingOptions(contactListState, contactViewModel);
            ContactViewModelHelper.PopulateProspectStatuses(contactViewModel);
            ContactGridHelper.ApplyClassCollection(contactViewModel);

            contactViewModel.ProspectStatusList = ContactViewModelHelper.PopulateProspectStatusList(contactViewModel);

            contactViewModel.LoanPurposeList = new List <LoanTransactionType>(Enum.GetValues(typeof(LoanTransactionType)).Cast <LoanTransactionType>().Skip(1));

            ContactDataHelper contactDataHelper = new ContactDataHelper();

            contactDataHelper.PopulateConciergeFilterList(contactListState, httpContext, contactViewModel);

            return(contactViewModel);
        }