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)); }
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); }
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); }
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")); }
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}); }
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}); }