Exemplo n.º 1
0
 public ActionResult LogOut(string id)
 {
     try
     {
         if (id == null)
         {
             Session.Abandon();
             return(RedirectToAction("Signin", "Access"));
         }
         else
         {
             var logouttime  = DateTime.Now;
             var getsession  = db.RegUsersAccessLogs.AsNoTracking().Where(x => x.SessionId == id).FirstOrDefault();
             var getsession1 = new RegUsersAccessLog
             {
                 RegUsersAccessLogId = getsession.RegUsersAccessLogId,
                 OrgId        = getsession.OrgId,
                 SessionId    = getsession.SessionId,
                 RegUserId    = getsession.RegUserId,
                 UserFullName = getsession.UserFullName,
                 LogInTime    = getsession.LogInTime,
                 LogOutTime   = logouttime
             };
             getsession = getsession1;
             db.Entry(getsession).State = EntityState.Modified;
             db.SaveChanges();
             Session.Abandon();
             Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
             return(RedirectToAction("Signin", "Access"));
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(Redirect("~/ErrorHandler.html"));
     }
 }
Exemplo n.º 2
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));
            }
        }