コード例 #1
0
        public ActionResult Signin(RegisteredUser registeredUser)
        {
            try
            {
                var reguserdetails  = db.RegisteredUsers.Where(x => x.Email == registeredUser.Email && x.Password == registeredUser.Password).FirstOrDefault();
                var orgredirect     = db.RegisteredUserOrganisations.Where(x => x.Email == registeredUser.Email.ToString()).Select(x => x.OrgId).FirstOrDefault();
                var reguserorg      = db.RegisteredUserOrganisations.Where(x => x.Email == registeredUser.Email).Select(x => x.OrgName).FirstOrDefault();
                var regUserOrgBrand = db.RegisteredUserOrganisations.Where(x => x.Email == registeredUser.Email).Select(x => x.RegUserOrgBrand).FirstOrDefault();
                if (reguserdetails == null)
                {
                    registeredUser.LoginErrorMsg = "Invalid Email or Password";
                    return(View("Signin", registeredUser));
                }
                else
                {
                    Session["RegisteredUserId"]        = reguserdetails.RegisteredUserId.ToString();
                    Session["Email"]                   = reguserdetails.Email.ToString();
                    Session["FullName"]                = reguserdetails.FullName;
                    Session["RegisteredUserTypeId"]    = reguserdetails.RegisteredUserTypeId;
                    Session["OrgId"]                   = orgredirect;
                    Session["OrgName"]                 = reguserorg;
                    Session["regUserOrgBrand"]         = regUserOrgBrand;
                    Session["regOrgBrandButtonColour"] = db.OrgBrands.Where(x => x.OrgBrandId == regUserOrgBrand).Select(x => x.OrgBrandButtonColour).FirstOrDefault();
                    Session["regOrgLogo"]              = db.Files.Where(x => x.OrgBrandId == regUserOrgBrand).Select(x => x.Content).FirstOrDefault();
                    Session["IsTester"]                = reguserdetails.IsTester;
                    Session["OrgType"]                 = db.Orgs.Where(x => x.OrgId == orgredirect).Select(x => x.OrgTypeId).FirstOrDefault();
                    Session["IsAdmin"]                 = db.RegisteredUsersGroups.Where(x => x.RegisteredUserId == reguserdetails.RegisteredUserId).Where(x => x.RegUserOrgId == orgredirect).Where(x => x.GroupTypeId == 1).Select(x => x.GroupTypeId).FirstOrDefault();
                    Session["IsParent/Guardian"]       = db.StudentGuardians.Where(x => x.RegisteredUserId == reguserdetails.RegisteredUserId && x.OrgId == orgredirect).Select(x => x.GuardianEmailAddress).FirstOrDefault();
                }
                var reguseraccessLogs = new RegUsersAccessLog
                {
                    OrgId        = orgredirect,
                    SessionId    = HttpContext.Session.SessionID.ToString(),
                    RegUserId    = reguserdetails.RegisteredUserId,
                    UserFullName = reguserdetails.FullName,
                    LogInTime    = DateTime.Now,
                    LogOutTime   = null
                };
                db.RegUsersAccessLogs.Add(reguseraccessLogs);
                db.SaveChanges();


                //Upon successful logon, update logon date/time column in ReguserOrg Table
                var rr        = Session["OrgId"].ToString();
                int i         = Convert.ToInt32(rr);
                var reguserid = db.RegisteredUserOrganisations.AsNoTracking().Where(x => x.RegisteredUserId == reguserdetails.RegisteredUserId).Where(x => x.OrgId == i).FirstOrDefault();

                var reguserorgn = new RegisteredUserOrganisation
                {
                    RegisteredUserOrganisationId = reguserid.RegisteredUserOrganisationId,
                    RegisteredUserId             = reguserid.RegisteredUserId,
                    OrgId                     = reguserid.OrgId,
                    Email                     = reguserid.Email,
                    FirstName                 = reguserid.FirstName,
                    LastName                  = reguserid.LastName,
                    OrgName                   = reguserid.OrgName,
                    RegUserOrgBrand           = reguserid.RegUserOrgBrand,
                    IsTester                  = reguserid.IsTester,
                    RegisteredUserTypeId      = reguserid.RegisteredUserTypeId,
                    PrimarySchoolUserRoleId   = reguserid.PrimarySchoolUserRoleId,
                    SecondarySchoolUserRoleId = reguserid.SecondarySchoolUserRoleId,
                    NurserySchoolUserRoleId   = reguserid.NurserySchoolUserRoleId,
                    EnrolmentDate             = reguserid.EnrolmentDate,
                    CreatedBy                 = reguserid.CreatedBy,
                    FullName                  = reguserid.FullName,
                    TitleId                   = reguserid.TitleId,
                    LastLogOn                 = DateTime.Now,
                };

                reguserid = reguserorgn;
                db.Entry(reguserid).State = EntityState.Modified;
                db.SaveChanges();

                if (orgredirect == 23)
                {
                    return(RedirectToAction("SystemAdminIndex", "Orgs", new { id = orgredirect }));
                }

                if (Session["IsParent/Guardian"] != null)
                {
                    // check status of Isregistered
                    var registeredstatus = db.StudentGuardians
                                           .Where(x => x.RegisteredUserId == reguserid.RegisteredUserId)
                                           //.Where(x => x.OrgId == reguserid.OrgId)
                                           .Where(x => x.IsRegistered == false || x.IsRegistered == null)
                                           .Select(x => x.IsRegistered)
                                           .ToList();

                    if (registeredstatus.Count > 0)
                    {
                        // Locate SG in the SG table and set IsRegistered to TRUE
                        var locateGD = db.StudentGuardians.AsNoTracking()
                                       .Where(x => x.RegisteredUserId == reguserid.RegisteredUserId)
                                       .Where(x => x.IsRegistered == false || x.IsRegistered == null)
                                       //.Where(x => x.OrgId == reguserid.OrgId)
                                       .FirstOrDefault();

                        var updategd = new StudentGuardian
                        {
                            StudentGuardianId    = locateGD.StudentGuardianId,
                            RegisteredUserId     = locateGD.RegisteredUserId,
                            GuardianFirstName    = locateGD.GuardianFirstName,
                            GuardianLastName     = locateGD.GuardianLastName,
                            GuardianFullName     = locateGD.GuardianFullName,
                            GuardianEmailAddress = locateGD.GuardianEmailAddress,
                            DateAdded            = locateGD.DateAdded,
                            StudentId            = locateGD.StudentId,
                            StudentFullName      = locateGD.StudentFullName,
                            OrgId                = locateGD.OrgId,
                            TitleId              = locateGD.TitleId,
                            RelationshipId       = locateGD.RelationshipId,
                            Telephone            = locateGD.Telephone,
                            Stu_class_Org_Grp_id = locateGD.Stu_class_Org_Grp_id,
                            IsRegistered         = true
                        };
                        locateGD = updategd;
                        db.Entry(locateGD).State = EntityState.Modified;
                        db.SaveChanges();
                    }

                    return(RedirectToAction("PGSchCentre", "Orgs", new { id = orgredirect }));
                }
                else
                {
                    return(RedirectToAction("Index", "Orgs", new { id = orgredirect }));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(View(registeredUser));
            }
        }
コード例 #2
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"));
        }
