Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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;
            }
        }
Beispiel #4
0
        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;
            }
        }
Beispiel #5
0
        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;
            }
        }
Beispiel #6
0
        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;

            }
        }
Beispiel #17
0
        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;
            }
        }
Beispiel #18
0
        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;
 }
Beispiel #21
0
        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;
 }
Beispiel #23
0
        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;
            }
        }
Beispiel #24
0
        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;
            }
        }
Beispiel #25
0
        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;
            }
        }
Beispiel #26
0
        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;
            }
        }