Пример #1
0
        public IActionResult RejectedTask(int idTask, TaskApproveAdmin typeTask)
        {
            var model = new TaskApproveModel();

            model            = _taskService.GetTaskById(idTask, typeTask).Result;
            model.TaskStatus = TaskStatusAdmin.Rejected;
            model.TaskType   = typeTask;
            return(View(model));
        }
Пример #2
0
        public async Task <TaskApproveModel> GetTaskById(int idTask, TaskApproveAdmin typeTask)
        {
            var tasksModel = new TaskApproveModel();

            if (typeTask == TaskApproveAdmin.Nav)
            {
                var taskFunds = await _fund.GetFundByStatus(EditStatus.Updating);

                var infoFund = taskFunds.Find(x => x.LastUpdatedBy != null);

                if (taskFunds != null && taskFunds.Count > 0)
                {
                    var taskFund = taskFunds.FirstOrDefault(m => m.Id == idTask);
                    if (taskFund != null)
                    {
                        tasksModel.IdTask          = taskFund.Id;
                        tasksModel.NameTask        = taskFund.Title;
                        tasksModel.TaskType        = typeTask;
                        tasksModel.DateLastUpdated = infoFund != null ? infoFund.DateLastUpdated : DateTime.MinValue;
                        tasksModel.LastUpdatedBy   = infoFund?.LastUpdatedBy;
                    }
                }
            }
            else if (typeTask == TaskApproveAdmin.Portfolio)
            {
                var taskPortfolios = await _portfolio.GetPortfolioByStatus(EditStatus.Updating);

                if (taskPortfolios != null && taskPortfolios.Count > 0)
                {
                    var taskPortfolio = taskPortfolios.FirstOrDefault(m => m.Id == idTask);
                    if (taskPortfolio != null)
                    {
                        var portfolioFund = _portfolio.GetPortfolioFundByPortfolioId(taskPortfolio.Id, EditStatus.Updating).Result;
                        var infoPortfolio = portfolioFund.Find(x => x.LastUpdatedBy != null);

                        if (portfolioFund.Count > 0)
                        {
                            tasksModel.IdTask          = taskPortfolio.Id;
                            tasksModel.NameTask        = taskPortfolio.Title;
                            tasksModel.TaskType        = TaskApproveAdmin.Portfolio;
                            tasksModel.DateLastUpdated = infoPortfolio != null ? infoPortfolio.DateLastUpdated : DateTime.MinValue;
                            tasksModel.LastUpdatedBy   = infoPortfolio?.LastUpdatedBy;
                        }
                    }
                }
            }

            return(tasksModel);
        }
Пример #3
0
        public async Task <List <TaskApproveModel> > GetTasksForAdmin(int pageSize, int pageIndex)
        {
            var listTasksModel = new List <TaskApproveModel>();
            var taskFunds      = await _fund.GetFundByStatus(EditStatus.Updating);

            var taskPortfolios = await _portfolio.GetPortfolioByStatus(EditStatus.Updating);

            var infoFund = taskFunds.Find(x => x.LastUpdatedBy != null);

            if (taskFunds != null && taskFunds.Count > 0)
            {
                var task = new TaskApproveModel();
                task.IdTask          = infoFund != null ? infoFund.Id: 0;
                task.NameTask        = Model.Resources.Common.ApprovedNAVName;
                task.TaskType        = TaskApproveAdmin.Nav;
                task.DateLastUpdated = infoFund != null ? infoFund.DateLastUpdated : DateTime.MinValue;
                task.LastUpdatedBy   = infoFund?.LastUpdatedBy;
                listTasksModel.Add(task);
            }
            if (taskPortfolios != null && taskPortfolios.Count > 0)
            {
                foreach (var portfolio in taskPortfolios)
                {
                    var portfolioFund = _portfolio.GetPortfolioFundByPortfolioId(portfolio.Id, EditStatus.Updating).Result;
                    var infoPortfolio = portfolioFund.Find(x => x.LastUpdatedBy != null);
                    if (portfolioFund.Count > 0)
                    {
                        var task = new TaskApproveModel();
                        task.IdTask          = portfolio.Id;
                        task.NameTask        = portfolio.Title;
                        task.TaskType        = TaskApproveAdmin.Portfolio;
                        task.DateLastUpdated = infoPortfolio != null ? infoPortfolio.DateLastUpdated : DateTime.MinValue;
                        task.LastUpdatedBy   = infoPortfolio?.LastUpdatedBy;
                        listTasksModel.Add(task);
                    }
                }
            }
            listTasksModel = listTasksModel.OrderBy(x => x.DateLastUpdated).ToList();
            return(listTasksModel);
        }
