コード例 #1
0
        public bool limitTest(SoloReservation res)
        {
            int limit = SqlMethods.QueryLimit();

            TempData["limit"] = limit;

            var applicationDbContext = _context.SoloReservations;
            int i = 0;

            foreach (SoloReservation solo in applicationDbContext)
            {
                if (solo.Date == res.Date && solo.TimeSlot == res.TimeSlot)
                {
                    i++;
                    System.Diagnostics.Debug.WriteLine(i);
                }
            }
            System.Diagnostics.Debug.WriteLine(i);

            if (i < limit)
            {
                return(false);
            }

            return(true);
        }
コード例 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("IdSoloReservation,Name,Date,TimeSlot,Reason,Seat")] SoloReservation soloReservation)
        {
            if (id != soloReservation.IdSoloReservation)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(soloReservation);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SoloReservationExists(soloReservation.IdSoloReservation))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            //ViewData["Seat"] = new SelectList(_context.Seats, "Seat", "Seat", soloReservation.Seat);
            return(View(soloReservation));
        }
コード例 #3
0
ファイル: AdminController.cs プロジェクト: proteanbean/NGTI
        public IActionResult DeleteSolo(int id, string type)
        {
            System.Diagnostics.Debug.WriteLine("deleteSolo : [" + id + "] [" + type + "]");
            SqlConnection conn  = new SqlConnection(connectionString);
            string        sql   = "SELECT * FROM SoloReservations WHERE IdSoloReservation = " + id;
            SqlCommand    cmd   = new SqlCommand(sql, conn);
            var           model = new SoloReservation();

            conn.Open();
            using (conn)
            {
                SqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    var soloRes = new SoloReservation();
                    soloRes.IdSoloReservation = (int)rdr["IdSoloReservation"];
                    soloRes.Name     = (string)rdr["Name"];
                    soloRes.Date     = (DateTime)rdr["Date"];
                    soloRes.TimeSlot = (string)rdr["TimeSlot"];
                    soloRes.Reason   = (string)rdr["Reason"];
                    soloRes.Seat     = (string)rdr["Seat"];
                    model            = soloRes;
                }
            }
            conn.Close();
            return(View(model));
        }
コード例 #4
0
ファイル: AdminController.cs プロジェクト: proteanbean/NGTI
        // Details of solo or group model
        public IActionResult DetailsSolo(int id)
        {
            SqlConnection conn  = new SqlConnection(connectionString);
            string        sql   = "SELECT * FROM SoloReservations WHERE IdSoloReservation = " + id;
            SqlCommand    cmd   = new SqlCommand(sql, conn);
            var           model = new SoloReservation();

            conn.Open();
            using (conn)
            {
                SqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    var soloRes = new SoloReservation();
                    soloRes.IdSoloReservation = (int)rdr["IdSoloReservation"];
                    soloRes.Name     = (string)rdr["Name"];
                    soloRes.Date     = (DateTime)rdr["Date"];
                    soloRes.TimeSlot = (string)rdr["TimeSlot"];
                    soloRes.Reason   = (string)rdr["Reason"];
                    soloRes.Seat     = (string)rdr["Seat"];
                    model            = soloRes;
                }
            }
            conn.Close();
            return(View(model));
        }
コード例 #5
0
        public async Task <IActionResult> Create([Bind("IdSoloReservation,Name,TimeSlot,Reason,Seat")] SoloReservation soloReservation, bool entireWeek, IEnumerable <int> days, int selectedWeek)
        {
            int      year     = DateTime.Now.Year;
            DateTime firstDay = new DateTime(year, 1, 1);

            firstDay             = correctToMonday(firstDay);
            firstDay             = firstDay.AddDays(7 * (selectedWeek - 1));
            soloReservation.Date = firstDay;
            System.Diagnostics.Debug.WriteLine("entireweek = " + entireWeek.ToString());
            //modelstate is not valid when trying to set multiple dates
            if (ModelState.IsValid || !ModelState.IsValid)
            {
                System.Diagnostics.Debug.WriteLine($"testbox = {entireWeek}");
                //reserve whole week automatic
                if (entireWeek == true)
                {
                    for (int x = 0; x < 7; x++)
                    {
                        if (soloReservation.Date >= DateTime.Today)
                        {
                            _context.Add(soloReservation);
                            await _context.SaveChangesAsync();

                            System.Diagnostics.Debug.WriteLine($"added {x}");
                        }
                        soloReservation.Date = soloReservation.Date.AddDays(1);
                        soloReservation.IdSoloReservation = 0;
                    }
                    return(RedirectToAction(nameof(Index)));
                }
                //reserve chosen days
                else
                {
                    foreach (int day in days)
                    {
                        soloReservation.Date = soloReservation.Date.AddDays(day);
                        if (soloReservation.Date >= DateTime.Today)
                        {
                            _context.Add(soloReservation);
                            await _context.SaveChangesAsync();

                            System.Diagnostics.Debug.WriteLine($"added {day}");
                        }
                        soloReservation.Date = firstDay;
                        soloReservation.IdSoloReservation = 0;
                    }
                    return(RedirectToAction(nameof(Index)));
                }
            }
            //ViewData["Seat"] = new SelectList(_context.Seats, "Seat", "Seat", soloReservation.Seat);
            return(View(soloReservation));
        }
コード例 #6
0
 public IActionResult Create([Bind] SoloReservation SoloReservationEntities)
 {
     try
     {
         if (ModelState.IsValid)
         {
             string resp = SolResdb.AddSoloReservationRecord(SoloReservationEntities);
             TempData["msg"] = resp;
         }
     }
     catch (Exception ex)
     {
         TempData["msg"] = ex.Message;
     }
     return(View());
 }
