public int Add(AssignmentRoutineViewModel arvm)
        {
            tblAssignmentRoutine tb = new tblAssignmentRoutine();

            tb.Assignment_Name         = arvm.Assignment_Name;
            tb.Teacher_Id              = arvm.Teacher_Id;
            tb.Assignment_Release_Date = arvm.Assignment_Release_Date;
            tb.Deadline    = arvm.Deadline;
            tb.Section_Id  = arvm.Section_Id;
            tb.Faculty_Id  = arvm.Faculty_Id;
            tb.Semester_Id = arvm.Semester_Id;
            tb.YearBatchId = arvm.Year_Batch_Id;


            _db.tblAssignmentRoutines.Add(tb);
            _db.SaveChanges();


            tblStudentRoutineRelation tsr = new tblStudentRoutineRelation();
            var studnet = _db.tblStudents.Where(s => s.Faculty_Id == tb.Faculty_Id && s.Section_Id == tb.Section_Id && s.Semester_Id == tb.Semester_Id && s.YearBatchId == tb.YearBatchId).ToList();

            foreach (var item in studnet)
            {
                tsr.RoutineId = tb.Routine_Id;
                tsr.StudentId = item.Student_Id;
                _db.tblStudentRoutineRelations.Add(tsr);
                _db.SaveChanges();
            }
            return(0);
        }
        public string SendEMail(int sectionid, int semesterid, int facultyid, AssignmentRoutineViewModel arvm)
        {
            using (AssignmentManagementSystemEntities db = new AssignmentManagementSystemEntities())
            {
                List <tblStudent> tb = db.tblStudents.Where(x => x.Section_Id == sectionid && x.Semester_Id == semesterid && x.Faculty_Id == facultyid).ToList();
                //var tb1 = db.tblStudents.ToList();



                try
                {
                    foreach (var item in tb)
                    {
                        if (tb != null)
                        {
                            var          fromAddress  = new MailAddress("*****@*****.**", "santoshmandal97788");
                            var          toAddress    = new MailAddress(item.Email, "To Name");
                            const string fromPassword = "******";
                            const string subject      = "Assignment Management System";
                            var          studentname  = item.Name;


                            var smtp = new SmtpClient
                            {
                                Host                  = "smtp.gmail.com",
                                Port                  = 587,
                                EnableSsl             = true,
                                DeliveryMethod        = SmtpDeliveryMethod.Network,
                                UseDefaultCredentials = false,
                                Credentials           = new NetworkCredential(fromAddress.Address, fromPassword)
                            };
                            using (var message = new MailMessage(fromAddress, toAddress)
                            {
                                Subject = subject,
                                Body = "Hi!" + " " + studentname + " " + "Your " + arvm.Assignment_Name + " Assignment is Released and Deadline is " + arvm.Deadline
                            })
                            {
                                smtp.Send(message);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                }
                return("Email Sent");
            }
        }
        public int Update(AssignmentRoutineViewModel arvm)
        {
            bool fieldChange        = false;
            tblAssignmentRoutine tb = _db.tblAssignmentRoutines.Where(a => a.Routine_Id == arvm.Id).FirstOrDefault();

            if (tb.Section_Id == arvm.Section_Id && tb.Faculty_Id == arvm.Faculty_Id && tb.Semester_Id == arvm.Semester_Id && tb.YearBatchId == arvm.Year_Batch_Id)
            {
                fieldChange = false;
            }
            else
            {
                fieldChange = true;
            }
            tb.Assignment_Name         = arvm.Assignment_Name;
            tb.Teacher_Id              = arvm.Teacher_Id;
            tb.Assignment_Release_Date = arvm.Assignment_Release_Date;
            tb.Deadline    = arvm.Deadline;
            tb.Section_Id  = arvm.Section_Id;
            tb.Faculty_Id  = arvm.Faculty_Id;
            tb.Semester_Id = arvm.Semester_Id;
            tb.YearBatchId = arvm.Year_Batch_Id;
            _db.SaveChanges();
            //tblStudentRoutineRelation tsr = new tblStudentRoutineRelation();
            //var studnet = _db.tblStudents.Where(s => s.Faculty_Id == tb.Faculty_Id && s.Section_Id == tb.Section_Id && s.Semester_Id == tb.Semester_Id && s.YearBatchId == tb.YearBatchId).ToList();
            if (fieldChange)
            {
                var studentlist = _db.tblStudentRoutineRelations.Where(s => s.RoutineId == tb.Routine_Id).ToList();
                foreach (var item in studentlist)
                {
                    _db.tblStudentRoutineRelations.Remove(item);
                }
                tblStudentRoutineRelation tsr = new tblStudentRoutineRelation();
                var studnet = _db.tblStudents.Where(s => s.Faculty_Id == tb.Faculty_Id && s.Section_Id == tb.Section_Id && s.Semester_Id == tb.Semester_Id && s.YearBatchId == tb.YearBatchId).ToList();
                foreach (var item in studnet)
                {
                    tsr.RoutineId = tb.Routine_Id;
                    tsr.StudentId = item.Student_Id;
                    _db.tblStudentRoutineRelations.Add(tsr);
                    _db.SaveChanges();
                }
            }

            return(0);
        }