public ActionResult AddExchangeOffer(AddExchangeOfferVM model) { Auto targetAuto = AutoService.GetPublishedByID(model.TargetAutoID); if (targetAuto == null) { return(HttpNotFound()); } User currentUser = UserService.GetUserByEmail(User.Identity.Name); AutoExchangeDetailsVM exchangeDetailsVM = null; try { AutoExchange newExchange = new AutoExchange() { OfferedAutoID = model.OfferedAutoID, TargetAutoID = model.TargetAutoID, DateCreated = DateTime.Now, CurrencyID = model.CurrencyID, DiffPrice = model.DiffPrice, DiffPriceDirection = model.DiffPriceDirection }; AutoExchangeService.Create(newExchange); Currency currency = CurrencyService.GetByID(newExchange.CurrencyID); Auto offeredAuto = AutoService.GetByID(model.OfferedAutoID); exchangeDetailsVM = targetAuto.AutoExchangesIncome.FirstOrDefault(ex => ex.ID == newExchange.ID); if (exchangeDetailsVM != null) { exchangeDetailsVM.Currency = currency.Symbol; exchangeDetailsVM.DeleteButtonIsAvailable = (currentUser != null && (currentUser.ID == offeredAuto.UserID || currentUser.ID == offeredAuto.UserID)); } } catch (Exception ex) { ViewBag.errorMsg = "Error: " + ex.Message; } return(PartialView("_ExchangeOffer", exchangeDetailsVM)); }
public IHttpActionResult DeletePhoto(int autoID, int photoID) { try { User user = UserService.GetUserByEmail(User.Identity.Name); Auto auto = AutoService.GetByID(autoID); if (auto == null || auto.UserID != user.ID) { return(NotFound()); } int mainPhotoID = AutoPhotoService.Delete(photoID); return(Ok(mainPhotoID)); } catch (Exception ex) { return(InternalServerError(ex)); } }
//[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 IHttpActionResult UploadPhoto(int autoID, HttpPostedFileBase photo) { try { User user = UserService.GetUserByEmail(User.Identity.Name); Auto auto = AutoService.GetByID(autoID); if (auto == null || auto.UserID != user.ID) { return(NotFound()); } int photoID = AutoPhotoService.UploadPhoto(autoID, photo); if (photoID == 0) { throw new Exception("Save error"); } return(Ok(photoID)); } 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)); }