Пример #1
0
        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));
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        //[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));
            }
        }
Пример #4
0
        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));
            }
        }
Пример #5
0
        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));
        }