private ActionResult AddToFavFromList(string id)
 {
     if (Session["ID"] != null)
     {
         int AdID  = Convert.ToInt32(id);
         int uID   = Convert.ToInt32(Session["ID"]);
         FAV fAV   = new FAV();
         int check = db.FAV.Count(x => x.USER == uID && x.ADV == AdID);
         if (check == 0)
         {
             fAV.USER = uID;
             fAV.ADV  = AdID;
             db.FAV.Add(fAV);
             db.SaveChanges();
             return(RedirectToAction("Details", "Adverts", new { id = id }));
         }
         else
         {
             db.FAV.Remove(db.FAV.Single(x => x.ADV == AdID && x.USER == uID));
             db.SaveChanges();
             return(RedirectToAction("Details", "Adverts", new { id = id }));
         }
     }
     else
     {
         return(RedirectToAction("Logowanie", "home"));
     }
 }
Exemple #2
0
 public ActionResult Conversation(int?AdvertId, int?UserA, int?UserB)
 {
     if (TempData["SizeError"] != null)
     {
         ViewBag.Error = "Maksymalny rozmiar zdjęć to 2MB";
         TempData.Remove("SizeError");
     }
     if (TempData["FormatError"] != null)
     {
         ViewBag.Error = "Użyto nieobsługiwanego formatu zdjęć. Dozwolone formaty: .jpg .jpeg .png";
         TempData.Remove("FormatError");
     }
     if (AdvertId != null && UserA != null && UserB != null)
     {
         if (Session["ID"] != null)
         {
             int userID = Convert.ToInt32(Session["ID"]);
             if (userID != UserA || userID != UserB)
             {
                 if (userID == UserA)
                 {
                     messageModel.LoggedUser             = new UserRepository().GetUserData((int)UserA);
                     messageModel.SecondConversationUser = new UserRepository().GetUserData((int)UserB);
                     messageModel.LoggedUserAdverts      = new AdvertRepository().GetUserAdverts((int)UserA).ToList();
                 }
                 if (userID == UserB)
                 {
                     messageModel.LoggedUser             = new UserRepository().GetUserData((int)UserB);
                     messageModel.SecondConversationUser = new UserRepository().GetUserData((int)UserA);
                     messageModel.LoggedUserAdverts      = new AdvertRepository().GetUserAdverts((int)UserB).ToList();
                 }
                 messageModel.CoversationMessages = new UserRepository().GetConversation((int)AdvertId, (int)UserA, (int)UserB).ToList();
                 messageModel.Images = new UserRepository().GetConversationImages((int)AdvertId, (int)UserA, (int)UserB).ToList();
                 messageModel.MessageAdvertDetails = db.ADVERTS.Where(x => x.ID == (int)AdvertId).ToList();
                 foreach (var item in messageModel.CoversationMessages)
                 {
                     var msgID = (item.ID);
                     if (item.MSG_TO == userID)
                     {
                         var     ID          = msgID;
                         MESSAGE MsgToChange = new UserRepository().GetMessage(ID);
                         MsgToChange.IS_READ         = true;
                         db.Entry(MsgToChange).State = System.Data.Entity.EntityState.Modified;
                         db.SaveChanges();
                     }
                 }
                 ;
                 return(View(messageModel));
             }
             return(RedirectToAction("messages", "User"));
         }
         return(RedirectToAction("Logowanie", "Home"));
     }
     else
     {
         return(RedirectToAction("Index", "Home"));
     }
 }
        public ActionResult Odzyskaj(string MAIL, USERS USERS)
        {
            string resetCode = Guid.NewGuid().ToString();

            using (BazaLocal db = new BazaLocal())
            {
                var      mail        = db.USERS.SingleOrDefault(x => x.MAIL == USERS.MAIL);
                var      currentdate = DateTime.Now;
                TimeSpan diff        = currentdate.Subtract((DateTime)mail.LASTRESETPASSDATE);
                double   hours       = diff.TotalHours;
                if (mail != null)
                {
                    if (hours < 24)
                    {
                        ModelState.AddModelError("MAIL", "Hasło można resetować raz na 24h!");
                        return(View());
                    }
                    else
                    {
                        mail.RESETPASSWORDCODE = resetCode;
                        db.Configuration.ValidateOnSaveEnabled = false;
                        db.SaveChanges();

                        SendResetPasswordEmail(mail.MAIL, resetCode);
                        ViewBag.SuccessMessage = "Na maila został przesłany link zmiany hasła.";
                        return(View());
                    }
                }
                else
                {
                    ModelState.AddModelError("MAIL", "Nie ma takiego mail!");
                    return(View());
                }
            }
        }
        public ActionResult NoweHaslo(ResetPasswordModel model)
        {
            var message = "";

            if (ModelState.IsValid)
            {
                using (BazaLocal db = new BazaLocal())
                {
                    var user = db.USERS.SingleOrDefault(x => x.RESETPASSWORDCODE == model.ResetCode);
                    //return db.USERS.AsNoTracking().SingleOrDefault(x => x.USER_ID == uID);
                    var EncryptedNewPassword = registerRepository.Encryption(model.NewPassword);
                    if (user != null)
                    {
                        if (EncryptedNewPassword == user.PASSWORD)
                        {
                            ModelState.AddModelError("NewPassword", "Nowe hasło musi być różne od obecnego");
                            return(View());
                        }
                        else if (model.NewPassword != model.ConfirmPassword)
                        {
                            ModelState.AddModelError("NewPassword", "Hasła muszą być takie same");
                            ModelState.AddModelError("ConfirmPassword", "Hasła muszą być takie same");
                            return(View());
                        }
                        else
                        {
                            //szyfrowanie nowego hasła
                            user.PASSWORD = EncryptedNewPassword;
                            //resetujemy kod resetowania hasła
                            user.RESETPASSWORDCODE = "";
                            user.LASTRESETPASSDATE = DateTime.Now;
                            //db.Configuration.ValidateOnSaveEnabled = false;
                            db.SaveChanges();
                            ViewBag.SuccessMessage = "Udało się zmienić hasło.";
                            return(RedirectToAction("Logowanie", "home"));
                        }
                    }
                }
                ModelState.Clear();
                return(View(model));
            }
            else
            {
                message = "Nie można zmienić hasła. Upewnij się czy wprowadzone hasła są identyczne oraz czy prośba o zmiane hasła nie została już wcześniej zakończona";
            }
            ViewBag.Message = message;
            return(View(model));
        }
        public ActionResult Details(int id, string message, IEnumerable <HttpPostedFileBase> files)
        {
            ViewBag.Message = null;
            displayRepository.AdvertDetails = advertRepository.GetDetails(id);
            displayRepository.Images        = advertRepository.GetAdImages((int)id);
            if (Session["ID"] != null)
            {
                int uID = Convert.ToInt32(Session["ID"]);
                displayRepository.LoggedUser = advertRepository.GetUserData(uID);
            }
            if (files != null)
            {
                foreach (var file in files)
                {
                    if (file != null)
                    {
                        if (file.ContentLength > 2097152)  // 2MB?
                        {
                            ViewBag.Message = "Maksymalny rozmiar zdjęć to 2MB";
                            return(View("Details", displayRepository));
                        }
                    }
                }
            }
            MESSAGE NewMessage = new MESSAGE()
            {
                MSG_FROM  = Convert.ToInt32(Session["ID"]),
                MSG_TO    = displayRepository.AdvertDetails.USER_ID,
                TEXT      = message,
                DATE      = System.DateTime.Now,
                ADVERT_ID = displayRepository.AdvertDetails.ID,
                IS_READ   = false
            };

            db.MESSAGE.Add(NewMessage);
            db.SaveChanges();
            foreach (var file in files)
            {
                if (file != null)
                {
                    var filename       = Guid.NewGuid() + file.FileName;
                    var supportedTypes = new[] { "jpg", "jpeg", "png", "JPG", "JPEG", "PNG" };
                    var fileExt        = System.IO.Path.GetExtension(filename).Substring(1);
                    if (supportedTypes.Contains(fileExt))
                    {
                        file.SaveAs(Server.MapPath("/UploadImage/" + filename));
                        IMAGES_MESSAGE img = new IMAGES_MESSAGE
                        {
                            IMAGE_TITLE = filename,
                            IMAGE_PATH  = "/UploadImage/" + filename,
                            MESSAGE_ID  = NewMessage.ID,
                            MSG_FROM    = NewMessage.MSG_FROM,
                            MSG_TO      = NewMessage.MSG_TO,
                            ADVERT_ID   = NewMessage.ADVERT_ID
                        };
                        db.IMAGES_MESSAGE.Add(img);
                        db.SaveChanges();
                    }
                    else
                    {
                        ViewBag.Message = "Użyto nieobsługiwanego formatu zdjęć. Dozwolone formaty: .jpg .jpeg .png";
                        return(View("Details", displayRepository));
                    }
                }
            }
            ViewBag.Message = "Wiadomość wysłana";
            return(View("Details", displayRepository));
        }