public IActionResult Accounting(UserVIewModel model)
        {
            ViewBag.Email = model.Email;
            var approved = _userService.GetAllEmployeesApproved(model);

            return(View(approved));
        }
示例#2
0
        public UserVIewModel Update(UserVIewModel UserVIewModel)
        {
            var userForDb = _mapper.Map <User>(UserVIewModel);

            _trivagoSqlRepository.Update(userForDb);
            return(UserVIewModel);
        }
        public IActionResult TeamLeadApproval(UserVIewModel employee)
        {
            var status = _userService.ApproveStatus(employee);

            ViewBag.Status = status;
            return(View());
        }
示例#4
0
        public UserVIewModel Insert(UserVIewModel user)
        {
            var userForDb  = _mapper.Map <User>(user);
            var hashedPass = SHA256HashGenerator.GenerateHash(user.Password);

            userForDb.PasswordHash = hashedPass;
            var userFromDb  = _trivagoSqlRepository.Insert(userForDb);
            var userForView = _mapper.Map <UserVIewModel>(userFromDb);

            return(userForView);
        }
示例#5
0
        public bool UploadPhoto(UserVIewModel user)
        {
            var foundExpense = new Expense(user)
            {
                AprovalStatus = AprovalStatus.Pending,
                PhotoPath     = ProcesUploadedFile(user)
            };
            var uploadStatus = _trivagoSqlRepository.InsertExpense(foundExpense);

            return(uploadStatus != null ? true : false);
        }
 public IActionResult UploadPhoto(UserVIewModel model)
 {
     if (model.Photo != null)
     {
         ViewBag.PhotoDone = _userService.UploadPhoto(model);
     }
     else
     {
         ViewBag.PhotoFailed = "You are not submitting Photo go back and try again";
     }
     return(View(model));
 }
示例#7
0
        public ActionResult CreateAdmin(UserVIewModel user)
        {
            try
            {
                //Als username geven we default het emailadres mee
                _userManager.AddApplicationGebruiker(user.Email, user.Voornaam, user.Naam,
                                                     user.Email, DateTime.Now, user.Passw, user.Role);

                return(RedirectToAction("AdminLijst"));
            }
            catch
            {
                return(View());
            }
        }
示例#8
0
        private string ProcesUploadedFile(UserVIewModel model)
        {
            string uniqieFileName = null;

            if (model.Photo != null && ValidationForOnlyImage(model.Photo.FileName))
            {
                var uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath + @"\images\Users");
                uniqieFileName = Guid.NewGuid().ToString() + "_" + model.Photo.FileName;
                var filePath = Path.Combine(uploadsFolder, uniqieFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.Photo.CopyTo(fileStream);
                }
            }
            return(uniqieFileName);
        }
示例#9
0
        public IEnumerable <UserVIewModel> GetAllEmployeesApproved(UserVIewModel user)
        {
            var userModels = new List <UserVIewModel>();
            var employees  = _trivagoSqlRepository.GetAllEmployees();
            var exp        = _trivagoSqlRepository.GetAllExpense().Where(x => x.AprovalStatus != AprovalStatus.Pending);

            foreach (var employee in employees)
            {
                var employeeExpenses = exp.Where(x => x.UserId == employee.Id).ToList();
                foreach (var ee in employeeExpenses)
                {
                    var userModel = new UserVIewModel(employee, ee);
                    userModels.Add(userModel);
                }
            }
            return(userModels);
        }
示例#10
0
        public ActionResult CreateAdmin()
        {
            //kan ook gewone users aanmaken
            UserVIewModel model = new UserVIewModel();

            model.Roles = new List <SelectListItem>();
            model.Roles.Add(new SelectListItem()
            {
                Text = "Admin", Value = "Admin"
            });
            model.Roles.Add(new SelectListItem()
            {
                Text = "User", Value = "User"
            });

            return(View(model));
        }
示例#11
0
        public IEnumerable <UserVIewModel> GetAllEmployees(UserVIewModel user)
        {
            var pendingExpenses = _trivagoSqlRepository.GetPendingExpense();

            var usersFromDb = _trivagoSqlRepository.GetAllEmployees()
                              .Where(e => pendingExpenses.Any(p => e.Id == p.UserId)).ToList();

            var usersForView = new List <UserVIewModel>();

            foreach (var employee in usersFromDb)
            {
                var employeeExpenses = pendingExpenses.Where(x => x.UserId == employee.Id).ToList();
                foreach (var ee in employeeExpenses)
                {
                    var userModel = new UserVIewModel(employee, ee);
                    usersForView.Add(userModel);
                }
            }
            return(usersForView.Where(x => x.Department == user.Department).ToList());
        }
示例#12
0
        public AprovalStatus ApproveStatus(UserVIewModel user)
        {
            var userFromDb = _trivagoSqlRepository.GetEmployee(user.Id);

            if (userFromDb != null)
            {
                //var status = _trivagoSqlRepository.EmployeeStatus(user.AprovalStatus, user.Id);
                var status = _trivagoSqlRepository.EmployeeStatus(user.AprovalStatus, user.PhotoPath, user.Price);
                if (status == AprovalStatus.Approved)
                {
                    var accounthing = _trivagoSqlRepository.GetAllEmployees().Where(x => x.Department == Department.Accounting); //TODO-Better logic for more then one accothing person

                    // Notify Finance
                    bool accNot = true;
                    foreach (var Finance in accounthing)
                    {
                        bool result = _emailService.SendEmail(
                            Finance.Email,
                            userFromDb.FirstName,
                            "Expense receipt for " + userFromDb.FirstName.ToString(),
                            "Teach Lead sent aproved receipt");
                        accNot = accNot && result;
                    }

                    // Notify Employee
                    var mailStatusEmployee = _emailService.SendEmail(
                        userFromDb.Email,
                        userFromDb.FirstName,
                        "Expense receipt",
                        "Approved Employee Status");

                    if (mailStatusEmployee && accNot)
                    {
                        return(status);
                    }
                }
            }
            return(user.AprovalStatus);
        }
示例#13
0
        public IActionResult CreateEmployee(UserVIewModel userVIewModel)
        {
            if (ModelState.IsValid)
            {
                var cheekforDuplicate = _userService.Duplicate(userVIewModel.Email);
                if (cheekforDuplicate == false)
                {
                    var user = _userService.Insert(userVIewModel);
                    if (user != null)
                    {
                        TempData["NewUser"] = "******";
                        return(RedirectToAction("NewUserDetails", new { id = user.Id }));
                    }
                }
                TempData["Error"] = "You are entering existing email address try with different one";
                return(View("Employee"));
            }
            var error = ModelState.Values.SelectMany(x => x.Errors).FirstOrDefault();

            TempData["Error"] = error != null ? error.ErrorMessage : "";
            return(View("Employee"));
        }
示例#14
0
        public IActionResult TeamLead(UserVIewModel lead)
        {
            var users = _userService.GetAllEmployees(lead);

            return(View(users));
        }
示例#15
0
 public Expense(UserVIewModel user)
 {
     UserId = user.Id;
 }