Exemplo n.º 1
0
        public ActionResult AddProfilePicture([Bind(Exclude = "ProfilePicture")] AddProfilePicture model)
        {
            if (ModelState.IsValid)
            {
                using (var database = new MarketplaceDbContext())
                {
                    var userId = User.Identity.GetUserId();
                    var user   = ViewBag.userPicture = database.Users.FirstOrDefault(a => a.Id == userId);
                    if (user.ProfilePicture != null)
                    {
                        string fullPathPrimary = Request.MapPath("~/Content/ProfilePictures/" + user.ProfilePicture);
                        if (System.IO.File.Exists(fullPathPrimary))
                        {
                            System.IO.File.Delete(fullPathPrimary);
                        }
                        user.ProfilePicture = null;
                    }

                    HttpPostedFileBase imgFile = Request.Files["ProfilePicture"];

                    var validImageTypes = new string[]
                    {
                        "image/gif",
                        "image/jpeg",
                        "image/pjpeg",
                        "image/png"
                    };

                    //upload Primary image


                    if (imgFile != null && imgFile.ContentLength > 0)
                    {
                        if (validImageTypes.Contains(imgFile.ContentType))
                        {
                            var id       = Guid.NewGuid().ToString();
                            var fileName = id + Path.GetExtension(imgFile.FileName);
                            var path     = Path.Combine(Server.MapPath("~/Content/ProfilePictures/"), fileName);
                            imgFile.SaveAs(path);
                            user.ProfilePicture = fileName;
                        }
                        else
                        {
                            TempData["Danger"] = "Позволените формати за снимка са .gif, .jpeg и .png.";
                            return(RedirectToAction("Index"));
                        }
                    }

                    database.Entry(user).State = EntityState.Modified;
                    database.SaveChanges();
                    TempData["Success"] = "Успешно сменихте профилната си снимка.";
                }
            }
            else
            {
                TempData["Danger"] = "Грешка! Моля опитайте отново.";
            }

            return(RedirectToAction("Index"));
        }
Exemplo n.º 2
0
        public ActionResult Edit(Town town)
        {
            if (ModelState.IsValid)
            {
                using (var database = new MarketplaceDbContext())
                {
                    database.Entry(town).State = System.Data.Entity.EntityState.Modified;
                    database.SaveChanges();

                    return(RedirectToAction("Index"));
                }
            }
            return(View(town));
        }
Exemplo n.º 3
0
        public ActionResult Edit(AdViewModel model)
        {
            // Check if model state is valid
            if (ModelState.IsValid)
            {
                using (var database = new MarketplaceDbContext())
                {
                    // Get Ad from database
                    var ad = database.Ads
                             .FirstOrDefault(a => a.Id == model.Id);

                    if (!IsUserAuthorizedToEdit(ad))
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
                    }

                    // Set Ad properties
                    ad.Title      = model.Title;
                    ad.Content    = model.Content;
                    ad.Price      = model.Price;
                    ad.CategoryId = model.CategoryId;
                    ad.TownId     = model.TownId;

                    bool isAdmin = this.User.IsInRole("Admin");
                    if (isAdmin)
                    {
                        ad.Approved = model.Approved;
                    }

                    // Save Ad state in database
                    database.Entry(ad).State = EntityState.Modified;
                    database.SaveChanges();

                    // Redirect to the index page
                    TempData["Success"] = "Успешно редактирахте обявата.";
                    return(RedirectToAction("List"));
                }
            }

            // If model state is invalid, retyrn the same view
            TempData["Danger"] = "Некоректни данни, моля опитайте отново.";
            return(View(model));
        }
