Ejemplo n.º 1
0
        public async Task <ActionResult> EditEmployee(Models.EmployeeModel model)
        {
            if (ModelState.IsValid)
            {
                JneCommSitesDataLayer.JneCommSitesDataBaseEntities _dbContext = new JneCommSitesDataLayer.JneCommSitesDataBaseEntities();

                var aspNetUserQuery = (from p in _dbContext.AspNetUsers
                                       where p.UserName == model.UserName
                                       select p).FirstOrDefault();

                var actualRol = (from p in _dbContext.T_CrewRoles
                                 from d in p.AspNetUsers
                                 where d.Id == aspNetUserQuery.Id
                                 select p).FirstOrDefault();

                aspNetUserQuery.T_CrewRoles.Clear();

                aspNetUserQuery.T_CrewRoles.Add(actualRol);

                if (!string.IsNullOrEmpty(model.Password))
                {
                    var token = await UserManager.GeneratePasswordResetTokenAsync(aspNetUserQuery.Id);

                    var result = await UserManager.ResetPasswordAsync(aspNetUserQuery.Id, token, model.Password);
                }
                var userInf = (from p in _dbContext.T_UsersData
                               where p.Id == aspNetUserQuery.Id
                               select p).First();

                userInf.UserFirstName = model.firstName;
                userInf.UserLastName  = model.LastName;
                userInf.LaborHourPay  = Convert.ToDecimal(model.laborHour);
                userInf.IsBilingual   = model.isBilingual;
                //userInf.NumDaysForPassChange = model.daysChangePass;

                _dbContext.SaveChanges();

                JneCommSitesDataLayer.JneCommSitesDataBaseEntities _Context = new JneCommSitesDataLayer.JneCommSitesDataBaseEntities();


                var queryCertificationsByUser = (from p in _Context.T_CertificationsByUserCrew
                                                 where p.Id == aspNetUserQuery.Id
                                                 select p);

                foreach (var item in queryCertificationsByUser)
                {
                    _Context.T_CertificationsByUserCrew.Remove(item);
                }
                _Context.SaveChanges();


                foreach (var item in model._ListCertifications)
                {
                    if (item.isActive)
                    {
                        JneCommSitesDataLayer.T_CertificationsByUserCrew newCertificationByUser = new JneCommSitesDataLayer.T_CertificationsByUserCrew();
                        newCertificationByUser.vCertificationName = item.certificationName;
                        newCertificationByUser.Id = aspNetUserQuery.Id; if (item.expirationTime != null)
                        {
                            newCertificationByUser.dExpirationTime = Convert.ToDateTime(item.expirationTime);
                        }
                        if (item.documentToUpload != null)
                        {
                            newCertificationByUser.vDocumentName = (model.UserName + "_" + item.certificationName + Path.GetExtension(item.documentToUpload.FileName)).Replace(" ", "");

                            string path = System.IO.Path.Combine(
                                Server.MapPath("~/Documents/Certifications/"), (model.UserName + "_" + item.certificationName + Path.GetExtension(item.documentToUpload.FileName)).Replace(" ", ""));
                            // file is uploaded
                            item.documentToUpload.SaveAs(path);
                        }
                        _dbContext.T_CertificationsByUserCrew.Add(newCertificationByUser);
                        _dbContext.SaveChanges();
                    }
                }
                model._UserCrewGroup = Helper.Helper.GetSubRoles("CrewRole");
                model._StatesList    = Helper.Helper.GetUSAStates();
                return(RedirectToAction("CrewEmployeeIndex", "Administration"));
            }
            model._UserCrewGroup = Helper.Helper.GetSubRoles("CrewRole");
            model._StatesList    = Helper.Helper.GetUSAStates();
            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> CreateEmployee(Models.EmployeeModel model)
        {
            if (ModelState.IsValid)
            {
                string UserName = model.UserName.Trim();

                try
                {
                    JneCommSitesDataLayer.JneCommSitesDataBaseEntities _dbContext = new JneCommSitesDataLayer.JneCommSitesDataBaseEntities();


                    var potentialUser = await UserManager.FindByNameAsync(model.UserName);

                    if (potentialUser != null)
                    {
                        throw new Exception("UserName@This user name is already taken");
                    }

                    potentialUser = await UserManager.FindByEmailAsync(model.Email);

                    if (potentialUser != null)
                    {
                        throw new Exception("Email@This email is already taken");
                    }
                    MembershipCreateStatus createStatusResult = MembershipCreateStatus.ProviderError;

                    var userProfile = new ApplicationUser {
                        UserName = model.UserName, Email = model.Email
                    };
                    var result = await UserManager.CreateAsync(userProfile, model.Password);

                    if (!result.Succeeded)
                    {
                        throw new Exception(result.Errors.FirstOrDefault().ToString());
                    }
                    else
                    {
                        await UserManager.SendEmailAsync(userProfile.Id, "Welcome to JNECommunications LLC", "This is your Username: "******"User was not created, please try again.");
                        }

                        var queryRol = (from p in _dbContext.AspNetRoles
                                        where p.Name == "CrewRole"
                                        select p).FirstOrDefault();

                        var queryCrewRol = (from p in _dbContext.T_CrewRoles
                                            where p.vCrewRoleName == model.UserCrewGroup
                                            select p).FirstOrDefault();

                        newUserData.Id            = user.Id;
                        newUserData.UserFirstName = model.firstName;
                        newUserData.UserLastName  = model.LastName;
                        //newUserData.NumDaysForPassChange = model.daysChangePass;
                        newUserData.UserDescription = "User for crew";
                        //newUserData.ForcePassChange = model.forcePassChange;
                        newUserData.vStateCode   = model.states;
                        newUserData.LaborHourPay = Convert.ToDecimal(model.laborHour);
                        newUserData.IsBilingual  = model.isBilingual;

                        _dbContext.T_UsersData.Add(newUserData);
                        user.AspNetRoles.Add(queryRol);
                        user.T_CrewRoles.Add(queryCrewRol);
                        user.LockoutEnabled = model.lockedOutUser;

                        _dbContext.SaveChanges();


                        foreach (var item in model._ListCertifications)
                        {
                            if (item.isActive)
                            {
                                JneCommSitesDataLayer.T_CertificationsByUserCrew newCertificationByUser = new JneCommSitesDataLayer.T_CertificationsByUserCrew();
                                newCertificationByUser.vCertificationName = item.certificationName;
                                newCertificationByUser.Id = user.Id; if (item.expirationTime != null)
                                {
                                    newCertificationByUser.dExpirationTime = Convert.ToDateTime(item.expirationTime);
                                }
                                if (item.documentToUpload != null)
                                {
                                    newCertificationByUser.vDocumentName = (model.UserName + "_" + item.certificationName + Path.GetExtension(item.documentToUpload.FileName)).Replace(" ", "");

                                    string path = System.IO.Path.Combine(Server.MapPath("~/Documents/Certifications/"), (model.UserName + "_" + item.certificationName + Path.GetExtension(item.documentToUpload.FileName)).Replace(" ", ""));
                                    // file is uploaded
                                    item.documentToUpload.SaveAs(path);
                                }
                                _dbContext.T_CertificationsByUserCrew.Add(newCertificationByUser);
                                _dbContext.SaveChanges();
                            }
                        }


                        _dbContext.Dispose();

                        TempData["Message"] = "User was created successfully";
                        return(RedirectToAction("CrewEmployeeIndex", "Administration"));
                    }
                }
                catch (Exception err)
                {
                    model._UserCrewGroup = Helper.Helper.GetSubRoles("CrewRole");
                    model._StatesList    = Helper.Helper.GetUSAStates();
                    string[] tokens = err.Message.Split('@');
                    if (tokens.Length > 1)
                    {
                        ModelState.AddModelError(tokens[0], tokens[1]);
                    }
                    else
                    {
                        ModelState.AddModelError(String.Empty, err.Message);
                    }
                }
            }
            model._UserCrewGroup = Helper.Helper.GetSubRoles("CrewRole");
            model._StatesList    = Helper.Helper.GetUSAStates();
            return(View(model));
        }