public ActionResult Activate(int id) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser instructor = fitnessCentreUserDao.GetById(id); LessonDao lessonDao = new LessonDao(); IList <Lesson> listLessons = lessonDao.GetAll(); // Automatická aktivace všech lekcí daného instruktora, které se ještě neuskutečnily. foreach (Lesson lesson in listLessons) { // Porovnání CompareTo vrací hodnoty -1, 0, 1. Pokud aktuální čas je dřívěji než zahájení lekce. if (lesson.Instructor.Id == instructor.Id && DateTime.Now.CompareTo(lesson.StartTime) < 0) { lesson.IsActive = true; lessonDao.Update(lesson); } } TempData["message-success"] = "Účet instruktora " + instructor.FirstName + " " + instructor.LastName + " byl úspěšně aktivován."; // Aktivace účtu instruktora instructor.IsActive = true; fitnessCentreUserDao.Update(instructor); return(RedirectToAction("Index")); }
/* * Vrací true, pokud uživatel zadal správný login a heslo. Vrací false v každém jiném případě. */ public override bool ValidateUser(string username, string password) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser user = fitnessCentreUserDao.GetByLoginAndPassword(username, password); return(user != null); }
// GET: /Admin/Instructors/ public ActionResult Index() { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); IList <FitnessCentreUser> listInstructors = fitnessCentreUserDao.GetUsersByRole("instructor"); FitnessCentreUser user = fitnessCentreUserDao.GetByLogin(User.Identity.Name); // Lze smazat pouze instruktory, kteří nevypsali do systému žádnou lekci. if (user.Role.Identificator == "staff") { IList <Lesson> listLessons = new LessonDao().GetAll(); foreach (FitnessCentreUser instructor in listInstructors) { instructor.IsDeletable = true; // Pro jistotu předvyplnění vlastnosti. Zabránění null hodnotám. foreach (Lesson lesson in listLessons) { if (lesson.Instructor.Id == instructor.Id) { instructor.IsDeletable = false; // break; } } } } if (user.Role.Identificator == "staff") { return(View("IndexStaff", listInstructors)); } return(View("Index", listInstructors)); }
public ActionResult Edit(int id) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser user = fitnessCentreUserDao.GetById(id); return(View(user)); }
public ActionResult Deactivate(int id) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser instructor = fitnessCentreUserDao.GetById(id); LessonDao lessonDao = new LessonDao(); IList <Lesson> listLessons = lessonDao.GetAll(); // Automatická deaktivace všech lekcí daného instruktora foreach (Lesson lesson in listLessons) { if (lesson.Instructor.Id == instructor.Id) { lesson.IsActive = false; lessonDao.Update(lesson); } } TempData["message-success"] = "Účet instruktora " + instructor.FirstName + " " + instructor.LastName + " byl úspěšně deaktivován."; // Deaktivace účtu instruktora instructor.IsActive = false; fitnessCentreUserDao.Update(instructor); return(RedirectToAction("Index")); }
[ChildActionOnly] // Způsobí, že tato daná akce může být volána pouze zevnitř jinou akcí. // GET: /Admin/Menu/ public ActionResult Index() { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser fitnessCentreUser = fitnessCentreUserDao.GetByLogin(User.Identity.Name); return(View(fitnessCentreUser)); }
public ActionResult Detail(int id) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser instructor = fitnessCentreUserDao.GetById(id); return(View("Detail", instructor)); }
public ActionResult Delete(int id) { try { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser user = fitnessCentreUserDao.GetById(id); // Pokud uživatel neměl nastavenu pouze defaultní fotografii, ještě před smazáním uživatele, smaž jeho fotografii. if (!user.ProfilePhotoName.Equals("manSilhouette.png")) { System.IO.File.Delete(Server.MapPath("~/uploads/profilePhoto/" + user.ProfilePhotoName)); } fitnessCentreUserDao.Delete(user); TempData["message-success"] = "Obsluha " + user.FirstName + " " + user.LastName + " byla úspěšně smazána."; } catch (Exception) { // mechanismus zachytávání výjimek doporučuje dobře si nastudovat throw; } return(RedirectToAction("Index")); }
public ActionResult Reserve(int id) { // Získání instance vybrané lekce. LessonDao lessonDao = new LessonDao(); Lesson lesson = lessonDao.GetById(id); // Získání instance přihlášeného klienta. FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser user = fitnessCentreUserDao.GetByLogin(User.Identity.Name); // Ověření, zda lekce je aktivní (z důvodu času či aktivity instruktora). if (lesson.IsActive) { // Ověření, zda na lekci je volné místo pro registraci. if (lesson.ActualCapacity > 0) { // Ověření, zda má klient dostatečný kredit pro rezervaci aktivity. if (user.Credit >= lesson.ActivityType.Price) { // Nastavení parametrů rezervace. Reservation reservation = new Reservation(); reservation.ReservationTime = DateTime.Now; reservation.Lesson = lesson; reservation.Client = user; // Vložení rezervace do databáze. ReservationDao reservationDao = new ReservationDao(); reservationDao.Create(reservation); // Odečtení ceny aktivity z kreditu klienta a odečtení 1 volného místa z kapacity lekce. Update hodnot v databázi. user.Credit -= lesson.ActivityType.Price; fitnessCentreUserDao.Update(user); lesson.ActualCapacity -= 1; lessonDao.Update(lesson); TempData["message-success"] = "Lekce aktivity " + lesson.ActivityType.Name + " v " + lesson.StartTime.ToString("dddd d.M.") + " byla zarezervována."; return(RedirectToAction("Index", "Lessons", new { isActive = true })); } else { TempData["message-error"] = "Nemáte dostatek kreditu pro registraci na aktivitu " + lesson.ActivityType.Name + "."; return(RedirectToAction("Index", "Lessons", new { isActive = true })); } } else { TempData["message-error"] = "Na lekci není žádné volné místo."; return(RedirectToAction("Index", "Lessons", new { isActive = true })); } } else { TempData["message-error"] = "Lekce není aktivní."; return(RedirectToAction("Index", "Lessons", new { isActive = true })); } }
public ActionResult Update(FitnessCentreUser user, HttpPostedFileBase profilePhoto) { try { if (profilePhoto != null) { if (profilePhoto.ContentType == "image/jpeg" || profilePhoto.ContentType == "image/png") { Image image = Image.FromStream(profilePhoto.InputStream); if (image.Height > 200 || image.Width > 200) { Image smallImage = ImageHelper.ScaleImage(image, 200, 200); Bitmap b = new Bitmap(smallImage); Guid guid = Guid.NewGuid(); string imageName = guid.ToString() + ".jpg"; b.Save(Server.MapPath("~/uploads/profilePhoto/" + imageName), ImageFormat.Jpeg); smallImage.Dispose(); b.Dispose(); // TomSko přesunuto: ještě předtím, než vyčistím jméno, je potřeba, abych smazal starý soubor System.IO.File.Delete(Server.MapPath("~/uploads/profilePhoto/" + user.ProfilePhotoName)); // TomSko přesunuto: přiřadíme nový soubor, který už je nahraný user.ProfilePhotoName = imageName; } else { // TomSko přesunuto: ještě předtím, než vyčistím jméno, je potřeba, abych smazal starý soubor System.IO.File.Delete(Server.MapPath("~/uploads/profilePhoto/" + user.ProfilePhotoName)); profilePhoto.SaveAs(Server.MapPath("~/uploads/profilePhoto/") + profilePhoto.FileName); user.ProfilePhotoName = profilePhoto.FileName; // TomSko asi chybělo vyplnění parametru názvu fotografie } } } FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreRoleDao fitnessCentreRoleDao = new FitnessCentreRoleDao(); user.Role = fitnessCentreRoleDao.GetById(3); user.IsActive = true; fitnessCentreUserDao.Update(user); TempData["message-success"] = "Klient " + user.FirstName + " " + user.LastName + " byl úspěšně upraven."; } catch (Exception) { throw; } return(RedirectToAction("Index", "Clients")); }
/* * Pokud roleName se bude shodovat s identifikátorem na Role vrátí true */ public override bool IsUserInRole(string username, string roleName) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser user = fitnessCentreUserDao.GetByLogin(username); if (user == null) { return(false); } return(user.Role.Identificator == roleName); }
/* * Jestliže user nebude null sáhnu do Role na identifikátor. * Mechanismus je obecně připravený, že uživatel může mít více rolí, proto vrací pole stringů. */ public override string[] GetRolesForUser(string username) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser user = fitnessCentreUserDao.GetByLogin(username); if (user == null) { return(new string[] { }); } return(new string[] { user.Role.Identificator }); }
public ActionResult Activate(int id) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser client = fitnessCentreUserDao.GetById(id); client.IsActive = true; fitnessCentreUserDao.Update(client); TempData["message-success"] = "Účet klienta " + client.FirstName + " " + client.LastName + " byl úspěšně aktivován."; return(RedirectToAction("Index")); }
public ActionResult Detail(int id) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser instructor = fitnessCentreUserDao.GetById(id); FitnessCentreUser user = fitnessCentreUserDao.GetByLogin(User.Identity.Name); if (user.Role.Identificator == "staff") { return(View("DetailStaff", instructor)); } return(View("Detail", instructor)); }
public ActionResult Update(int idLesson, string startTime, string endTime, int activityTypeId, int roomId, int instructorId, int originalCapacity, bool isActive) { try { Lesson lesson = new Lesson(); lesson.Id = idLesson; // Nastavení času lekce lesson.StartTime = DateTime.ParseExact(startTime, "dd.MM.yyyy H:mm", CultureInfo.CurrentCulture); lesson.EndTime = DateTime.ParseExact(endTime, "dd.MM.yyyy H:mm", CultureInfo.CurrentCulture); // Přiřazení vybrané aktivity ze select listu vytvářené lekci ActivityTypeDao activityTypeDao = new ActivityTypeDao(); ActivityType activityType = activityTypeDao.GetById(activityTypeId); lesson.ActivityType = activityType; // Přiřazení vybrané místnosti ze select listu vytvářené lekci RoomDao roomDao = new RoomDao(); Room room = roomDao.GetById(roomId); lesson.Room = room; // Přiřazení vybraného trenéra ze select listu vytvářené lekci FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser instructor = fitnessCentreUserDao.GetById(instructorId); lesson.Instructor = instructor; // Aktuální kapacita lekce je rovna původní kapacitě. lesson.OriginalCapacity = originalCapacity; lesson.ActualCapacity = originalCapacity; lesson.IsActive = isActive; // Upravení lekce LessonDao lessonDao = new LessonDao(); lessonDao.Update(lesson); TempData["message-success"] = "Lekce " + lesson.ActivityType.Name + " byla úspěšně upravena."; } catch (Exception) { throw; } return(RedirectToAction("Index", "Lessons", new { isActive = true })); }
public ActionResult Add(string startTime, string endTime, int activityTypeId, int roomId, int originalCapacity) { Lesson lesson = new Lesson(); if (ModelState.IsValid) { // Nastavení času lekce lesson.StartTime = DateTime.ParseExact(startTime, "dd.MM.yyyy H:mm", CultureInfo.CurrentCulture); lesson.EndTime = DateTime.ParseExact(endTime, "dd.MM.yyyy H:mm", CultureInfo.CurrentCulture); // Přiřazení vybrané aktivity ze select listu vytvářené lekci ActivityTypeDao activityTypeDao = new ActivityTypeDao(); ActivityType activityType = activityTypeDao.GetById(activityTypeId); lesson.ActivityType = activityType; // Přiřazení vybrané místnosti ze select listu vytvářené lekci RoomDao roomDao = new RoomDao(); Room room = roomDao.GetById(roomId); lesson.Room = room; // Přiřazení přihlášeného instruktora vytvářené lekci FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser instructor = fitnessCentreUserDao.GetByLogin(User.Identity.Name); lesson.Instructor = instructor; // Aktuální kapacita lekce je rovna původní kapacitě. lesson.OriginalCapacity = originalCapacity; lesson.ActualCapacity = originalCapacity; lesson.IsActive = true; // Vytvoření lekce LessonDao lessonDao = new LessonDao(); lessonDao.Create(lesson); TempData["message-success"] = "Lekce " + lesson.ActivityType.Name + " byla úspěšně přidána."; } else { TempData["message-error"] = "Lekce nebyla přidána"; return(View("Create", lesson)); } return(RedirectToAction("Index", "Lessons", new { isActive = true })); }
// GET: /Admin/CreditAdministration/ public ActionResult Index(int?clientId) { int cId = clientId.HasValue ? clientId.Value : -1; // cId musí být vyplněno FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); if (cId != -1) { FitnessCentreUser client = fitnessCentreUserDao.GetById(cId); return(View("IndexChosenClient", client)); } else { IList <FitnessCentreUser> listClients = fitnessCentreUserDao.GetUsersByRole("client"); ViewBag.ListClients = listClients; return(View("IndexAllClients")); } }
/* * Metoda pro připsání kreditu klientovi. */ public ActionResult UpdateCredit(int clientId, int addedCredit) { try { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser editedClient = fitnessCentreUserDao.GetById(clientId); editedClient.Credit = editedClient.Credit + addedCredit; fitnessCentreUserDao.Update(editedClient); TempData["message-success"] = "Klientu " + editedClient.FirstName + " " + editedClient.LastName + " byl úspěšně připsán kredit " + addedCredit + " Kč"; } catch (Exception) { throw; } return(RedirectToAction("Index", "Clients")); }
public ActionResult Edit(int id) { ViewBag.ListActivityTypes = new ActivityTypeDao().GetAll(); ViewBag.ListRooms = new RoomDao().GetAll(); FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); ViewBag.ListInstructors = fitnessCentreUserDao.GetUsersByRole("instructor"); Lesson lesson = new LessonDao().GetById(id); FitnessCentreUser user = fitnessCentreUserDao.GetByLogin(User.Identity.Name); if (user.Role.Identificator == "staff") { return(View("EditStaff", lesson)); } return(View("EditInstructor", lesson)); }
public ActionResult Cancel(int id) { try { // Získání instance vybrané rezervace pro zrušení. ReservationDao reservationDao = new ReservationDao(); Reservation reservation = reservationDao.GetById(id); // Píše chybu v dvojité session //reservation.Client.Credit += reservation.Lesson.ActivityType.Price; //FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); //fitnessCentreUserDao.Update(reservation.Client); //reservation.Lesson.Capacity += 1; //LessonDao lessonDao = new LessonDao(); //lessonDao.Update(reservation.Lesson); // Přičtení ceny aktivity zpět ke kreditu klienta a uvolnění 1 místa v kapacitě lekce. Zápis změn do databáze. reservation.Client.Credit += reservation.Lesson.ActivityType.Price; FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser client = fitnessCentreUserDao.GetByLogin(reservation.Client.Login); fitnessCentreUserDao.Update(client); reservation.Lesson.ActualCapacity += 1; LessonDao lessonDao = new LessonDao(); Lesson lesson = lessonDao.GetById(reservation.Lesson.Id); lessonDao.Update(lesson); TempData["message-success"] = "Rezervace aktivity " + reservation.Lesson.ActivityType.Name + " byla úspěšně zrušena."; // Smazání rezervace z databáze. reservationDao.Delete(reservation); } catch (Exception) { // mechanismus zachytávání výjimek doporučuje dobře si nastudovat throw; } return(RedirectToAction("Index", new { isActive = true })); }
public ActionResult Create() { ActivityTypeDao activityTypeDao = new ActivityTypeDao(); IList <ActivityType> listActivityTypes = activityTypeDao.GetAll(); ViewBag.ListActivityTypes = listActivityTypes; RoomDao roomDao = new RoomDao(); IList <Room> listRooms = roomDao.GetAll(); ViewBag.ListRooms = listRooms; FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); //IList<FitnessCentreUser> listInstructors = fitnessCentreUserDao.GetUsersByRole("instructor"); //ViewBag.ListInstructors = listInstructors; FitnessCentreUser instructor = fitnessCentreUserDao.GetByLogin(User.Identity.Name); ViewBag.Instructor = instructor; return(View()); }
public ActionResult Success(FitnessCentreUser user) { return(View(user)); }
public ActionResult Add(FitnessCentreUser user, HttpPostedFileBase profilePhoto) { if (ModelState.IsValid) { if (profilePhoto != null) { if (profilePhoto.ContentType == "image/jpeg" || profilePhoto.ContentType == "image/png") { Image image = Image.FromStream(profilePhoto.InputStream); if (image.Height > 200 || image.Width > 200) { Image smallImage = ImageHelper.ScaleImage(image, 200, 200); // zmenšení fotografie Bitmap b = new Bitmap(smallImage); Guid guid = Guid.NewGuid(); // vytvoření jména fotografie string imageName = guid.ToString() + ".jpg"; b.Save(Server.MapPath("~/uploads/profilePhoto/" + imageName), ImageFormat.Jpeg); // uložení fotografie; formát jpg smallImage.Dispose(); // vyčištění po e-disposable objektech b.Dispose(); user.ProfilePhotoName = imageName; // vyplnění parametru názvu fotografie } else { // BUG asi chyby v závorkách a mazání null obrázku viz. activityController profilePhoto.SaveAs(Server.MapPath("~/uploads/profilePhoto/") + profilePhoto.FileName); // uložení v případě, že fotografii není potřeba zmenšovat user.ProfilePhotoName = profilePhoto.FileName; // TomSko asi chybělo vyplnění parametru názvu fotografie } } } else { // Pokud není vybrána fotografie, přiřadíme defaultní siluetu. user.ProfilePhotoName = "manSilhouette.png"; } FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreRoleDao fitnessCentreRoleDao = new FitnessCentreRoleDao(); // == TVORBA LOGINU == // Spoj prvních 5 písmen z příjmení s prvními 2 písmeny ze jména uživatele. Převeď string na malá písmena. string loginName = user.LastName.ToLowerInvariant().Substring(0, 5) + user.FirstName.ToLowerInvariant().Substring(0, 2); string cleanLoginName = Utilities.RemoveDiacritics(loginName); // Odstraň ze stringu diakritiku. // Za každého uživatele se stejným cleanLoginName zvyš loginNumber o 1. int loginNumber = 1; IList <FitnessCentreUser> listUsers = fitnessCentreUserDao.GetAll(); foreach (FitnessCentreUser u in listUsers) { if (u.Login.Substring(0, 7).Equals(cleanLoginName)) { loginNumber++; } } // Vytvoř Login spojením cleanLoginName a loginNumber. user.Login = cleanLoginName + loginNumber.ToString(); user.Credit = 0; // Nastavíme počáteční kredit 0 Kč user.Role = fitnessCentreRoleDao.GetById(3); // Přiřadíme uživateli roli klienta (vybereme ze seznamu rolí podle RoleId == 3) user.IsActive = false; fitnessCentreUserDao.Create(user); } else { TempData["message-error"] = "Klient nebyl přidán"; return(View("Create", user)); } return(RedirectToAction("Success", user)); // přesměrování na jinou stránku tak, aby nešel po F5 refreshi znovu odeslat formulář }