Example #1
0
        public ActionResult EditOmbud(string id)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                return(RedirectToAction("Index", "Home"));
            }
            ApplicationUser ombud = db.Users.Where(u => u.Id == id).FirstOrDefault();

            if (ombud == null)
            {
                return(HttpNotFound());
            }
            ApplicationUser currentUser = db.Users.Where(u => u.Id == id).FirstOrDefault();
            OmbudEditVM     ombudEditVM = new OmbudEditVM();

            ombudEditVM.Id              = id;
            ombudEditVM.CareCompanyId   = (int)currentUser.CareCompanyId;
            ombudEditVM.FirstName       = currentUser.FirstName;
            ombudEditVM.LastName        = currentUser.LastName;
            ombudEditVM.PhoneNumber     = currentUser.PhoneNumber;
            ombudEditVM.Email           = currentUser.Email;
            ombudEditVM.SSN             = currentUser.SSN;
            ombudEditVM.CareCompanyName = db.CareCompanies.Where(c => c.Id == ombudEditVM.CareCompanyId).FirstOrDefault().CompanyName;
            return(View("EditOmbud", ombudEditVM));
        }
Example #2
0
        public ActionResult DetailsOmbud(string id)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                return(RedirectToAction("Index", "Home"));
            }
            ApplicationUser ombud = db.Users.Where(u => u.Id == id).FirstOrDefault();

            if (ombud == null)
            {
                return(HttpNotFound());
            }
            //var currentId = User.Identity.GetUserId();
            //ApplicationUser currentUser = db.Users.Where(u => u.Id == currentId).FirstOrDefault();
            var companyId   = ombud.CareCompanyId;
            var companyName = db.CareCompanies.Where(c => c.Id == companyId).FirstOrDefault().CompanyName;

            OmbudEditVM ombudVM = new OmbudEditVM();

            ombudVM.CareCompanyName = companyName;
            ombudVM.FirstName       = ombud.FirstName;
            ombudVM.LastName        = ombud.LastName;
            ombudVM.SSN             = ombud.SSN;
            ombudVM.Email           = ombud.Email;
            ombudVM.PhoneNumber     = ombud.PhoneNumber;
            return(View("DetailsOmbud", ombudVM));
        }
Example #3
0
        //public ActionResult EditOmbud([Bind(Include = "Id,FirstName,LastName,LastLogon,CareCompanyId,SSN,Email,EmailConfirmed,PasswordHash,SecurityStamp,PhoneNumber,PhoneNumberConfirmed,TwoFactorEnabled,LockoutEndDateUtc,LockoutEnabled,AccessFailedCount,UserName")] ApplicationUser applicationUser)
        public ActionResult EditOmbud([Bind(Include = "Id,FirstName,LastName,CareCompanyId,CareCompanyName,SSN,Email,PhoneNumber")] OmbudEditVM ombudEditVM, string submitButton)
        {
            var             currentId   = User.Identity.GetUserId();
            ApplicationUser currentUser = db.Users.Where(u => u.Id == currentId).FirstOrDefault();

            bool errorFound = false;

            //Check that the SSN has the correct format
            if (!string.IsNullOrWhiteSpace(ombudEditVM.SSN))
            {
                ombudEditVM.SSN = ombudEditVM.SSN.Trim();
                Regex regex = new Regex(@"^([1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[12][0-9])))[-]?\d{4}$");
                Match match = regex.Match(ombudEditVM.SSN);
                if (!match.Success)
                {
                    ModelState.AddModelError("SSN", "Ej giltigt personnummer. Formaten YYYYMMDD-NNNN och YYYYMMDDNNNN är giltiga.");
                    errorFound = true;
                }
            }
            else
            {
                errorFound = true;
            }

            //Check that the ombud is born in the 20th or 21st century
            if (!errorFound)
            {
                if (int.Parse(ombudEditVM.SSN.Substring(0, 2)) != 19 && int.Parse(ombudEditVM.SSN.Substring(0, 2)) != 20)
                {
                    ModelState.AddModelError("SSN", "Ombudet måste vara fött på 1900- eller 2000-talet.");
                    errorFound = true;
                }
            }

            //Check that the ombud is at least 18 years old and was not born in the future:-)
            if (!errorFound)
            {
                DateTime ombudBirthday = new DateTime(int.Parse(ombudEditVM.SSN.Substring(0, 4)), int.Parse(ombudEditVM.SSN.Substring(4, 2)), int.Parse(ombudEditVM.SSN.Substring(6, 2)));
                if (ombudBirthday.Date > DateTime.Now.Date)
                {
                    ModelState.AddModelError("SSN", "Födelsedatumet får inte vara senare än idag.");
                    errorFound = true;
                }
                else if (ombudBirthday > DateTime.Now.AddYears(-18))
                {
                    ModelState.AddModelError("SSN", "Ombudet måste vara minst 18 år.");
                    errorFound = true;
                }
            }

            //Check if there is an ombud with the same SSN already in the company. The same ombud is allowed in another company.
            if (!errorFound)
            {
                var twinOmbud = db.Users.Where(u => u.SSN == ombudEditVM.SSN).Where(u => u.Id != ombudEditVM.Id).FirstOrDefault();
                if (twinOmbud != null && twinOmbud.CareCompanyId == currentUser.CareCompanyId)
                {
                    ModelState.AddModelError("SSN", "Det finns redan ett ombud med detta personnummer");
                    errorFound = true;
                }
            }

            if (!errorFound)
            {
                if (ombudEditVM.SSN.Length == 12)
                {
                    ombudEditVM.SSN = ombudEditVM.SSN.Insert(8, "-");
                }
            }

            if (submitButton == "Spara")
            {
                var possibleTwin = db.Users.Where(u => u.Email == ombudEditVM.Email).FirstOrDefault();
                if (possibleTwin != null && possibleTwin.Id != ombudEditVM.Id)
                {
                    ModelState.AddModelError("Email", "Det finns redan en användare med den emailadressen");
                }
                if (ModelState.IsValid)
                {
                    var editedOmbud = db.Users.Where(u => u.Id == ombudEditVM.Id).FirstOrDefault();
                    editedOmbud.FirstName       = ombudEditVM.FirstName;
                    editedOmbud.LastName        = ombudEditVM.LastName;
                    editedOmbud.CareCompanyId   = ombudEditVM.CareCompanyId;
                    editedOmbud.UserName        = ombudEditVM.Email;
                    editedOmbud.Email           = ombudEditVM.Email;
                    editedOmbud.PhoneNumber     = ombudEditVM.PhoneNumber;
                    editedOmbud.SSN             = ombudEditVM.SSN;
                    db.Entry(editedOmbud).State = EntityState.Modified;
                    db.SaveChanges();
                    if (User.IsInRole("Admin"))
                    {
                        return(RedirectToAction("IndexAllOmbuds", "Account"));
                    }

                    // User is in role "Ombud"
                    return(RedirectToAction("IndexOmbud"));
                }
            }

            return(View(ombudEditVM));
        }