Пример #1
0
        public ActionResult Index()
        {
            var user     = _userRepository.GetBy(u => u.Id == WebUser.Id, "Person,AccessRule,ReportingPerson.Person,Manager.Person,Location,Department,Designation,Shift");
            var employee = _employeeRepository.GetBy(u => u.UserId == WebUser.Id, "User,User.Person,ReportingPerson.User.Person,Manager.User.Person,Location,Department,Designation,Shift");

            var userDocs           = _userDocumentRepository.GetAllBy(m => m.UserId == user.Id);
            var userSkills         = _userSkillRepository.GetAllBy(m => m.UserId == user.Id, "Skill");
            var userHobbies        = _userHobbyRepository.GetAllBy(m => m.UserId == user.Id, "Hobby");
            var userCertifications = _userCertificationRepository.GetAllBy(m => m.UserId == user.Id, "Certification");

            var roleMembers  = _roleMemberRepository.GetAllBy(m => m.UserId == user.Id, "Role").ToList();
            var assets       = _assetRepository.GetAllBy(u => u.AllocatedEmployeeId == user.Id, "AssetCategory").ToList();
            var projects     = _projectMemberRepository.GetAllBy(p => p.EmployeeId == user.Id, "Project").ToList();
            var technologies = _userTechnologyMapRepository.GetAllBy(r => r.UserId == user.Id, "Technology").Select(t => t.Technology).ToList();
            //var emergencyContacts = _emergencyContactRepository.GetAllBy(c => c.UserId == user.Id).ToList();
            //var dependants = _employeeDependentRepository.GetAllBy(d => d.UserId == user.Id).ToList();
            var reportees = _userRepository.GetAllBy(u => u.EmployeeStatus != EmployeeStatus.Ex && u.ReportingPersonId == WebUser.Id, "Person,Designation,AccessRule").ToList();
            var tokens    = _tokenRepository.GetAllBy(t => t.AllocatedToUserId == user.Id).ToList();
            var awards    = _userAwardRepository.GetAllBy(u => u.UserId == user.Id, "Award").ToList();

            ViewBag.WebuserId = employee.Id;
            var userViewModel = new UserViewModel(user)
            {
                UserDocuments      = userDocs.ToList(),
                UserSkills         = userSkills.ToList(),
                UserCertifications = userCertifications.ToList(),
                RoleMembers        = roleMembers.ToList(),
                //Projects = projects.ToList(),
                Technologies = technologies,
                //EmergencyContacts = emergencyContacts.ToList(),
                //EmployeeDependents = dependants.ToList(),
                Reportees = reportees,
                //Tokens = tokens,
                UserHobbies = userHobbies.ToList(),
                UserAwards  = awards
            };

            var linkedAccounts = _linkedAccountRepository.GetAllBy(u => u.UserId == user.Id).ToList();

            userViewModel.LinkedAccounts = linkedAccounts.ToList();

            // If we have snapshots, set snapshot variable
            var snapshot = _systemSnapshotRepository.GetBy(s => s.UserId == user.Id);

            if (snapshot != null)
            {
                userViewModel.HasSoftwareInfo = true;
                userViewModel.Softwares       = JsonConvert.DeserializeObject <List <SoftwareModel> >(snapshot.Softwares);

                userViewModel.HasHardwareInfo = true;
                userViewModel.Hardware        = JsonConvert.DeserializeObject <HardwareModel>(snapshot.Hardwares);
            }

            return(View(userViewModel));
        }
Пример #2
0
        public ActionResult UserProfile(int id)
        {
            var user = _userRepository.Get(id, "Person,AccessRule,ReportingPerson.Person,Location,Department,Designation,Shift");

            if (user == null)
            {
                return(HttpNotFound());
            }

            var userSkills         = _userSkillRepository.GetAllBy(m => m.UserId == user.Id, "Skill");
            var userHobbies        = _userHobbyRepository.GetAllBy(m => m.UserId == user.Id, "Hobby");
            var userCertifications = _userCertificationRepository.GetAllBy(m => m.UserId == user.Id, "Certification");
            var technologies       = _userTechnologyMapRepository.GetAllBy(r => r.UserId == user.Id, "Technology").Select(t => t.Technology).ToList();
            var awards             = _userAwardRepository.GetAllBy(u => u.UserId == user.Id, "Award").ToList();

            var userViewModel = new UserViewModel
            {
                Id                 = user.Id,
                EmployeeCode       = user.EmployeeCode,
                AccessRuleId       = user.AccessRuleId,
                AccessRule         = user.AccessRule,
                PersonId           = user.PersonId,
                Person             = user.Person,
                DepartmentId       = user.DepartmentId,
                Department         = user.Department,
                LocationId         = user.LocationId,
                Location           = user.Location,
                DesignationId      = user.DesignationId,
                Designation        = user.Designation,
                ShiftId            = user.ShiftId,
                Shift              = user.Shift,
                ReportingPersonId  = user.ReportingPersonId,
                ReportingPerson    = user.ReportingPerson,
                DateOfJoin         = user.DateOfJoin,
                OfficialEmail      = user.OfficialEmail,
                UserSkills         = userSkills.ToList(),
                UserCertifications = userCertifications.ToList(),
                Technologies       = technologies,
                UserHobbies        = userHobbies.ToList(),
                UserAwards         = awards
            };

            return(View(userViewModel));
        }
