Exemple #1
0
        public ActionResult AddMemberToGroup1(int Id)
        {
            try
            {
                if (Id != 0)
                {
                    var rr = Session["OrgId"].ToString();
                    int i  = Convert.ToInt32(rr);

                    var grp1 = db.OrgGroups
                               .Where(x => x.OrgGroupId == Id)
                               .Where(x => x.OrgId == i)
                               .FirstOrDefault();

                    var grp = new RegisteredUsersGroups
                    {
                        OrgGroupId  = grp1.OrgGroupId,
                        GroupTypeId = grp1.GroupTypeId
                    };

                    var orgtype = db.OrgOrgTypes.Where(x => x.OrgId == i).Select(x => x.OrgTypeId).FirstOrDefault();

                    // Secondary School
                    if (orgtype == 2)
                    {
                        ViewBag.RegisteredUserId = new SelectList(db.RegisteredUserOrganisations
                                                                  .Where(x => x.OrgId == i)
                                                                  .Where(e => e.SecondarySchoolUserRoleId != null), "RegisteredUserId", "FullName");
                        ViewBag.OrgGroupId = new SelectList(db.OrgGroups, "OrgGroupId", "GroupName");
                    }


                    // Primary School
                    if (orgtype == 3)
                    {
                        ViewBag.RegisteredUserId = new SelectList(db.RegisteredUserOrganisations
                                                                  .Where(x => x.OrgId == i)
                                                                  .Where(e => e.PrimarySchoolUserRoleId != null), "RegisteredUserId", "FullName");
                        ViewBag.OrgGroupId = new SelectList(db.OrgGroups, "OrgGroupId", "GroupName");
                    }

                    // Nursery School
                    if (orgtype == 4)
                    {
                        ViewBag.RegisteredUserId = new SelectList(db.RegisteredUserOrganisations
                                                                  .Where(x => x.OrgId == i)
                                                                  .Where(e => e.NurserySchoolUserRoleId != null), "RegisteredUserId", "FullName");
                        ViewBag.OrgGroupId = new SelectList(db.OrgGroups, "OrgGroupId", "GroupName");
                    }

                    return(PartialView("~/Views/Shared/PartialViewsForms/_AddMemberToGroup1.cshtml", grp));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Redirect("~/ErrorHandler.html"));
            }
            return(PartialView("~/Views/Shared/PartialViewsForms/_AddMemberToGroup1.cshtml"));
        }
Exemple #2
0
        public ActionResult Create(RegisteredUsersGroups registeredUsersGroups)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var orgid        = Convert.ToInt32(Session["OrgId"]);
                    var reguseremail = db.RegisteredUserOrganisations
                                       .Where(x => x.OrgId == orgid && x.RegisteredUserId == registeredUsersGroups.RegisteredUserId)
                                       .Select(x => x.Email)
                                       .FirstOrDefault();

                    registeredUsersGroups.RegUserOrgId = orgid;
                    registeredUsersGroups.Email        = reguseremail;
                    db.RegisteredUsersGroups.Add(registeredUsersGroups);
                    db.SaveChanges();
                    var updateclasses = UpdateGroupMemberCount(registeredUsersGroups.OrgGroupId, orgid);

                    return(RedirectToAction("Index", "OrgGroups"));
                }
                ViewBag.OrgGroupId       = new SelectList(db.OrgGroups, "OrgGroupId", "GroupName", registeredUsersGroups.OrgGroupId);
                ViewBag.RegisteredUserId = new SelectList(db.RegisteredUsers, "RegisteredUserId", "FirstName", registeredUsersGroups.RegisteredUserId);
                return(View(registeredUsersGroups));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(View(registeredUsersGroups));
            }
        }
