public bool ChangePassword(string userEmail, string newPassword, string oldPassword) { try { using (var db = new Entities()) { db.User.Load(); var user = db.User.Local .FirstOrDefault(x => x.Email == userEmail); if (user == null || user.Password != oldPassword) { return false; } user.Password = newPassword; db.User.AddOrUpdate(user); db.SaveChanges(); } return true; } catch (Exception exception) { Console.WriteLine(exception); return false; } }
public bool CreateUserAccount(string userName, string email, string password) { try { var user = new User { Email = email, Name = userName, Password = password }; using (var db = new Entities()) { db.User.Add(user); db.SaveChanges(); } return true; } catch (Exception exception) { Console.WriteLine(exception); return false; } }
protected void Page_Load(object sender, EventArgs e) { using (Entities db = new Entities()) { LendingManager lenMan = new LendingManager(db); if (Int32.TryParse(Request.QueryString["lendid"], out lendId)) { bool wasProlonged = lenMan.WasProlonged(lendId); if (!wasProlonged) { string date = (lenMan.prolongUserLending(lendId, User.Identity.GetUserId())).ToLongDateString(); SuccessMessage = String.Format("Vaše výpůjčka byla prodloužena do {0}.", date); } else { SuccessMessage = "Vaši výpůjčku nelze prodloužit, protože byla již jednou prodloužena."; } } else { SuccessMessage = "Chyba."; } Label1.Text = SuccessMessage; } }
public bool CreateBudget(string name, string password, int ownerId) { var budget = new Budget { Name = name, Password = password, Created = DateTime.Now, Owner = ownerId }; try { using (var db = new Entities()) { db.Budget.Add(budget); db.SaveChanges(); } return true; } catch (Exception exception) { Console.WriteLine(exception); return false; } }
public IEnumerable<User> GetBudgetUsers(int budgetId) { try { List<User> users; List<int> budgetUsersIds; using (var db = new Entities()) { db.UserBudgets.Load(); budgetUsersIds = db.UserBudgets.Local .Where(x => x.Budget_ID == budgetId) .Select(x => x.User_ID) .ToList(); db.User.Load(); users = db.User.Local .Where(x => budgetUsersIds.Contains(x.Id)) .ToList(); } return users; } catch (Exception exception) { Console.WriteLine(exception); return null; } }
public bool AddTransaction(Transaction transaction) { try { using (var db = new Entities()) { db.TransactionHistory.Load(); db.Transaction.Load(); int lastTransactionHistoryId; int lastTransactionId = 0; decimal lastBalance = 0; if (db.Transaction.Local.Any()) { lastTransactionId = db.Transaction.Local .Max(x => x.Id); } if (db.TransactionHistory.Local.Any(x => x.Budget_ID == transaction.Budget_ID)) { lastTransactionHistoryId = db.TransactionHistory.Local .Where(x => x.Budget_ID == transaction.Budget_ID) .Max(x => x.Id); lastBalance = db.TransactionHistory.Local .Where(x => x.Budget_ID == transaction.Budget_ID) .First(x => x.Id == lastTransactionHistoryId).BalanceAfter; } var newItem = new TransactionHistory { Budget_ID = transaction.Budget_ID, Transaction_ID = lastTransactionId + 1 }; if (transaction.Type == TransactionTypeEnum.Income.ToString()) { newItem.BalanceAfter = lastBalance + transaction.Amount; } if (transaction.Type == TransactionTypeEnum.Expenditure.ToString()) { newItem.BalanceAfter = lastBalance - transaction.Amount; } db.Transaction.Add(transaction); db.TransactionHistory.Add(newItem); db.SaveChanges(); } return true; } catch (Exception exception) { Console.WriteLine(exception); return false; } }
/// <summary> /// Returns all reservations which expire at given date. /// </summary> /// <param name="date"></param> /// <returns></returns> public List<Reservation> GetResExpires(DateTime date) { using (Entities db = new Entities()) { var expires = (from r in db.Reservations where r.Expiration_Date.Equals(date) select r).ToList<Reservation>(); return expires; } }
/// <summary> /// Returns all lendings which expire at given date. /// </summary> /// <param name="date"></param> /// <returns></returns> public List<Lending> GetExpires(DateTime date) { using (Entities db = new Entities()) { var expires = (from l in db.Lendings where l.Borrowed_Until.Equals(date) && l.Returned.Equals(false) select l).ToList<Lending>(); return expires; } }
/// <summary> /// Search method returns a List which you can directly bind to Grid or List Views. /// </summary> /// <param name="text">string searched text</param> /// <returns>Returns List of BookInfo instances.</returns> public List<BookInfo> Search(string text) { using (Entities db = new Entities()) { var result = (from s in db.Books where s.Autor.Contains(text) || s.Titul.Contains(text) select new BookInfo() { ID = s.ID, Autor = s.Autor, Titul = s.Titul, Rok_vydání = s.Rok_vydání, Vydání = s.Vydání, Žánr = s.Žánr, Počet_stran = s.Počet_stran }).ToList<BookInfo>(); if (result.Count == 0) //If searching the whole phrase fails, do following :search separate words. { int count = 0; string[] words = text.Split(' '); foreach (string w in words) { var partResult = (from s in db.Books where s.Autor.Contains(w) || s.Titul.Contains(w) select new BookInfo() { ID = s.ID, Autor = s.Autor, Titul = s.Titul, Rok_vydání = s.Rok_vydání, Vydání = s.Vydání, Žánr = s.Žánr, Počet_stran = s.Počet_stran }).ToList<BookInfo>(); if (count == 0) { result = partResult; count++; } else { result = result.Union(partResult).ToList(); } } return result; } return result; } }
/// <summary> /// Checks availability of book with given id, no need for ReservationManager instance. /// </summary> /// <param name="bookId"></param> /// <returns></returns> public static bool IsAvailable(int bookId) { using (Entities db = new Entities()) { bool result = (from s in db.Books where bookId.Equals(s.ID) select s.Available).Single<bool>(); return result; } }
protected void Page_Load(object sender, EventArgs e) { using (Entities db = new Entities()) { LendingManager lenMan = new LendingManager(db); List<LendingInfo> lendings = lenMan.GetLendings(); if (lendings.Count == 0) { Button1.Visible = false; } GridView1.DataSource = lendings; GridView1.DataBind(); } }
/// <summary> /// Sends email to user based on user id and provided message, To and ReplyTo properties of given message are set. /// </summary> /// <param name="userId"></param> /// <param name="message"></param> internal void SendMail(string userId,MailMessage message) { using(Entities db=new Entities()) { var email = (from e in db.AspNetUsers where userId.Equals(e.Id) select e.Email).Single(); message.To.Add(new MailAddress(email)); message.ReplyToList.Add(new MailAddress("*****@*****.**")); SmtpClient client = new SmtpClient(); client.Send(message); } }
protected void Return_Click(object sender, EventArgs e) { using (Entities db = new Entities()) { LendingManager lenMan = new LendingManager(db); List<LendingInfo> lendings = (List<LendingInfo>)GridView1.DataSource; lenMan.ReturnBook(lendings[GridView1.SelectedIndex].LendId); lendings = lenMan.GetLendings(); if (lendings.Count == 0) { Button1.Visible = false; } GridView1.DataSource = lendings; GridView1.DataBind(); } }
protected void Page_Load(object sender, EventArgs e) { using (Entities db = new Entities()) { ReservationManager resMan = new ReservationManager(db); List<ReservationInfo> reservations = resMan.GetReservations(); if (reservations.Count == 0) { Button1.Visible = false; } GridView1.DataSource = reservations; GridView1.DataBind(); } }
protected void Page_Load(object sender, EventArgs e) { if (!User.Identity.IsAuthenticated) { Response.Redirect("~/Account/Login.aspx"); } if (!IsPostBack) { // Render success message var message = Request.QueryString["m"]; if (message != null) { // Strip the query string from action Form.Action = ResolveUrl("~/Account/ManageAccount.aspx"); SuccessMessage = message == "ChangePwdSuccess" ? "Vaše heslo bylo změněno." : String.Empty; //successMessage.Visible = !String.IsNullOrEmpty(SuccessMessage); successDiv.Visible = !String.IsNullOrEmpty(SuccessMessage); } EntityDataSource1.WhereParameters.Clear(); EntityDataSource1.WhereParameters.Add("UserId", System.Data.DbType.String, User.Identity.GetUserId()); } // Loads user reservation table using (Entities db = new Entities()) { ReservationManager resMan = new ReservationManager(db); if (Int32.TryParse(Request.QueryString["resid"], out _resId)) { resMan.DeleteUserReservation(_resId, User.Identity.GetUserId()); } List<UserResInfo> reservations = resMan.GetUserReservations(User.Identity.GetUserId()); ResView.DataSource = reservations; ResView.DataBind(); //Louads user lendings table LendingManager lenMan = new LendingManager(db); List<UserLendInfo> lendings = lenMan.GetUserLendings(User.Identity.GetUserId()); LendView.DataSource = lendings; LendView.DataBind(); } }
public List<BookInfo> CatalogSearch(string text) { using (Entities db = new Entities()) { var result = (from s in db.Books where s.Autor.StartsWith(text) select new BookInfo() { ID = s.ID, Autor = s.Autor, Titul = s.Titul, Rok_vydání = s.Rok_vydání, Vydání = s.Vydání, Žánr = s.Žánr, Počet_stran = s.Počet_stran }).ToList<BookInfo>(); return result; } }
public IEnumerable<Transaction> GetAllBudgetTransactions(int budgetId) { try { List<Transaction> budgetsTransactions; using (var db = new Entities()) { db.Transaction.Load(); budgetsTransactions = db.Transaction.Local .Where(x => x.Budget_ID == budgetId) .ToList(); } return budgetsTransactions; } catch (Exception exception) { Console.WriteLine(exception); return null; } }
public bool AddUserToBudget(int userId, int budgetId, int ownerId) { try { using (var db = new Entities()) { db.User.Load(); db.Budget.Load(); if (db.User.Local.All(x => x.Id != userId) || db.Budget.Local.All(x => x.Id != budgetId)) { return false; } var budget = db.Budget.Local.FirstOrDefault(x => x.Id == budgetId); if (budget == null || budget.Owner != ownerId) { return false; } db.UserBudgets.Add(new UserBudgets { Budget_ID = budgetId, User_ID = userId }); db.SaveChanges(); } return true; } catch (Exception exception) { Console.WriteLine(exception); return false; } }
protected void Button1_Click(object sender, EventArgs e) { using (Entities db = new Entities()) { ReservationManager resMan = new ReservationManager(db); //Retrieving list of reservations back from GridView DataSource List<ReservationInfo> reservations = (List<ReservationInfo>)GridView1.DataSource; //Selected index in GridView matches an index in retrieved ListView,so you can get specific info about reservation as following. int bookId = reservations[GridView1.SelectedIndex].BookId; string userId = reservations[GridView1.SelectedIndex].userId; resMan.LendBook(bookId, userId); reservations = resMan.GetReservations(); if (reservations.Count == 0) { Button1.Visible = false; } GridView1.DataSource = reservations; GridView1.DataBind(); } }
public ReservationManager(Entities db) { this.db = db; }
protected void Page_Load(object sender, EventArgs e) { string soonFileName = Server.MapPath("~/Management/Messages/AboutExpireMessage.txt"); string expFileName = Server.MapPath("~/Management/Messages/ExpireMessage.txt"); string lateFileName = Server.MapPath("~/Management/Messages/LateExpireMessage.txt"); string adminFileName = Server.MapPath("~/Management/Messages/AdminExpireMessage.txt"); DateTime soonExpDate = DateTime.Now.Date.AddDays(3); DateTime expDate = DateTime.Now.Date; DateTime lateExpDate = DateTime.Now.Date.AddDays(-7); MailSender ms = new MailSender(); MailMessage message = new MailMessage(); message.Subject = "Scifiknihovna.cz - Upozornění"; ExpireManager expMan = new ExpireManager(); List<Lending> soonExpLendings = expMan.GetExpires(soonExpDate); List<Lending> expLendings = expMan.GetExpires(expDate); List<Lending> lateExpLendings = expMan.GetExpires(lateExpDate); List<Reservation> expReservations = expMan.GetResExpires(expDate); using (Entities db = new Entities()) { // send notification emails before expiration if (soonExpLendings.Count != 0) { foreach (Lending l in soonExpLendings) { string mailBody = File.ReadAllText(soonFileName); var titul = (from b in db.Books where l.Book_ID.Equals(b.ID) select b.Titul).Single(); var autor = (from b in db.Books where l.Book_ID.Equals(b.ID) select b.Autor).Single(); mailBody = mailBody.Replace("##Title##", titul.ToString()); mailBody = mailBody.Replace("##Author##", autor.ToString()); message.Body = mailBody; ms.SendMail(l.User_ID, message); } } //send notification email at expiration if (expLendings.Count != 0) { foreach (Lending l in expLendings) { string mailBody = File.ReadAllText(expFileName); var titul = (from b in db.Books where l.Book_ID.Equals(b.ID) select b.Titul).Single(); var autor = (from b in db.Books where l.Book_ID.Equals(b.ID) select b.Autor).Single(); mailBody = mailBody.Replace("##Title##", titul.ToString()); mailBody = mailBody.Replace("##Author##", autor.ToString()); message.Body = mailBody; ms.SendMail(l.User_ID,message); } } //send notification email week after expiration if (lateExpLendings.Count != 0) { foreach (Lending l in lateExpLendings) { string mailBody = File.ReadAllText(lateFileName); var titul = (from b in db.Books where l.Book_ID.Equals(b.ID) select b.Titul).Single(); var autor = (from b in db.Books where l.Book_ID.Equals(b.ID) select b.Autor).Single(); mailBody = mailBody.Replace("##Title##", titul.ToString()); mailBody = mailBody.Replace("##Author##", autor.ToString()); message.Body = mailBody; ms.SendMail(l.User_ID, message); //mail to admin mailBody = File.ReadAllText(adminFileName); var user = (from u in db.AspNetUsers where l.User_ID.Equals(u.Id) select u).Single<AspNetUser>(); mailBody = mailBody.Replace("##Name##", user.FirstName); mailBody = mailBody.Replace("##Surname##", user.LastName); mailBody = mailBody.Replace("##User##", user.Email); mailBody = mailBody.Replace("##Title##", titul.ToString()); mailBody = mailBody.Replace("##Author##", autor.ToString()); MailMessage adminMessage = new MailMessage("*****@*****.**", "*****@*****.**"); adminMessage.Body = mailBody; adminMessage.Subject= "Scifiknihovna.cz - Nevrácená kniha."; adminMessage.ReplyToList.Add(user.Email); SmtpClient client=new SmtpClient(); client.Send(adminMessage); } } //delete expiring reservations if (expReservations.Count != 0) { var resMan = new ReservationManager(db); foreach (Reservation r in expReservations) { resMan.DeleteReservation(r.Id); } } } }
public LendingManager(Entities db) { this.db = db; }
public IEnumerable<Transaction> GetAllUserTransactions(int userId) { try { List<Transaction> userTransactions; using (var db = new Entities()) { db.Transaction.Load(); userTransactions = db.Transaction.Local .Where(x => x.User_ID == userId) .ToList(); } return userTransactions; } catch (Exception exception) { Console.WriteLine(exception); return null; } }
public bool LogIn(string userEmail, string password) { try { using (var db = new Entities()) { db.User.Load(); if (db.User.Local.All(x => x.Email != userEmail)) { return false; } var user = db.User.Local .First(x => x.Email == userEmail); return user.Password == password; } } catch (Exception exception) { Console.WriteLine(exception); return false; } }
public IEnumerable<TransactionHistoryViewModel> GetTransactionHistory(int budgetId, DateTime from, DateTime to) { try { List<TransactionHistoryViewModel> transactionHistoryViewModels; using (var db = new Entities()) { db.Transaction.Load(); db.TransactionHistory.Load(); transactionHistoryViewModels = db.TransactionHistory.Local .Join(db.Transaction.Local, th => th.Transaction_ID, t => t.Id, (th, t) => new {th, t}) .Where(x => x.th.Budget_ID == budgetId && x.t.Date < to && x.t.Date > from) .Select(x => new TransactionHistoryViewModel { Name = x.t.Name, Amount = x.t.Amount, BalanceAfter = x.th.BalanceAfter, Date = x.t.Date.ToShortDateString(), Type = x.t.Type }) .ToList(); } return transactionHistoryViewModels; } catch (Exception exception) { Console.WriteLine(exception); return null; } }
public bool LogIn(int budgetId, string password, int userId) { try { using (var db = new Entities()) { db.UserBudgets.Load(); if (db.UserBudgets.Local.FirstOrDefault(x => x.Budget_ID == budgetId && x.User_ID == userId) == null) { return false; } var budget = db.Budget.Local.FirstOrDefault(x => x.Id == budgetId); if (budget == null) { return false; } return budget.Password == password; } } catch (Exception exception) { Console.WriteLine(exception); return false; } }