public object AllSlotsOfATeacher(int Id)
        {
            using (SqlConnection Connection = new SqlConnection(ConnectionInformation))
            {
                try
                {
                    Connection.Open();
                    var IsTeacherAvailable = _userRepo.GetById("Users", Id);
                    if (IsTeacherAvailable == null)
                    {
                        return("Teacher Not Available");
                    }

                    string query = "SELECT DISTINCT S.*, sb.Name as Subject_Name,T.Class_Id, C.Name AS Class_Name " +
                                   "from Slot S  INNER JOIN Time_Table T ON S.Time_Table_Id=T.Id INNER JOIN Subject sb ON S.Subject_Id=sb.Id INNER JOIN Class C ON T.Class_Id = C.Id" +
                                   " WHERE S.Teacher_Id = @Teacher_Id";
                    SqlCommand queryCMD = new SqlCommand(query, Connection);
                    queryCMD.Parameters.AddWithValue("Teacher_Id", Id);

                    SqlDataReader reader  = queryCMD.ExecuteReader();
                    List <SlotVM> slotVMs = new List <SlotVM>().ToList();
                    while (reader.Read())
                    {
                        SlotVM slot = new SlotVM()
                        {
                            Id            = Convert.ToInt32(reader["Id"]),
                            Day           = reader["Day"].ToString(),
                            Period_No     = reader["Period_No"].ToString(),
                            Time_Table_Id = Convert.ToInt32(reader["Time_Table_Id"]),
                            Teacher_Id    = Convert.ToInt32(reader["Teacher_Id"]),
                            Subject_Id    = Convert.ToInt32(reader["Subject_Id"]),
                            Subject_Name  = reader["Subject_Name"].ToString(),
                            Class_Id      = Convert.ToInt32(reader["Class_Id"]),
                            Class_Name    = reader["Class_Name"].ToString()
                        };
                        if (reader["Resource_Id"] == DBNull.Value)
                        {
                            slot.Resource_Id = 0;
                        }
                        else
                        {
                            slot.Resource_Id = Convert.ToInt32(reader["Resource_Id"]);
                        }

                        slotVMs.Add(slot);
                    }
                    return(slotVMs);
                }
                catch (Exception e)
                {
                    return(e.Message);
                }
                finally
                {
                    Connection.Close();
                }
            }
        }