Пример #4
0
        public async Task <IActionResult> RejectedTasks(TaskApproveModel model)
        {
            if (model == null)
            {
                return(Json(false, new JsonSerializerSettings()));
            }
            // update data status
            if (model.TaskType == TaskApproveAdmin.Portfolio)
            {
                await _portfolio.RejectedPortfolio(model.IdTask);
            }
            else if (model.TaskType == TaskApproveAdmin.Nav)
            {
                await _fundService.UpdateApprovedFunds(false);
            }

            // gửi mail
            if (!string.IsNullOrEmpty(model.LastUpdatedBy) && model.LastUpdatedBy != "Unknown")
            {
                var fromer = _userService.GetUserByName(model.LastUpdatedBy).Result;
                if (!string.IsNullOrEmpty(fromer.Email))
                {
                    var sender       = _userService.GetCurrentUser().Result.Email;
                    var contentEmail = _configuration.GetValue <string>("EmailBody:TaskAdmin").Replace("[FullName]", fromer.FullName).Replace("[TaskType]", model.NameTask).Replace("[ContentMessage]", model.ContentMessage).Replace("[Approveder]", sender);

                    var mailConfig = SetMailConfig(sender, fromer.Email, _configuration.GetValue <string>("EmailSubject:TaskAdmin"), contentEmail);
                    var sendEmail  = _emailSender.SendEmail(mailConfig);
                    if (sendEmail)
                    {
                        ViewData["Message"] = ValidationMessages.SendMailSucess;
                    }
                    else
                    {
                        ViewData["Message"] = ValidationMessages.SendMailError;
                    }
                }
            }
            return(RedirectToAction("ApproveList"));
        }
Пример #5
0
        public ActionResult RejectTask(TaskApproveModel model)
        {
            var currentUser = _userRepository.GetByUsername(User.Identity.Name);
            var task = _taskRepository.GetById(model.TaskId);
            if(task.Order.User.Id != currentUser.Id)
                throw new Exception("Invalid task");

            if (task.WasRejected)
            {
                task.IsDeleted = true;
                _taskRepository.Update(task);

                task.Order.AcceptedTasks--;
                _billingService.Dehold(task.Order.User, task.Order.Price);
                _dbContext.SaveChanges();
            }
            task.TaskStatus = TaskStatus.Rejected;
            task.WasRejected = true;
            _taskRepository.Update(task);
            task.Order.TasksInReview--;
            _ordersRepository.Update(task.Order);
            var responseDelta = (DateTime.Now - task.CreateDate).TotalMinutes;
            var userResponse = new UserResponseHistory
            {
                User = currentUser,
                CreateDate = DateTime.Now,
                ResponseMins = responseDelta
            };
            _userResponseHistoryRepository.Save(userResponse);
            return RedirectToAction("TaskApproval", new {gigRequestId = model.GigId, page = model.Page});
        }
Пример #6
0
        public ActionResult ApproveTask(TaskApproveModel model)
        {
            var currentUser = _userRepository.GetByUsername(User.Identity.Name);
            var task = _taskRepository.GetById(model.TaskId);
            if (task.Order.User.Id != currentUser.Id)
                throw new Exception("Invalid task");

            task.TaskStatus = TaskStatus.Completed;
            _taskRepository.Update(task);
            task.Order.TasksInReview--;

            _ordersRepository.Update(task.Order);
            var review = new Review
            {
                Author = currentUser,
                User = task.User,
                CreateDate = DateTime.Now,
                Message = string.Empty,
                Rate = model.UserRate,
                ReviewMark = model.UserRate > 2 ? ReviewMark.Positive : ReviewMark.Negative
            };
            _reviewRepository.Save(review);
            _userService.RebuildUserRating(task.User.Id);
            var responseDelta = (DateTime.Now - task.CreateDate).TotalMinutes;
            var userResponse = new UserResponseHistory
            {
                User = currentUser,
                CreateDate = DateTime.Now,
                ResponseMins = responseDelta
            };
            _userResponseHistoryRepository.Save(userResponse);
            _userService.RebuildResponseTime(currentUser.Id);
            _billingService.Transfer(currentUser, task.User, task.Order.Price);
            _dbContext.SaveChanges();

            return RedirectToAction("TaskApproval", new {gigRequestId = model.GigId, page = model.Page});
        }