Пример #3
0
        public ActionResult Update(NewUserViewModel vm)
        {
            ApiResult <User> apiResult;

            if (ModelState.IsValid)
            {
                if (vm.Id > 0)
                {
                    apiResult = TryExecute(() =>
                    {
                        var selectedUser                         = _userRepository.Get(vm.Id, "Person");
                        selectedUser.EmployeeCode                = vm.EmployeeCode;
                        selectedUser.Person.FirstName            = vm.Person.FirstName;
                        selectedUser.Person.MiddleName           = vm.Person.MiddleName;
                        selectedUser.Person.LastName             = vm.Person.LastName;
                        selectedUser.Person.Gender               = vm.Person.Gender;
                        selectedUser.Person.Email                = vm.Person.Email;
                        selectedUser.Person.PhoneNo              = vm.Person.PhoneNo;
                        selectedUser.Person.SecondaryEmail       = vm.Person.SecondaryEmail;
                        selectedUser.Person.Address              = vm.Person.Address;
                        selectedUser.Person.CommunicationAddress = vm.Person.CommunicationAddress;
                        selectedUser.Person.PassportNo           = vm.Person.PassportNo;
                        selectedUser.Person.DateOfBirth          = vm.Person.DateOfBirth;
                        selectedUser.Person.BloodGroup           = vm.Person.BloodGroup;
                        selectedUser.Person.MaritalStatus        = vm.Person.MaritalStatus;
                        selectedUser.Person.MarriageAnniversary  = vm.Person.MarriageAnniversary;
                        selectedUser.DepartmentId                = vm.DepartmentId;
                        selectedUser.LocationId                  = vm.LocationId;
                        selectedUser.DesignationId               = vm.DesignationId;
                        selectedUser.ShiftId                     = vm.ShiftId;
                        selectedUser.ReportingPersonId           = vm.ReportingPersonId;
                        selectedUser.Experience                  = vm.Experience;
                        selectedUser.DateOfJoin                  = vm.DateOfJoin;
                        selectedUser.ConfirmationDate            = vm.ConfirmationDate;
                        selectedUser.DateOfResignation           = vm.DateOfResignation;
                        selectedUser.LastDate                    = vm.LastDate;
                        selectedUser.OfficialEmail               = vm.OfficialEmail;
                        selectedUser.OfficialPhone               = vm.OfficialPhone;
                        selectedUser.OfficialMessengerId         = vm.OfficialMessengerId;
                        selectedUser.EmployeeStatus              = vm.EmployeeStatus;
                        selectedUser.RequiresTimeSheet           = vm.RequiresTimeSheet;
                        selectedUser.Salary                      = vm.Salary;
                        selectedUser.Bank                        = vm.Bank;
                        selectedUser.BankAccountNumber           = vm.BankAccountNumber;
                        selectedUser.PANCard                     = vm.PANCard;
                        selectedUser.PaymentMode                 = vm.PaymentMode;

                        _userRepository.Update(selectedUser);
                        _unitOfWork.Commit();

                        // Remove the existing mapped Roles
                        var existingRoles = _roleMemberRepository.GetAllBy(m => m.UserId == selectedUser.Id);
                        foreach (var map in existingRoles)
                        {
                            _roleMemberRepository.Delete(map);
                        }

                        if (vm.RoleIds != null)
                        {
                            // Map the New Technologies
                            foreach (var roleId in vm.RoleIds)
                            {
                                var newMap = new RoleMember
                                {
                                    UserId = vm.Id,
                                    RoleId = roleId
                                };

                                _roleMemberRepository.Create(newMap);
                            }

                            _unitOfWork.Commit();
                        }

                        // Remove the existing mapped Technologies
                        var existingMaps = _userTechnologyMapRepository.GetAllBy(m => m.UserId == selectedUser.Id);
                        foreach (var map in existingMaps)
                        {
                            _userTechnologyMapRepository.Delete(map);
                        }

                        _unitOfWork.Commit();

                        if (vm.TechnologyIds != null)
                        {
                            // Map the New Technologies
                            foreach (var technologyId in vm.TechnologyIds)
                            {
                                var newMap = new UserTechnologyMap
                                {
                                    UserId       = vm.Id,
                                    TechnologyId = technologyId
                                };

                                _userTechnologyMapRepository.Create(newMap);
                            }

                            _unitOfWork.Commit();
                        }


                        // Remove the existing mapped Skills
                        var existingSkillMaps = _userSkillRepository.GetAllBy(m => m.UserId == selectedUser.Id);
                        foreach (var map in existingSkillMaps)
                        {
                            _userSkillRepository.Delete(map);
                        }

                        _unitOfWork.Commit();

                        if (vm.SkillIds != null)
                        {
                            // Map the New Technologies
                            foreach (var skillId in vm.SkillIds)
                            {
                                var newMap = new UserSkill
                                {
                                    UserId  = vm.Id,
                                    SkillId = skillId
                                };

                                _userSkillRepository.Create(newMap);
                            }

                            _unitOfWork.Commit();
                        }

                        // Remove the existing mapped Skills
                        var existingHobbyMaps = _userHobbyRepository.GetAllBy(m => m.UserId == selectedUser.Id);
                        foreach (var map in existingHobbyMaps)
                        {
                            _userHobbyRepository.Delete(map);
                        }

                        _unitOfWork.Commit();

                        if (vm.HobbiesId != null)
                        {
                            // Map the New Technologies
                            foreach (var hobbyId in vm.HobbiesId)
                            {
                                var newMap = new UserHobby
                                {
                                    UserId  = vm.Id,
                                    HobbyId = hobbyId
                                };

                                _userHobbyRepository.Create(newMap);
                            }

                            _unitOfWork.Commit();
                        }

                        // Remove the existing mapped Certifications
                        var existingCertificationMaps =
                            _userCertificationRepository.GetAllBy(m => m.UserId == selectedUser.Id);
                        foreach (var map in existingCertificationMaps)
                        {
                            _userCertificationRepository.Delete(map);
                        }

                        _unitOfWork.Commit();

                        if (vm.CertificationIds != null)
                        {
                            // Map the New Technologies
                            foreach (var certificateId in vm.CertificationIds)
                            {
                                var newMap = new UserCertification
                                {
                                    UserId          = vm.Id,
                                    CertificationId = certificateId
                                };

                                _userCertificationRepository.Create(newMap);
                            }

                            _unitOfWork.Commit();
                        }

                        return(selectedUser);
                    }, "User updated sucessfully");
                }
                else
                {
                    apiResult = TryExecute(() =>
                    {
                        var newUser = new User
                        {
                            EmployeeCode        = vm.EmployeeCode,
                            Username            = vm.Username,
                            Password            = HashHelper.Hash(vm.Password),
                            AccessRule          = AccessRule.CreateNewUserAccessRule(true),
                            Person              = vm.Person,
                            DepartmentId        = vm.DepartmentId,
                            LocationId          = vm.LocationId,
                            DesignationId       = vm.DesignationId,
                            ShiftId             = vm.ShiftId,
                            ReportingPersonId   = vm.ReportingPersonId,
                            Experience          = vm.Experience,
                            DateOfJoin          = vm.DateOfJoin,
                            ConfirmationDate    = vm.ConfirmationDate,
                            DateOfResignation   = vm.DateOfResignation,
                            LastDate            = vm.LastDate,
                            OfficialEmail       = vm.OfficialEmail,
                            OfficialPhone       = vm.OfficialPhone,
                            OfficialMessengerId = vm.OfficialMessengerId,
                            EmployeeStatus      = vm.EmployeeStatus,
                            RequiresTimeSheet   = vm.RequiresTimeSheet,
                            Salary              = vm.Salary,
                            Bank = vm.Bank,
                            BankAccountNumber = vm.BankAccountNumber,
                            PANCard           = vm.PANCard,
                            PaymentMode       = vm.PaymentMode
                        };

                        _userRepository.Create(newUser);
                        _unitOfWork.Commit();

                        // Map the Technologies
                        if (vm.TechnologyIds != null)
                        {
                            foreach (var technologyId in vm.TechnologyIds)
                            {
                                var newMap = new UserTechnologyMap
                                {
                                    UserId       = newUser.Id,
                                    TechnologyId = technologyId
                                };
                                _userTechnologyMapRepository.Create(newMap);
                            }

                            _unitOfWork.Commit();
                        }


                        // Map the Technologies
                        if (vm.RoleIds != null)
                        {
                            foreach (var roleId in vm.RoleIds)
                            {
                                var newMap = new RoleMember
                                {
                                    UserId = newUser.Id,
                                    RoleId = roleId
                                };

                                _roleMemberRepository.Create(newMap);
                            }

                            _unitOfWork.Commit();
                        }

                        return(newUser);
                    }, "User created sucessfully");
                }
            }
            else
            {
                apiResult = ApiResultFromModelErrors <User>();
            }

            return(Json(apiResult, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        public ActionResult Details(int id)
        {
            var user = _userRepository.Get(id, "Person,AccessRule,ReportingPerson.Person, Manager.Person, Location,Department,Designation,Shift");

            if (user == null)
            {
                return(HttpNotFound());
            }

            var userDocs           = _userDocumentRepository.GetAllBy(m => m.UserId == user.Id);
            var userSkills         = _userSkillRepository.GetAllBy(m => m.UserId == user.Id, "Skill");
            var userHobbies        = _userHobbyRepository.GetAllBy(m => m.UserId == user.Id, "Hobby");
            var userCertifications = _userCertificationRepository.GetAllBy(m => m.UserId == user.Id, "Certification");
            var roleMembers        = _roleMemberRepository.GetAllBy(m => m.UserId == user.Id, "Role");
            var assets             = _assetRepository.GetAllBy(u => u.AllocatedEmployeeId == user.Id, "AssetCategory").ToList();
            //var leaveEntitlements = _leaveEntitlementRepository.GetAllBy(u => u.AllocatedUserId == user.Id, "LeaveType").ToList();
            var projects     = _projectMemberRepository.GetAllBy(p => p.EmployeeId == user.Id, "Project,Member").ToList();
            var technologies = _userTechnologyMapRepository.GetAllBy(r => r.UserId == user.Id, "Technology").Select(t => t.Technology).ToList();
            //var emergencyContacts = _emergencyContactRepository.GetAllBy(c => c.UserId == user.Id);
            //var dependants = _employeeDependentRepository.GetAllBy(d => d.UserId == user.Id);
            var reportees = _userRepository.GetAllBy(u => u.EmployeeStatus != EmployeeStatus.Ex && u.ReportingPersonId == user.Id, "Person,Designation,AccessRule").ToList();
            var tokens    = _tokenRepository.GetAllBy(t => t.AllocatedToUserId == user.Id).ToList();
            var awards    = _userAwardRepository.GetAllBy(u => u.UserId == user.Id, "Award").ToList();

            var userViewModel = new UserViewModel
            {
                Id                 = user.Id,
                EmployeeCode       = user.EmployeeCode,
                Username           = user.Username,
                AccessRuleId       = user.AccessRuleId,
                AccessRule         = user.AccessRule,
                PersonId           = user.PersonId,
                Person             = user.Person,
                DepartmentId       = user.DepartmentId,
                Department         = user.Department,
                LocationId         = user.LocationId,
                Location           = user.Location,
                DesignationId      = user.DesignationId,
                Designation        = user.Designation,
                ShiftId            = user.ShiftId,
                Shift              = user.Shift,
                ReportingPersonId  = user.ReportingPersonId,
                ReportingPerson    = user.ReportingPerson,
                ManagerId          = user.ManagerId,
                Manager            = user.Manager,
                Experience         = user.Experience,
                DateOfJoin         = user.DateOfJoin,
                ConfirmationDate   = user.ConfirmationDate,
                LastDate           = user.LastDate,
                DateOfResignation  = user.DateOfResignation,
                OfficialEmail      = user.OfficialEmail,
                EmployeeStatus     = user.EmployeeStatus,
                RequiresTimeSheet  = user.RequiresTimeSheet,
                Salary             = user.Salary,
                Bank               = user.Bank,
                BankAccountNumber  = user.BankAccountNumber,
                PANCard            = user.PANCard,
                PaymentMode        = user.PaymentMode,
                UserDocuments      = userDocs.ToList(),
                UserSkills         = userSkills.ToList(),
                UserCertifications = userCertifications.ToList(),
                RoleMembers        = roleMembers.ToList(),
                //Assets = assets.ToList(),
                //LeaveEntitlements = leaveEntitlements.ToList(),
                //Projects = projects.ToList(),
                Technologies = technologies,
                //EmergencyContacts = emergencyContacts.ToList(),
                //EmployeeDependents = dependants.ToList(),
                Reportees = reportees,
                //Tokens = tokens,
                UserHobbies = userHobbies.ToList(),
                UserAwards  = awards
            };

            // If we have snapshots, set snapshot variable
            var snapshot = _systemSnapshotRepository.GetBy(s => s.UserId == user.Id);

            if (snapshot != null)
            {
                userViewModel.HasSoftwareInfo = true;
                userViewModel.Softwares       = JsonConvert.DeserializeObject <List <SoftwareModel> >(snapshot.Softwares);

                userViewModel.HasHardwareInfo = true;
                userViewModel.Hardware        = JsonConvert.DeserializeObject <HardwareModel>(snapshot.Hardwares);
            }

            return(View(userViewModel));
        }