Ejemplo n.º 1
0
        public static SearchResult GetAllMarketJobs(MarketJobSearchModel model, Login login)
        {
            var searchResult = new SearchResult {
                SearchCount = 0
            };

            return(searchResult);
        }
Ejemplo n.º 2
0
        public ActionResult MyMarketJobs(MarketJobSearchModel model)
        {
            var user  = User.Identity.Name;
            var login = AccountService.GetLoginByEmail(user);

            model.IsOwnerView = true;
            if (model.SortOrder == null)
            {
                model.SortOrder = "Latest Listing";
            }
            var result = JobService.GetAllMarketJobs(model, login);

            model.PagedInput = new PagedInput
            {
                ActionName      = "Jobs",
                ControllerName  = "Manage",
                PagedLinkValues = new RouteValueDictionary(new { SortOrder = model.SortOrder, SearchString = model.SearchString })
            };
            var rvr        = new RouteValueDictionary(new { SearchString = model.SearchString });
            var sortOrders = new List <SortOrderModel>();

            sortOrders.Add(new SortOrderModel {
                SortOrder = "Highest New Quotes", ActionName = "MyMarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Highest New Quotes")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Lowest New Quotes", ActionName = "MyMarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Lowest New Quotes")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Title", ActionName = "MyMarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Title")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Title(Desc)", ActionName = "MyMarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Title(Desc)")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Lowest Budget", ActionName = "MyMarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Lowest Budget")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Highest Budget", ActionName = "MyMarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Highest Budget")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Earliest Listing", ActionName = "MyMarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Earliest Listing")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Latest Listing", ActionName = "MyMarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Latest Listing")
            });
            model.SortOrders  = sortOrders;
            model.SearchCount = result.SearchCount;
            if (String.IsNullOrWhiteSpace(model.SearchString))
            {
                model.Page = 1;
            }
            model.PageCount         = result.Items.PageCount;
            model.Items             = result.Items;
            model.EditUrl           = "/Jobs/Home/EditJobFromMarket";
            model.DeleteUrl         = "/Jobs/Home/RemoveJobFromMarket";
            TempData["CurrentLink"] = "MarketJobsOwner";
            return(View(model));
        }
Ejemplo n.º 3
0
        public ActionResult MarketJobs(MarketJobSearchModel model)
        {
            var user  = User.Identity.Name;
            var login = AccountService.GetLoginByEmail(user);

            model.IsOwnerView = false;
            if (model.SortOrder == null)
            {
                model.SortOrder = "Latest Listing";
            }
            var result = JobService.GetAllMarketJobs(model, login);

            model.PagedInput = new PagedInput
            {
                ActionName      = "MarketJobs",
                ControllerName  = "Home",
                PagedLinkValues = new RouteValueDictionary(new { SortOrder = model.SortOrder, SearchString = model.SearchString })
            };
            var rvr        = new RouteValueDictionary(new { SearchString = model.SearchString });
            var sortOrders = new List <SortOrderModel>();

            sortOrders.Add(new SortOrderModel {
                SortOrder = "Title", ActionName = "MarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Title")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Title(Desc)", ActionName = "MarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Title(Desc)")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Lowest Budget", ActionName = "MarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Lowest Budget")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Highest Budget", ActionName = "MarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Highest Budget")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Earliest Listing", ActionName = "MarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Earliest Listing")
            });
            sortOrders.Add(new SortOrderModel {
                SortOrder = "Latest Listing", ActionName = "MarketJobs", RouteValues = rvr.AddRouteValue("SortOrder", "Latest Listing")
            });
            model.IsUserServiceSupply = CompanyService.IsUserServiceSupplier(user);
            model.IsProfileComplete   = CompanyService.IsProfileComplete(login);
            model.SortOrders          = sortOrders;
            model.SearchCount         = result.SearchCount;
            if (String.IsNullOrWhiteSpace(model.SearchString))
            {
                model.Page = 1;
            }
            model.PageCount         = result.Items.PageCount;
            model.Items             = result.Items;
            TempData["CurrentLink"] = "MarketJobs";
            return(View(model));
        }
Ejemplo n.º 4
0
 public ActionResult MarketJobs(MarketJobSearchModel model)
 {
     TempData["CurrentLink"] = "MarketJobs";
     return(View());
 }