Exemplo n.º 4
0
        public ActionResult Edit(string id, EditUserViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                using (var database = new MarketplaceDbContext())
                {
                    // Get user from database
                    var user = database.Users.FirstOrDefault(u => u.Id == id);

                    // Check if user axist
                    if (user == null)
                    {
                        return(HttpNotFound());
                    }

                    // If password field is not empty, change password
                    if (!string.IsNullOrEmpty(viewModel.Password))
                    {
                        var hasher       = new PasswordHasher();
                        var passwordHash = hasher.HashPassword(viewModel.Password);
                        user.PasswordHash = passwordHash;
                    }

                    // Set user properties
                    user.Email    = viewModel.User.Email;
                    user.FullName = viewModel.User.FullName;
                    user.UserName = viewModel.User.Email;
                    this.SetUserRoles(viewModel, user, database);

                    // Save changes
                    database.Entry(user).State = EntityState.Modified;
                    database.SaveChanges();

                    return(RedirectToAction("List"));
                }
            }
            return(View(viewModel));
        }
Exemplo n.º 5
0
        public ActionResult Create(AdViewModel model, HttpPostedFileBase primaryImage, IEnumerable <HttpPostedFileBase> uploadImages)
        {
            if (ModelState.IsValid)
            {
                using (var database = new MarketplaceDbContext())
                {
                    // Get author Id
                    var authorId = database.Users
                                   .Where(u => u.UserName == this.User.Identity.Name)
                                   .First()
                                   .Id;

                    DateTime DateCreated = DateTime.Now;
                    int      viewCount   = 0;
                    string   adId        = Guid.NewGuid().ToString();
                    var      ad          = new Ad(adId, 0, authorId, model.Title, model.Content, model.Price, model.CategoryId, model.TownId, viewCount, DateCreated, null);

                    //Save Ad in DB
                    database.Ads.Add(ad);
                    database.SaveChanges();



                    //Upload images
                    var validImageTypes = new string[]
                    {
                        "image/gif",
                        "image/jpeg",
                        "image/pjpeg",
                        "image/png"
                    };

                    //upload Primary image



                    if (primaryImage != null && primaryImage.ContentLength > 0)
                    {
                        if (validImageTypes.Contains(primaryImage.ContentType))
                        {
                            var id       = Guid.NewGuid().ToString();
                            var fileName = id + Path.GetExtension(primaryImage.FileName);
                            var path     = Path.Combine(Server.MapPath("~/Content/UploadedImages"), fileName);
                            primaryImage.SaveAs(path);

                            var image = new Image(id, fileName, true, adId);
                            database.Images.Add(image);
                            database.SaveChanges();

                            ad.primaryImageName      = fileName;
                            database.Entry(ad).State = EntityState.Modified;
                            database.SaveChanges();
                        }
                        else
                        {
                            TempData["Warning"] = "Позволените формати за снимка са .gif, .jpeg и .png. Обявата Ви е качена без главна снимка и ще бъде видима, след като е одобрена.";
                            return(RedirectToAction("List"));
                        }
                    }

                    //upload other images

                    if (uploadImages != null)
                    {
                        foreach (var otherImage in uploadImages)
                        {
                            if (otherImage != null && otherImage.ContentLength > 0)
                            {
                                if (validImageTypes.Contains(otherImage.ContentType))
                                {
                                    var id       = Guid.NewGuid().ToString();
                                    var fileName = id + Path.GetExtension(otherImage.FileName);
                                    var path     = Path.Combine(Server.MapPath("~/Content/UploadedImages"), fileName);
                                    otherImage.SaveAs(path);

                                    var image = new Image(id, fileName, false, adId);
                                    database.Images.Add(image);
                                    database.SaveChanges();
                                }
                                else
                                {
                                    TempData["Warning"] = "Позволените формати за снимка са .gif, .jpeg и .png. Обявата Ви е качена и ще бъде видима, след като е одобрена.";
                                    return(RedirectToAction("List"));
                                }
                            }
                        }
                    }
                }
                TempData["Success"] = "Успешно добавихте обява. Обявата Ви ще бъде видима, след като е одобрена.";
                return(RedirectToAction("List"));
            }
            TempData["Danger"] = "Некоректни данни, моля опитайте отново.";
            return(RedirectToAction("List"));
        }