//[ResponseType(typeof(Model.City))] public IHttpActionResult AddToFavorites(int id) { User user = UserService.GetUserByEmail(User.Identity.Name); Auto auto = AutoService.GetByID(id); if (auto == null) { return(NotFound()); } try { int result = 1; AutoFavorite fav = user.AutoFavorites.FirstOrDefault(f => f.AutoID == id); if (fav == null) { user.AutoFavorites.Add(new AutoFavorite() { AutoID = id }); UserService.EditUser(user); } else { AutoFavoriteService.Delete(fav); result = -1; } AutoService.Edit(auto); return(Ok(result)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public ActionResult Details(int id) { //Auto auto = AutoService.GetPublishedByID(id); Auto auto = AutoService.GetByID(id); if (auto == null) { return(HttpNotFound()); } auto.Views++; AutoService.Edit(auto); User currentUser = null; if (User.Identity.IsAuthenticated) { currentUser = UserService.GetUserByEmail(User.Identity.Name); } //double dollarRate = CurrencyService.GetCurrencyRate(); AutoDetailsVM autoDetailsVM = auto; for (int i = 0; i < autoDetailsVM.AutoExchangesIncome.Count; i++) { autoDetailsVM.AutoExchangesIncome[i].DeleteButtonIsAvailable = (currentUser != null && (currentUser.ID == auto.UserID || currentUser.ID == autoDetailsVM.AutoExchangesIncome[i].Auto.Owner.UserID)); } List <AutoShortInfoVM> autosAvailableForExchangeOffer = null; if (currentUser != null) { List <Auto> tmp = currentUser.Autoes.Where(a => /*a.StatusID == 2 * &&*/a.AutoExchangesOutcome.FirstOrDefault(ex => ex.TargetAutoID == id) == null).ToList(); autosAvailableForExchangeOffer = new List <AutoShortInfoVM>(); foreach (var item in tmp) { autosAvailableForExchangeOffer.Add(item); } ViewBag.currencies = CurrencyService.GetAllAsSelectList(1); //ViewBag.showAddtoFavoriteButton = true; if (currentUser.AutoFavorites.FirstOrDefault(f => f.AutoID == id) != null) { ViewBag.isInFavorite = true; } if (currentUser.ID == autoDetailsVM.Owner.UserID) { ViewBag.isAbleToAnswerToOffers = true; } } ViewBag.autosAvailableForExchangeOffer = autosAvailableForExchangeOffer; //breadcrumbs.Add("/Auto/Index", Resource.Advertisements); breadcrumbs.Add("/Auto/Index", autoDetailsVM.Region); breadcrumbs.Add("/Auto", autoDetailsVM.Make); breadcrumbs.Add("#", autoDetailsVM.Make + " " + autoDetailsVM.Model + " " + autoDetailsVM.YearOfIssue); ViewBag.breadcrumbs = breadcrumbs; //create search model for getting related ExtendedSearchVM searchVM = new ExtendedSearchVM() { //MakeAndModels = new List<MakeAndModelVM>() { new MakeAndModelVM() { MakeID = auto.MakeID, ModelID = auto.ModelID, ModelToBeExcluded = false } }, MakeID = new int[1] { auto.MakeID }, ModelID = new int[1] { auto.ModelID }, MakeAndModels = new List <MakeAndModelVM>() { new MakeAndModelVM() { MakeID = auto.MakeID, ModelID = auto.ModelID } }, YearOfIssueFrom = auto.YearOfIssue, YearOfIssueTo = auto.YearOfIssue, IDsToBeExcluded = new int[1] { auto.ID } }; ViewBag.searchVM = searchVM; List <AutoPhotoVM> orderedPhotos = autoDetailsVM.AutoPhotoes.OrderByDescending(p => p.IsMain).ToList(); AutoPhotoVM mainPhoto = orderedPhotos[0]; ViewBag.orderedPhotos = orderedPhotos; //Open Graph (for fb share purposes) Dictionary <string, string> openGraph = new Dictionary <string, string>(); openGraph["url"] = "http://emcar.quadevs.com/Auto/Details/" + id; openGraph["type"] = "page"; openGraph["title"] = autoDetailsVM.Make + " " + autoDetailsVM.Model + (!string.IsNullOrWhiteSpace(autoDetailsVM.Modification) ? autoDetailsVM.Modification : "") + " " + autoDetailsVM.YearOfIssue; openGraph["description"] = autoDetailsVM.Description; openGraph["image"] = XCarsConfiguration.BucketEndpoint + XCarsConfiguration.BucketName + "/" + XCarsConfiguration.AutoPhotosUploadUrl + (mainPhoto.ID != 0 ? (mainPhoto.ID + "_575x359") : XCarsConfiguration.AutoNoPhotoName) + XCarsConfiguration.PhotoExtension; ViewBag.openGraph = openGraph; return(View(autoDetailsVM)); }