Ejemplo n.º 5
0
        public static SearchResult GetAllMarketJobs(MarketJobSearchModel model, Login login)
        {
            using (var db = new KeysEntities())
            {
                var data               = db.TenantJobRequest.Where(x => x.JobStatusId == 1);
                var ownerJobRequests   = data.Where(x => x.OwnerId == login.Id);
                var ownerJobRequestsId = ownerJobRequests.Select(x => x.Id);
                if (model.IsOwnerView)
                {
                    data = ownerJobRequests;
                }
                var result = data.Select(x => new MarketJobViewModel
                {
                    Model = new MarketJobModel
                    {
                        Id             = x.Id,
                        PropertyId     = x.PropertyId,
                        Title          = x.Title,
                        JobDescription = x.JobDescription,
                        MaxBudget      = x.MaxBudget,
                        MediaFiles     = x.TenantJobRequestMedia.Select(y => new MediaModel
                        {
                            Data        = y.NewFileName,
                            Id          = y.Id,
                            NewFileName = y.NewFileName,
                            OldFileName = y.OldFileName,
                            Status      = "load",
                        }).ToList()
                    },
                    Address = new AddressViewModel
                    {
                        AddressId = x.Property.Address.AddressId,
                        CountryId = x.Property.Address.CountryId,
                        Number    = x.Property.Address.Number.Replace(" ", ""),
                        Street    = x.Property.Address.Street.Trim(),
                        City      = x.Property.Address.City.Trim(),
                        Suburb    = x.Property.Address.Suburb.Trim() ?? "",
                        PostCode  = x.Property.Address.PostCode.Replace(" ", ""),
                        Latitude  = x.Property.Address.Lat,
                        Longitude = x.Property.Address.Lng
                    },
                    PropertyAddress = x.Property.Address.Number + " " + x.Property.Address.Street + ", " + x.Property.Address.Suburb + ", " + x.Property.Address.City,
                    IsOwnedByUser   = model.IsOwnerView ? model.IsOwnerView : x.OwnerId == login.Id,
                    IsApplyByUser   = db.JobQuote.Any(y => y.JobRequestId == x.Id && y.ProviderId == login.Id && y.Status.ToLower() == "opening"),
                    NewQuotesCount  = x.JobQuote.Where(y => y.Status.ToLower() == "opening" && !(y.IsViewed ?? false)).Count(),
                    CreatedOn       = x.CreatedOn,
                });
                var allItems = model.IsOwnerView ? result.OrderByDescending(x => x.NewQuotesCount).ToPagedList(model.Page, 10)
                    : result.OrderByDescending(x => x.CreatedOn).ToPagedList(model.Page, 10);
                switch (model.SortOrder)
                {
                case "Title":
                    result = result.OrderBy(s => s.Model.Title);
                    break;

                case "Title(Desc)":
                    result = result.OrderByDescending(s => s.Model.Title);
                    break;

                case "Highest Budget":
                    result = result.OrderByDescending(s => s.Model.MaxBudget);
                    break;

                case "Lowest Budget":
                    result = result.OrderBy(s => s.Model.MaxBudget);
                    break;

                case "Earliest Listing":
                    result = result.OrderBy(s => s.CreatedOn);
                    break;

                case "Latest Listing":
                    result = result.OrderByDescending(s => s.CreatedOn);
                    break;

                case "Highest New Quotes":
                    result = result.OrderByDescending(x => x.NewQuotesCount);
                    break;

                case "Lowest New Quotes":
                    result = result.OrderBy(x => x.NewQuotesCount);
                    break;

                default:
                    result = model.IsOwnerView? result.OrderByDescending(x => x.NewQuotesCount) : result.OrderByDescending(s => s.CreatedOn);
                    break;
                }
                if (!String.IsNullOrWhiteSpace(model.SearchString))
                {
                    SearchUtil searchTool   = new SearchUtil();
                    int        searchType   = searchTool.CheckDisplayType(model.SearchString);
                    string     formatString = searchTool.ConvertString(model.SearchString);
                    switch (searchType)
                    {
                    case 1:
                        result = result.Where(job => job.Model.MaxBudget.ToString() == formatString ||
                                              job.PropertyAddress.ToLower().EndsWith(formatString) ||
                                              (job.Model.Title ?? "").ToLower().EndsWith(formatString) ||
                                              job.Model.JobDescription.ToLower().EndsWith(formatString));
                        break;

                    case 2:

                        result = result.Where(job => job.Model.MaxBudget.ToString() == formatString ||
                                              job.PropertyAddress.ToLower().StartsWith(formatString) ||
                                              (job.Model.Title ?? "").ToLower().StartsWith(formatString) ||
                                              job.Model.JobDescription.ToLower().StartsWith(formatString));
                        break;

                    case 3:
                        result = result.Where(job => job.Model.MaxBudget.ToString() == formatString ||
                                              job.PropertyAddress.ToLower().Contains(formatString) ||
                                              (job.Model.Title ?? "").ToLower().Contains(formatString) ||
                                              job.Model.JobDescription.ToLower().Contains(formatString));
                        break;
                    }
                }
                var items = result.ToPagedList(model.Page, 10);
                var count = items.Count;
                items = count == 0 ? allItems : items;
                items.ToList().ForEach(x => {
                    x.Model.MediaFiles.ForEach(y => y.InjectMediaModelViewProperties());
                    x.IsInWatchlist = db.JobWatchList.FirstOrDefault(y => y.PersonId == login.Id & y.MarketJobId == x.Model.Id && y.IsActive) != null;
                });
                var searchResult = new SearchResult {
                    SearchCount = items.Count, Items = count == 0 ? allItems : items
                };
                return(searchResult);
            }
        }