Exemple #3
0
 // POST: RegisteredUsersGroups/Delete/5
 public ActionResult DeleteConfirmed(int id, int grpid)
 {
     try
     {
         var orgid = Convert.ToInt32(Session["OrgId"]);
         var user  = db.RegisteredUsersGroups.Where(x => x.RegisteredUserId == id).Select(j => j.RegisteredUsersGroupsId).FirstOrDefault();
         RegisteredUsersGroups registeredUsersGroups = db.RegisteredUsersGroups.Find(user);
         db.RegisteredUsersGroups.Remove(registeredUsersGroups);
         db.SaveChanges();
         var updateclasses = UpdateGroupMemberCount(registeredUsersGroups.OrgGroupId, orgid);
         return(RedirectToAction("Index", "OrgGroups"));
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(Redirect("~/ErrorHandler.html"));
     }
 }
Exemple #4
0
 public ActionResult Edit(RegisteredUsersGroups registeredUsersGroups)
 {
     try
     {
         if (ModelState.IsValid)
         {
             db.Entry(registeredUsersGroups).State = EntityState.Modified;
             db.SaveChanges();
             return(RedirectToAction("Index"));
         }
         ViewBag.OrgGroupId       = new SelectList(db.OrgGroups, "OrgGroupId", "GroupName", registeredUsersGroups.OrgGroupId);
         ViewBag.RegisteredUserId = new SelectList(db.RegisteredUsers, "RegisteredUserId", "FirstName", registeredUsersGroups.RegisteredUserId);
         return(View(registeredUsersGroups));
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(Redirect("~/ErrorHandler.html"));
     }
 }