コード例 #3
0
        public ActionResult Edit(Org org)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    db.Entry(org).State = EntityState.Modified;
                    db.SaveChanges();

                    var changedorg = db.OrgOrgTypes.AsNoTracking().Where(x => x.OrgId == org.OrgId).FirstOrDefault();
                    var orgorgtype = new OrgOrgType
                    {
                        OrgOrgTypeId = changedorg.OrgOrgTypeId,
                        OrgId        = changedorg.OrgId,
                        OrgTypeId    = changedorg.OrgTypeId,
                        OrgName      = org.OrgName
                    };
                    changedorg = orgorgtype;
                    db.Entry(changedorg).State = EntityState.Modified;
                    db.SaveChanges();

                    //Update RegisteredUserOrganisations.Orgname
                    var userlinkedtoorg = db.RegisteredUserOrganisations.Where(x => x.OrgId == changedorg.OrgId).Select(p => p.RegisteredUserId).ToList();
                    var listofusers     = new List <int>(userlinkedtoorg);

                    foreach (var usr in userlinkedtoorg)
                    {
                        var getuser = db.RegisteredUserOrganisations.AsNoTracking().Where(x => x.RegisteredUserId == usr).FirstOrDefault();

                        var reguserorg = new RegisteredUserOrganisation
                        {
                            RegisteredUserOrganisationId = getuser.RegisteredUserOrganisationId,
                            RegisteredUserId             = getuser.RegisteredUserId,
                            OrgId                     = getuser.OrgId,
                            Email                     = getuser.Email,
                            FirstName                 = getuser.FirstName,
                            LastName                  = getuser.LastName,
                            OrgName                   = org.OrgName,
                            RegUserOrgBrand           = getuser.RegUserOrgBrand,
                            IsTester                  = getuser.IsTester,
                            RegisteredUserTypeId      = getuser.RegisteredUserId,
                            PrimarySchoolUserRoleId   = getuser.PrimarySchoolUserRoleId,
                            SecondarySchoolUserRoleId = getuser.SecondarySchoolUserRoleId,
                            EnrolmentDate             = getuser.EnrolmentDate,
                            CreatedBy                 = getuser.CreatedBy,
                            FullName                  = getuser.FullName,
                            TitleId                   = getuser.TitleId,
                            LastLogOn                 = getuser.LastLogOn,
                            RegistrationFlags         = getuser.RegistrationFlags,
                        };
                        getuser = reguserorg;
                        db.Entry(getuser).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    return(RedirectToAction("SystemAdminIndex"));
                }
                ViewBag.DomainId   = new SelectList(db.Domains, "DomainId", "DomainName", org.DomainId);
                ViewBag.OrgBrandId = new SelectList(db.OrgBrands, "OrgBrandId", "OrgBrandName", org.OrgBrandId);
                ViewBag.OrgTypeId  = new SelectList(db.OrgTypes, "OrgTypeId", "OrgTypeName", org.OrgTypeId);
                return(View(org));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Redirect("~/ErrorHandler.html"));
            }
        }