Exemplo n.º 2
0
        public ActionResult UpdateSlot([FromBody] SlotVM model)
        {
            var test = _slotService.GetSlot(model.Id);

            if (test == null)
            {
                return(NotFound(400));
            }
            _slotService.UpdateSlot(model.Adapt(test));
            _slotService.Save();
            return(Ok(200));
        }
        public object GetDetailsOfATimeTableByClassId(int ClassId)
        {
            using (SqlConnection Connection = new SqlConnection(ConnectionInformation))
            {
                try
                {
                    Connection.Open();
                    string     TimeTableDetails = "select * from Time_Table where Class_Id=@ClassId ";
                    SqlCommand QueryCommand     = new SqlCommand(TimeTableDetails, Connection);
                    QueryCommand.Parameters.AddWithValue("@ClassId", ClassId);

                    SqlDataReader reader = QueryCommand.ExecuteReader();
                    reader.Read();
                    if (!reader.HasRows)
                    {
                        reader.Close();
                        return("Time Table Not Found");
                    }

                    Time_Table time_Table = new Time_Table()
                    {
                        Id       = Convert.ToInt32(reader["Id"]),
                        Name     = Convert.ToString(reader["Name"]),
                        Grade    = Convert.ToInt32(reader["Grade"]),
                        Admin_Id = Convert.ToInt32(reader["Admin_Id"]),
                        Class_Id = ClassId
                    };
                    reader.Close();

                    string     checkSlot        = "select Id from Time_Table where Class_Id=@Class_Id";
                    SqlCommand checkSlotCommand = new SqlCommand(checkSlot, Connection);
                    checkSlotCommand.Parameters.AddWithValue("@Class_Id", ClassId);

                    SqlDataReader checkSlotReader = checkSlotCommand.ExecuteReader();
                    checkSlotReader.Read();

                    string query = "SELECT distinct s.Id,s.Day,s.Period_No,s.Time_Table_Id,s.Resource_Id,s.Teacher_Id,u.Name AS Teacher_Name,s.Subject_Id,sb.Name AS Subject_Name" +
                                   " FROM Slot s INNER JOIN Subject sb ON s.Subject_Id=sb.Id INNER JOIN users u ON s.Teacher_Id=u.Id WHERE s.Time_Table_Id=@S_Id";
                    using (SqlCommand QueryCMD = new SqlCommand(query, Connection))
                    {
                        QueryCMD.Parameters.AddWithValue("@S_Id", Convert.ToInt32(checkSlotReader["Id"]));
                        checkSlotReader.Close();
                        SqlDataReader sreader = QueryCMD.ExecuteReader();
                        List <SlotVM> slotVMs = new List <SlotVM>().ToList();
                        while (sreader.Read())
                        {
                            SlotVM slot = new SlotVM()
                            {
                                Id            = Convert.ToInt32(sreader["Id"]),
                                Day           = sreader["Day"].ToString(),
                                Period_No     = sreader["Period_No"].ToString(),
                                Time_Table_Id = Convert.ToInt32(sreader["Time_Table_Id"]),
                                Teacher_Id    = Convert.ToInt32(sreader["Teacher_Id"]),
                                Teacher_Name  = sreader["Teacher_Name"].ToString(),
                                Subject_Id    = Convert.ToInt32(sreader["Subject_Id"]),
                                Subject_Name  = sreader["Subject_Name"].ToString()
                            };
                            if (sreader["Resource_Id"] == DBNull.Value)
                            {
                                slot.Resource_Id = 0;
                            }
                            else
                            {
                                slot.Resource_Id = Convert.ToInt32(sreader["Resource_Id"]);
                            }

                            slotVMs.Add(slot);
                        }

                        TableData td = new TableData()
                        {
                            Id       = time_Table.Id,
                            Name     = time_Table.Name,
                            Grade    = time_Table.Grade,
                            Class_id = time_Table.Class_Id,
                            Admin_Id = time_Table.Admin_Id,
                            slot     = slotVMs
                        };
                        sreader.Close();
                        return(td);
                    }
                }catch (Exception e)
                {
                    return(e.Message);
                }
                finally
                {
                    Connection.Close();
                }
            }
        }
        public Object GetTimeTableDetails(int Id)
        {
            using (SqlConnection Connection = new SqlConnection(ConnectionInformation))
            {
                try
                {
                    Connection.Open();
                    var TableDetails = _timetableRepo.GetById("Time_Table", Id);
                    if (TableDetails == null)
                    {
                        return("Time Table Not Found");
                    }
                    var AllSlotsOFATimeTable = _slotRepo.GetByOneParameter("Slot", "Time_Table_Id", Convert.ToString(Id));

                    string query = "SELECT distinct s.Id,s.Day,s.Period_No,s.Time_Table_Id,s.Resource_Id,s.Teacher_Id,u.Name AS Teacher_Name,s.Subject_Id,sb.Name AS Subject_Name" +
                                   " FROM Slot s INNER JOIN Subject sb ON s.Subject_Id=sb.Id INNER JOIN users u ON s.Teacher_Id=u.Id WHERE s.Time_Table_Id=@S_Id";
                    using (SqlCommand QueryCommand = new SqlCommand(query, Connection))
                    {
                        QueryCommand.Parameters.AddWithValue("@S_Id", Id);
                        SqlDataReader reader  = QueryCommand.ExecuteReader();
                        List <SlotVM> slotVMs = new List <SlotVM>().ToList();
                        while (reader.Read())
                        {
                            SlotVM slot = new SlotVM()
                            {
                                Id            = Convert.ToInt32(reader["Id"]),
                                Day           = reader["Day"].ToString(),
                                Period_No     = reader["Period_No"].ToString(),
                                Time_Table_Id = Convert.ToInt32(reader["Time_Table_Id"]),
                                Teacher_Id    = Convert.ToInt32(reader["Teacher_Id"]),
                                Teacher_Name  = reader["Teacher_Name"].ToString(),
                                Subject_Id    = Convert.ToInt32(reader["Subject_Id"]),
                                Subject_Name  = reader["Subject_Name"].ToString()
                            };
                            if (reader["Resource_Id"] == DBNull.Value)
                            {
                                slot.Resource_Id = 0;
                            }
                            else
                            {
                                slot.Resource_Id = Convert.ToInt32(reader["Resource_Id"]);
                            }

                            slotVMs.Add(slot);
                        }

                        TableData td = new TableData()
                        {
                            Id       = TableDetails.Id,
                            Name     = TableDetails.Name,
                            Grade    = TableDetails.Grade,
                            Class_id = TableDetails.Class_Id,
                            Admin_Id = TableDetails.Admin_Id,
                            slot     = slotVMs
                        };
                        reader.Close();
                        return(td);
                    }
                }catch (Exception e)
                {
                    return(e.Message);
                }
                finally
                {
                    Connection.Close();
                }
            }
        }