Exemple #5
0
        // POST: StudentGuardians/Delete/5
        public ActionResult DeleteConfirmed(int id)
        {
            try
            {
                var rr = Session["OrgId"].ToString();
                int i  = Convert.ToInt32(rr);

                // GET GUARDIANS REGUSERID
                var gd_id = db.StudentGuardians.Where(x => x.StudentGuardianId == id).FirstOrDefault();

                // CHECK IF GUARDIAN IS LINKED TO ANY OTHER STUDENT IN THIS ORG - IF NO - DELETE FROM SG /REGUSERORG/ REGUSER - TABLE AND LOG EVENT. CHECK USER IS DELETED FROM GRP LINKED TO CLASS.


                // COUNT HOW MANY STUDENT GUARDIAN IS LINKED TO IN THE DATABASE
                var linked_stud = db.StudentGuardians.Where(x => x.RegisteredUserId == gd_id.RegisteredUserId).Count();
                // IF COUNT OF LINKED STUDENT IS 1 - MEANS GUARDIAN IS ONLY LINKED TO THE STUDENT - WE GO IN THIS CONDITON AND FULLY DELETE GUARDIAN FROM THE SYSTEM.
                if (linked_stud == 1)
                {
                    // LOG EVENT
                    var orgeventlog = new Org_Events_Log()
                    {
                        Org_Event_SubjectId       = gd_id.RegisteredUserId.ToString(),
                        Org_Event_SubjectName     = gd_id.GuardianFullName,
                        Org_Event_TriggeredbyId   = Session["RegisteredUserId"].ToString(),
                        Org_Event_TriggeredbyName = Session["FullName"].ToString(),
                        Org_Event_Time            = DateTime.Now,
                        OrgId            = Session["OrgId"].ToString(),
                        Org_Events_Types = Org_Events_Types.Deregistered_Guardian
                    };
                    db.Org_Events_Logs.Add(orgeventlog);
                    db.SaveChanges();

                    // UPDATE STUD'S GUARDIAN COUNT.

                    // GET STUD ID
                    var studid       = db.StudentGuardians.Where(x => x.StudentGuardianId == id).Select(x => x.StudentId).FirstOrDefault();
                    var locatestud   = db.RegisteredUsers.AsNoTracking().Where(x => x.RegisteredUserId == studid).FirstOrDefault();
                    var currentcount = db.RegisteredUsers.Where(x => x.RegisteredUserId == studid).Select(x => x.PgCount).FirstOrDefault();

                    var studgaurd = new RegisteredUser
                    {
                        RegisteredUserId     = locatestud.RegisteredUserId,
                        RegisteredUserTypeId = locatestud.RegisteredUserTypeId,
                        FirstName            = locatestud.FirstName,
                        LastName             = locatestud.LastName,
                        Email                     = locatestud.Email,
                        LoginErrorMsg             = locatestud.LoginErrorMsg,
                        Password                  = locatestud.Password,
                        ConfirmPassword           = locatestud.ConfirmPassword,
                        Telephone                 = locatestud.Telephone,
                        SelectedOrg               = locatestud.SelectedOrg,
                        ClassId                   = locatestud.ClassId,
                        GenderId                  = locatestud.GenderId,
                        TribeId                   = locatestud.TribeId,
                        DateOfBirth               = locatestud.DateOfBirth,
                        EnrolmentDate             = locatestud.EnrolmentDate,
                        ReligionId                = locatestud.ReligionId,
                        PrimarySchoolUserRoleId   = locatestud.PrimarySchoolUserRoleId,
                        SecondarySchoolUserRoleId = locatestud.SecondarySchoolUserRoleId,
                        NurserySchoolUserRoleId   = locatestud.NurserySchoolUserRoleId,
                        StudentRegFormId          = locatestud.StudentRegFormId,
                        CreatedBy                 = locatestud.CreatedBy,
                        RegUserOrgBrand           = locatestud.RegUserOrgBrand,
                        FullName                  = locatestud.FirstName + " " + locatestud.LastName,
                        IsTester                  = locatestud.IsTester,
                        TempIntHolder             = locatestud.TempIntHolder,
                        TitleId                   = locatestud.TitleId,
                        RelationshipId            = locatestud.RelationshipId,
                        ClassRef                  = locatestud.ClassRef,
                        PgCount                   = currentcount - 1
                    };
                    locatestud = studgaurd;
                    db.Entry(studgaurd).State = EntityState.Modified;
                    db.SaveChanges();

                    // SOFT DELETE USER
                    // GET USER'S DATA
                    var userdataRu  = db.RegisteredUsers.Where(x => x.RegisteredUserId == gd_id.RegisteredUserId).FirstOrDefault();
                    var userdataRug = db.RegisteredUserOrganisations
                                      .Where(x => x.RegisteredUserId == gd_id.RegisteredUserId)
                                      .Where(x => x.OrgId == i)
                                      .FirstOrDefault();
                    var remvuser = new RemovedRegisteredUser
                    {
                        RegisteredUserId        = userdataRu.RegisteredUserId,
                        CreationDate            = DateTime.Now,
                        FirstName               = userdataRu.FirstName,
                        LastName                = userdataRu.LastName,
                        FullName                = userdataRu.FullName,
                        Email                   = userdataRu.Email,
                        Telephone               = userdataRu.Telephone,
                        RegisteredUserType      = userdataRu.RegisteredUserTypeId,
                        PrimarySchoolUserRole   = userdataRug.PrimarySchoolUserRoleId.GetValueOrDefault(),
                        SecondarySchoolUserRole = userdataRug.SecondarySchoolUserRoleId.GetValueOrDefault(),
                        NurserySchoolUserRole   = userdataRug.NurserySchoolUserRoleId.GetValueOrDefault(),
                        OrgId                   = userdataRug.OrgId,
                        ClassId                 = userdataRu.ClassId.GetValueOrDefault(),
                        ClassRef                = userdataRu.ClassRef.GetValueOrDefault(),
                        GenderId                = userdataRu.GenderId.GetValueOrDefault(),
                        ReligionId              = userdataRu.ReligionId.GetValueOrDefault(),
                        StudentRegFormId        = userdataRu.StudentRegFormId.GetValueOrDefault(),
                        RelationshipId          = gd_id.RelationshipId,
                        IsTester                = (bool)userdataRu.IsTester.GetValueOrDefault(),
                        DateOfBirth             = userdataRu.DateOfBirth,
                        LastLogOn               = userdataRug.LastLogOn,
                        EnrolmentDate           = userdataRug.EnrolmentDate.GetValueOrDefault(),
                        EnrolledBy              = Convert.ToInt32(userdataRug.CreatedBy)
                    };
                    db.RemovedRegisteredUsers.Add(remvuser);
                    db.SaveChanges();


                    // REMV FROM PG FROM SG
                    RegisteredUser remv_g = db.RegisteredUsers.Find(gd_id.RegisteredUserId);
                    db.RegisteredUsers.Remove(remv_g);
                    db.SaveChanges();

                    // LOOP THROUGH GROUPS IN ORG AND UPDATE COUNT
                    var orggrp  = db.OrgGroups.Where(x => x.OrgId == i).Select(x => x.OrgGroupId).ToList();
                    var grplist = new List <int>(orggrp);

                    foreach (var grp in grplist)
                    {
                        //UPDATE GROUP COUNT
                        var otherController = DependencyResolver.Current.GetService <RegisteredUsersGroupsController>();
                        var result          = otherController.UpdateGroupMemberCount(grp, i);
                    }
                }
                else
                {
                    // GET THE STUD PG IS BEING UNLINKED FROM
                    var stud_id = db.StudentGuardians.Where(x => x.StudentGuardianId == id).FirstOrDefault();

                    // CHECK HOW MANY STU IN ORG PG IS LINKED TO - IF 1 - REMV PG FROM SG / REGUORG - ONLY
                    var mylinkedstudsinorg = db.StudentGuardians
                                             .Where(x => x.RegisteredUserId == gd_id.RegisteredUserId)
                                             .Where(x => x.OrgId == i)
                                             .Select(x => x.RegisteredUserId)
                                             .Count();


                    // COUNT OF mylinkedstudsinorg IS 1 - MEANS PG IS LINKED TO ONLY 1 STUD IN THIS ORG. - REMV PG FROM REGUSERORG / SG / ORGGROUP /TABLE
                    if (mylinkedstudsinorg == 1)
                    {
                        var getpginreguserorg = db.RegisteredUserOrganisations
                                                .Where(x => x.RegisteredUserId == gd_id.RegisteredUserId)
                                                .Select(x => x.RegisteredUserOrganisationId)
                                                .FirstOrDefault();

                        // SOFT DELETE USER
                        // GET USER'S DATA
                        var userdataRu = db.RegisteredUsers.Where(x => x.RegisteredUserId == gd_id.RegisteredUserId).FirstOrDefault();

                        var userdataRug = db.RegisteredUserOrganisations
                                          .Where(x => x.RegisteredUserId == gd_id.RegisteredUserId)
                                          .Where(x => x.OrgId == i)
                                          .FirstOrDefault();

                        var remvuser = new RemovedRegisteredUser
                        {
                            RegisteredUserId        = userdataRu.RegisteredUserId,
                            CreationDate            = DateTime.Now,
                            FirstName               = userdataRu.FirstName,
                            LastName                = userdataRu.LastName,
                            FullName                = userdataRu.FullName,
                            Email                   = userdataRu.Email,
                            Telephone               = userdataRu.Telephone,
                            RegisteredUserType      = userdataRu.RegisteredUserTypeId,
                            PrimarySchoolUserRole   = userdataRug.PrimarySchoolUserRoleId.GetValueOrDefault(),
                            SecondarySchoolUserRole = userdataRug.SecondarySchoolUserRoleId.GetValueOrDefault(),
                            NurserySchoolUserRole   = userdataRug.NurserySchoolUserRoleId.GetValueOrDefault(),
                            OrgId                   = userdataRug.OrgId,
                            ClassId                 = userdataRu.ClassId.GetValueOrDefault(),
                            ClassRef                = userdataRu.ClassRef.GetValueOrDefault(),
                            GenderId                = userdataRu.GenderId.GetValueOrDefault(),
                            ReligionId              = userdataRu.ReligionId.GetValueOrDefault(),
                            StudentRegFormId        = userdataRu.StudentRegFormId.GetValueOrDefault(),
                            RelationshipId          = stud_id.RelationshipId.GetValueOrDefault(),
                            IsTester                = (bool)userdataRu.IsTester.GetValueOrDefault(),
                            DateOfBirth             = userdataRu.DateOfBirth,
                            LastLogOn               = userdataRug.LastLogOn,
                            EnrolmentDate           = userdataRug.EnrolmentDate.GetValueOrDefault(),
                            EnrolledBy              = Convert.ToInt32(userdataRug.CreatedBy)
                        };
                        db.RemovedRegisteredUsers.Add(remvuser);
                        db.SaveChanges();

                        // REMV FROM REGUSERORG
                        RegisteredUserOrganisation reguserord = db.RegisteredUserOrganisations.Find(getpginreguserorg);
                        db.RegisteredUserOrganisations.Remove(reguserord);
                        db.SaveChanges();


                        // REMV PG FROM ORGGRP -
                        var pginorggrp = db.RegisteredUsersGroups
                                         .Where(x => x.RegisteredUserId == gd_id.RegisteredUserId)
                                         .Where(x => x.RegUserOrgId == i)
                                         .Select(x => x.RegisteredUsersGroupsId)
                                         .ToList();

                        var pgingrp = new List <int>(pginorggrp);

                        foreach (var pg in pginorggrp)
                        {
                            RegisteredUsersGroups regusrg = db.RegisteredUsersGroups.Find(pg);
                            db.RegisteredUsersGroups.Remove(regusrg);
                            db.SaveChanges();
                        }
                        // LOG EVENT
                        var orgeventlog = new Org_Events_Log()
                        {
                            Org_Event_SubjectId       = gd_id.RegisteredUserId.ToString(),
                            Org_Event_SubjectName     = stud_id.GuardianFullName,
                            Org_Event_TriggeredbyId   = Session["RegisteredUserId"].ToString(),
                            Org_Event_TriggeredbyName = Session["FullName"].ToString(),
                            Org_Event_Time            = DateTime.Now,
                            OrgId            = Session["OrgId"].ToString(),
                            Org_Events_Types = Org_Events_Types.Deregistered_Guardian
                        };
                        db.Org_Events_Logs.Add(orgeventlog);
                        db.SaveChanges();


                        // UPDATE STUD'S GUARDIAN COUNT.
                        // GET STUD ID
                        var studid       = db.StudentGuardians.Where(x => x.StudentGuardianId == id).Select(x => x.StudentId).FirstOrDefault();
                        var locatestud   = db.RegisteredUsers.AsNoTracking().Where(x => x.RegisteredUserId == studid).FirstOrDefault();
                        var currentcount = db.RegisteredUsers.Where(x => x.RegisteredUserId == studid).Select(x => x.PgCount).FirstOrDefault();

                        var studgaurd = new RegisteredUser
                        {
                            RegisteredUserId     = locatestud.RegisteredUserId,
                            RegisteredUserTypeId = locatestud.RegisteredUserTypeId,
                            FirstName            = locatestud.FirstName,
                            LastName             = locatestud.LastName,
                            Email                     = locatestud.Email,
                            LoginErrorMsg             = locatestud.LoginErrorMsg,
                            Password                  = locatestud.Password,
                            ConfirmPassword           = locatestud.ConfirmPassword,
                            Telephone                 = locatestud.Telephone,
                            SelectedOrg               = locatestud.SelectedOrg,
                            ClassId                   = locatestud.ClassId,
                            GenderId                  = locatestud.GenderId,
                            TribeId                   = locatestud.TribeId,
                            DateOfBirth               = locatestud.DateOfBirth,
                            EnrolmentDate             = locatestud.EnrolmentDate,
                            ReligionId                = locatestud.ReligionId,
                            PrimarySchoolUserRoleId   = locatestud.PrimarySchoolUserRoleId,
                            SecondarySchoolUserRoleId = locatestud.SecondarySchoolUserRoleId,
                            NurserySchoolUserRoleId   = locatestud.NurserySchoolUserRoleId,
                            StudentRegFormId          = locatestud.StudentRegFormId,
                            CreatedBy                 = locatestud.CreatedBy,
                            RegUserOrgBrand           = locatestud.RegUserOrgBrand,
                            FullName                  = locatestud.FirstName + " " + locatestud.LastName,
                            IsTester                  = locatestud.IsTester,
                            TempIntHolder             = locatestud.TempIntHolder,
                            TitleId                   = locatestud.TitleId,
                            RelationshipId            = locatestud.RelationshipId,
                            ClassRef                  = locatestud.ClassRef,
                            PgCount                   = currentcount - 1
                        };
                        locatestud = studgaurd;
                        db.Entry(studgaurd).State = EntityState.Modified;
                        db.SaveChanges();



                        // REMV FROM PG FROM SG
                        StudentGuardian studgd = db.StudentGuardians.Find(id);
                        db.StudentGuardians.Remove(studgd);
                        db.SaveChanges();
                    }
                    else
                    {
                        // GET STUD CLASS GRP ID
                        var studclassGrpid = db.StudentGuardians
                                             .Where(x => x.RegisteredUserId == gd_id.RegisteredUserId)
                                             .Where(x => x.OrgId == i)
                                             .Where(x => x.StudentId == stud_id.StudentId)
                                             .Select(x => x.Stu_class_Org_Grp_id)
                                             .FirstOrDefault();

                        // COUNT HOW MANY STUDENTS GD IS LINKED TO IN CLASS
                        var alllinkedstuds = db.StudentGuardians
                                             .Where(x => x.RegisteredUserId == gd_id.RegisteredUserId)
                                             .Where(x => x.OrgId == i)
                                             .Where(x => x.Stu_class_Org_Grp_id == studclassGrpid)
                                             .Select(x => x.Stu_class_Org_Grp_id == studclassGrpid)
                                             .Count();


                        // LOOP THRU THE LIST OF STUDENTS PG IS LINKED TO
                        var mylinkedstuds = db.StudentGuardians.Where(x => x.RegisteredUserId == gd_id.RegisteredUserId).Select(x => x.StudentGuardianId).ToList();
                        var linkstudents  = new List <int>(mylinkedstuds);

                        // MORE THAN 1 - LOOP THRU LIST OF STUD AND REMV FROM SG
                        foreach (var std in mylinkedstuds)
                        {
                            if (std == id)
                            {
                                // PG IS LINKED TO ANOTHER STUD IN CLASS - SO WE ONLY REMV RECRD OF LINKED STU N PG IN REGUSRORGGRP
                                if (alllinkedstuds > 1)
                                {
                                    // UPDATE STUD'S GUARDIAN COUNT.
                                    // GET STUD ID
                                    var studid       = db.StudentGuardians.Where(x => x.StudentGuardianId == id).Select(x => x.StudentId).FirstOrDefault();
                                    var locatestud   = db.RegisteredUsers.AsNoTracking().Where(x => x.RegisteredUserId == studid).FirstOrDefault();
                                    var currentcount = db.RegisteredUsers.Where(x => x.RegisteredUserId == studid).Select(x => x.PgCount).FirstOrDefault();

                                    var studgaurd = new RegisteredUser
                                    {
                                        RegisteredUserId     = locatestud.RegisteredUserId,
                                        RegisteredUserTypeId = locatestud.RegisteredUserTypeId,
                                        FirstName            = locatestud.FirstName,
                                        LastName             = locatestud.LastName,
                                        Email                     = locatestud.Email,
                                        LoginErrorMsg             = locatestud.LoginErrorMsg,
                                        Password                  = locatestud.Password,
                                        ConfirmPassword           = locatestud.ConfirmPassword,
                                        Telephone                 = locatestud.Telephone,
                                        SelectedOrg               = locatestud.SelectedOrg,
                                        ClassId                   = locatestud.ClassId,
                                        GenderId                  = locatestud.GenderId,
                                        TribeId                   = locatestud.TribeId,
                                        DateOfBirth               = locatestud.DateOfBirth,
                                        EnrolmentDate             = locatestud.EnrolmentDate,
                                        ReligionId                = locatestud.ReligionId,
                                        PrimarySchoolUserRoleId   = locatestud.PrimarySchoolUserRoleId,
                                        SecondarySchoolUserRoleId = locatestud.SecondarySchoolUserRoleId,
                                        NurserySchoolUserRoleId   = locatestud.NurserySchoolUserRoleId,
                                        StudentRegFormId          = locatestud.StudentRegFormId,
                                        CreatedBy                 = locatestud.CreatedBy,
                                        RegUserOrgBrand           = locatestud.RegUserOrgBrand,
                                        FullName                  = locatestud.FirstName + " " + locatestud.LastName,
                                        IsTester                  = locatestud.IsTester,
                                        TempIntHolder             = locatestud.TempIntHolder,
                                        TitleId                   = locatestud.TitleId,
                                        RelationshipId            = locatestud.RelationshipId,
                                        ClassRef                  = locatestud.ClassRef,
                                        PgCount                   = currentcount - 1
                                    };
                                    locatestud = studgaurd;
                                    db.Entry(studgaurd).State = EntityState.Modified;
                                    db.SaveChanges();

                                    // REMV FROM PG FROM SG
                                    StudentGuardian studgd = db.StudentGuardians.Find(id);
                                    db.StudentGuardians.Remove(studgd);
                                    db.SaveChanges();

                                    // REMV PG FROM ORGGRP -
                                    var pginorggrp = db.RegisteredUsersGroups
                                                     .Where(x => x.RegisteredUserId == gd_id.RegisteredUserId)
                                                     .Where(x => x.RegUserOrgId == i)
                                                     .Where(X => X.OrgGroupId == studclassGrpid)
                                                     .Where(x => x.LinkedStudentId == studid)
                                                     .Select(x => x.RegisteredUsersGroupsId).ToList();
                                    var pgingrp = new List <int>(pginorggrp);

                                    foreach (var pg in pginorggrp)
                                    {
                                        RegisteredUsersGroups regusrg = db.RegisteredUsersGroups.Find(pg);
                                        db.RegisteredUsersGroups.Remove(regusrg);
                                        db.SaveChanges();


                                        // LOOP THROUGH GROUPS IN ORG AND UPDATE COUNT
                                        var orggrp  = db.OrgGroups.Where(x => x.OrgId == i).Select(x => x.OrgGroupId).ToList();
                                        var grplist = new List <int>(orggrp);

                                        foreach (var grp in grplist)
                                        {
                                            //UPDATE GROUP COUNT
                                            var otherController = DependencyResolver.Current.GetService <RegisteredUsersGroupsController>();
                                            var result          = otherController.UpdateGroupMemberCount(grp, i);
                                        }
                                    }
                                    //EXIT
                                    return(RedirectToAction("Index"));
                                }
                                // PG IS LINKED TO JUST THIS STUD IN CLASS - SO WE REMV FROM CLASSGRP AND SG TABLE

                                if (alllinkedstuds == 1)
                                {
                                    // REMV PG FROM ORGGRP -
                                    var pginorggrp = db.RegisteredUsersGroups
                                                     .Where(x => x.RegisteredUserId == gd_id.RegisteredUserId)
                                                     .Where(x => x.RegUserOrgId == i)
                                                     .Where(X => X.OrgGroupId == studclassGrpid)
                                                     .Select(x => x.RegisteredUsersGroupsId).ToList();

                                    var pgingrp = new List <int>(pginorggrp);

                                    foreach (var pg in pginorggrp)
                                    {
                                        RegisteredUsersGroups regusrg = db.RegisteredUsersGroups.Find(pg);
                                        db.RegisteredUsersGroups.Remove(regusrg);
                                        db.SaveChanges();

                                        // LOOP THROUGH GROUPS IN ORG AND UPDATE COUNT
                                        var orggrp  = db.OrgGroups.Where(x => x.OrgId == i).Select(x => x.OrgGroupId).ToList();
                                        var grplist = new List <int>(orggrp);

                                        foreach (var grp in grplist)
                                        {
                                            //UPDATE GROUP COUNT
                                            var otherController = DependencyResolver.Current.GetService <RegisteredUsersGroupsController>();
                                            var result          = otherController.UpdateGroupMemberCount(grp, i);
                                        }
                                    }

                                    // UPDATE STUD'S GUARDIAN COUNT.
                                    // GET STUD ID
                                    var studid       = db.StudentGuardians.Where(x => x.StudentGuardianId == id).Select(x => x.StudentId).FirstOrDefault();
                                    var locatestud   = db.RegisteredUsers.AsNoTracking().Where(x => x.RegisteredUserId == studid).FirstOrDefault();
                                    var currentcount = db.RegisteredUsers.Where(x => x.RegisteredUserId == studid).Select(x => x.PgCount).FirstOrDefault();

                                    var studgaurd = new RegisteredUser
                                    {
                                        RegisteredUserId     = locatestud.RegisteredUserId,
                                        RegisteredUserTypeId = locatestud.RegisteredUserTypeId,
                                        FirstName            = locatestud.FirstName,
                                        LastName             = locatestud.LastName,
                                        Email                     = locatestud.Email,
                                        LoginErrorMsg             = locatestud.LoginErrorMsg,
                                        Password                  = locatestud.Password,
                                        ConfirmPassword           = locatestud.ConfirmPassword,
                                        Telephone                 = locatestud.Telephone,
                                        SelectedOrg               = locatestud.SelectedOrg,
                                        ClassId                   = locatestud.ClassId,
                                        GenderId                  = locatestud.GenderId,
                                        TribeId                   = locatestud.TribeId,
                                        DateOfBirth               = locatestud.DateOfBirth,
                                        EnrolmentDate             = locatestud.EnrolmentDate,
                                        ReligionId                = locatestud.ReligionId,
                                        PrimarySchoolUserRoleId   = locatestud.PrimarySchoolUserRoleId,
                                        SecondarySchoolUserRoleId = locatestud.SecondarySchoolUserRoleId,
                                        NurserySchoolUserRoleId   = locatestud.NurserySchoolUserRoleId,
                                        StudentRegFormId          = locatestud.StudentRegFormId,
                                        CreatedBy                 = locatestud.CreatedBy,
                                        RegUserOrgBrand           = locatestud.RegUserOrgBrand,
                                        FullName                  = locatestud.FirstName + " " + locatestud.LastName,
                                        IsTester                  = locatestud.IsTester,
                                        TempIntHolder             = locatestud.TempIntHolder,
                                        TitleId                   = locatestud.TitleId,
                                        RelationshipId            = locatestud.RelationshipId,
                                        ClassRef                  = locatestud.ClassRef,
                                        PgCount                   = currentcount - 1
                                    };
                                    locatestud = studgaurd;
                                    db.Entry(studgaurd).State = EntityState.Modified;
                                    db.SaveChanges();

                                    // REMV FROM PG FROM SG
                                    StudentGuardian studgd = db.StudentGuardians.Find(id);
                                    db.StudentGuardians.Remove(studgd);
                                    db.SaveChanges();
                                }
                            }
                        }
                    };
                };
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Redirect("~/ErrorHandler.html"));
            }
            return(RedirectToAction("Index"));
        }