コード例 #7
0
ファイル: AdminController.cs プロジェクト: proteanbean/NGTI
        public async Task <IActionResult> EditSolo(int id, [Bind("IdSoloReservation,Name,Date,TimeSlot,Reason,TableId")] SoloReservation soloReservation)
        {
            if (id != soloReservation.IdSoloReservation)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(soloReservation);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    return(NotFound());
                }
                return(RedirectToAction(nameof(Index)));
            }

            return(View(soloReservation));
        }
コード例 #8
0
        public IActionResult Overview()
        {
            var id = _userManger.GetUserId(HttpContext.User);
            // Sql connection
            SqlConnection conn = new SqlConnection(connectionString);
            string        sql  = "SELECT * FROM SoloReservations Where Date <= CURRENT_TIMESTAMP + 7 and Date >= CURRENT_TIMESTAMP ORDER BY Date ASC";
            string        sql2 = "SELECT * FROM Groupreservations Where Date <= CURRENT_TIMESTAMP + 7 and Date >= CURRENT_TIMESTAMP ORDER BY Date ASC";
            string        sql3 = $"SELECT t.TeamName, COUNT(tm.UserId) AS count FROM Teams t LEFT JOIN TeamMembers tm ON t.TeamName = tm.TeamName WHERE t.teamname IN(SELECT DISTINCT teamname from teammembers WHERE userid = N'{id}') GROUP BY t.TeamName;";

            string[] sqls = new string[3] {
                sql, sql2, sql3
            };

            var solo       = new List <SoloReservation>();
            var group      = new List <GroupReservation>();
            var mygroups   = new List <string>();
            var myGroupRes = new List <GroupReservation>();

            conn.Open();
            using (conn)
            {
                //read all reservations and add them to tuple<solo,group>
                for (int x = 0; x < 3; x++)
                {
                    SqlCommand    cmd = new SqlCommand(sqls[x], conn);
                    SqlDataReader rdr = cmd.ExecuteReader();
                    if (x == 0)
                    {
                        while (rdr.Read())
                        {
                            var res = new SoloReservation();
                            res.IdSoloReservation = (int)rdr["IdSoloReservation"];
                            res.Name     = (string)rdr["Name"];
                            res.Date     = (DateTime)rdr["Date"];
                            res.TimeSlot = (string)rdr["TimeSlot"];
                            res.Reason   = (string)rdr["Reason"];
                            res.Seat     = (string)rdr["Seat"];
                            solo.Add(res);
                        }
                    }
                    else if (x == 1)
                    {
                        while (rdr.Read())
                        {
                            var res = new GroupReservation();
                            res.IdGroupReservation = (int)rdr["IdGroupReservation"];
                            res.Teamname           = (string)rdr["Teamname"];
                            res.Name     = (string)rdr["Name"];
                            res.Date     = (DateTime)rdr["Date"];
                            res.TimeSlot = (string)rdr["TimeSlot"];
                            res.Reason   = (string)rdr["Reason"];
                            res.Seat     = (string)rdr["Seat"];
                            group.Add(res);
                        }
                    }
                    else if (x == 2)
                    {
                        while (rdr.Read())
                        {
                            string TeamName = (string)rdr["TeamName"];
                            mygroups.Add(TeamName);
                        }
                    }
                }
            }
            conn.Close();
            foreach (GroupReservation res in group)
            {
                if (mygroups.Contains(res.Teamname))
                {
                    myGroupRes.Add(res);
                }
            }
            var model = new DashboardViewModel()
            {
                soloList = solo, groupList = group, mygroupList = myGroupRes
            };

            return(View(model));
        }
コード例 #9
0
ファイル: AdminController.cs プロジェクト: proteanbean/NGTI
        public IActionResult Reservations()
        {
            // Sql connection
            SqlConnection conn = new SqlConnection(connectionString);
            string        sql  = "SELECT * FROM SoloReservations ORDER BY Date ASC";
            string        sql2 = "SELECT * FROM GroupReservations ORDER BY Date ASC";

            string[] sqls = new string[2] {
                sql, sql2
            };

            var solo  = new List <SoloReservation>();
            var group = new List <GroupReservation>();

            conn.Open();
            using (conn)
            {
                //read all reservations and add them to tuple<solo,group>
                for (int x = 0; x < 2; x++)
                {
                    SqlCommand    cmd = new SqlCommand(sqls[x], conn);
                    SqlDataReader rdr = cmd.ExecuteReader();
                    if (x == 0)
                    {
                        while (rdr.Read())
                        {
                            var res = new SoloReservation();
                            res.IdSoloReservation = (int)rdr["IdSoloReservation"];
                            res.Name     = (string)rdr["Name"];
                            res.Date     = (DateTime)rdr["Date"];
                            res.TimeSlot = (string)rdr["TimeSlot"];
                            res.Reason   = (string)rdr["Reason"];
                            res.Seat     = (string)rdr["Seat"];
                            solo.Add(res);
                        }
                    }
                    else if (x == 1)
                    {
                        while (rdr.Read())
                        {
                            var res = new GroupReservation();
                            res.IdGroupReservation = (int)rdr["IdGroupReservation"];
                            res.Teamname           = (string)rdr["Teamname"];
                            res.Name     = (string)rdr["Name"];
                            res.Date     = (DateTime)rdr["Date"];
                            res.TimeSlot = (string)rdr["TimeSlot"];
                            res.Reason   = (string)rdr["Reason"];
                            res.Seat     = (string)rdr["Seat"];
                            group.Add(res);
                        }
                    }
                }
            }
            conn.Close();
            var model = new ReservationsViewModel()
            {
                soloList = solo, groupList = group
            };

            return(View(model));
        }