Exemplo n.º 5
0
        public object FindVanantSlotsInADay()
        {
            using (SqlConnection Connection = new SqlConnection(ConnectionInformation))
            {
                try
                {
                    var day = DateTime.Today.DayOfWeek.ToString();
                    Connection.Open();
                    string Query = "SELECT distinct S.*,SB.Name as Subject_Name " +
                                   "FROM SLOT S INNER JOIN ATTENDANCE A ON S.Teacher_Id=A.User_Id INNER JOIN Subject SB on SB.Id=S.Subject_Id " +
                                   "WHERE S.Day LIKE @Day and A.Status = 0 and a.DATE = CONVERT(date, GETDATE()) ";
                    SqlCommand QueryCMD = new SqlCommand(Query, Connection);
                    QueryCMD.Parameters.AddWithValue("@Date", DateTime.Today);
                    QueryCMD.Parameters.AddWithValue("@Day", "Monday");

                    SqlDataReader reader = QueryCMD.ExecuteReader();
                    List <SlotVM> slots  = new List <SlotVM>();
                    while (reader.Read())
                    {
                        SlotVM slot = new SlotVM()
                        {
                            Id  = Convert.ToInt32(reader["Id"]),
                            Day = Convert.ToString(reader["Day"]),
                            //Start_Time = reader.GetTimeSpan(2),
                            //End_Time = reader.GetTimeSpan(3),
                            Period_No     = Convert.ToString(reader["Period_No"]),
                            Time_Table_Id = Convert.ToInt32(reader["Time_Table_Id"]),
                            //Resource_Id = Convert.ToInt32(reader["Resource_Id"]),
                            Teacher_Id   = Convert.ToInt32(reader["Teacher_Id"]),
                            Subject_Id   = Convert.ToInt32(reader["Subject_Id"]),
                            Subject_Name = reader["Subject_Name"].ToString(),
                        };
                        slots.Add(slot);
                    }
                    reader.Close();

                    string        getAllocatePeriods = "SELECT Slot_Id from Updates where Date= CONVERT(date, GETDATE())";
                    SqlCommand    command            = new SqlCommand(getAllocatePeriods, Connection);
                    SqlDataReader SlotReader         = command.ExecuteReader();
                    while (SlotReader.Read())
                    {
                        var result = slots.Find(x => x.Id == Convert.ToInt32(SlotReader["Slot_Id"]));
                        //var result = slots.Find(x => x.Id == 6);
                        slots.Remove(result);
                    }

                    SlotReader.Close();
                    if (slots.Any())
                    {
                        return(slots);
                    }
                    else
                    {
                        return("No slots not covered");
                    }
                }
                catch (Exception e)
                {
                    return(e.Message);
                }
                finally
                {
                    Connection.Close();
                }
            }
        }