public async Task <IActionResult> Manage(int id) { var project = await this.projectService.GetAsync(id); if (!await this.projectService.IsWorkerInProjectAsync(id, this.User.Identity.Name)) { return(this.Unauthorized()); } var details = this.mapper.Map <ProjectDetailsViewModel>(project); var users = this.companyService .GetUsers() .AsQueryable() .ProjectTo <UserListViewModel>() .ToList(); var model = new ProjectManageViewModel() { Details = details, Users = users.Except(details.Workers) }; return(this.View(model)); }
public async Task <IActionResult> DeleteTerms(ProjectManageViewModel model) { var termsId = model.EditingTerms.TermsId; await _projectService.DeleteTerms(termsId); return(RedirectToAction(nameof(Manage), new { id = model.EditingTerms.ProjectId, tab = model.EditingTerms.Category })); }
public async Task <IActionResult> SaveBalance(ProjectManageViewModel model) { if (ModelState.IsValid) { var balances = await _projectService.GetAnnualBalances(model.EditingBalance.ProjectId, model.EditingBalance.Year); //1. 检查和保存incoming var incoming = balances.Where(b => b.BalanceCategory == (int)BalanceCategory.Incoming).FirstOrDefault(); if (incoming == null || incoming.Id <= 0) { //新增 incoming = new AnnualBalance { ProjectId = model.EditingBalance.ProjectId, Year = model.EditingBalance.Year, BalanceCategory = (int)BalanceCategory.Incoming, }; } incoming.Balance = model.EditingBalance.Incoming; await _projectService.SaveBalance(incoming); //2. 检查和保存settle var settle = balances.Where(b => b.BalanceCategory == (int)BalanceCategory.Settlement).FirstOrDefault(); if (settle == null || settle.Id <= 0) { //新增 settle = new AnnualBalance { ProjectId = model.EditingBalance.ProjectId, Year = model.EditingBalance.Year, BalanceCategory = (int)BalanceCategory.Settlement, }; } settle.Balance = model.EditingBalance.Settlement; await _projectService.SaveBalance(settle); //3. 检查和保存retrieve var retrieve = balances.Where(b => b.BalanceCategory == (int)BalanceCategory.Retrievable).FirstOrDefault(); if (retrieve == null || retrieve.Id <= 0) { //新增 retrieve = new AnnualBalance { ProjectId = model.EditingBalance.ProjectId, Year = model.EditingBalance.Year, BalanceCategory = (int)BalanceCategory.Retrievable, }; } retrieve.Balance = model.EditingBalance.Retrievable; await _projectService.SaveBalance(retrieve); return(RedirectToAction(nameof(Manage), new { id = model.EditingBalance.ProjectId })); } return(StatusCode(500)); }
public async Task <IActionResult> DeleteBalance(ProjectManageViewModel model) { var projectId = model.EditingBalance.ProjectId; var year = model.EditingBalance.Year; var balances = await _projectService.GetAnnualBalances(projectId, year); foreach (var b in balances) { await _projectService.DeleteBalance(b.Id); } return(RedirectToAction(nameof(Manage), new { id = projectId })); }
public async Task <IActionResult> SaveTerms(ProjectManageViewModel model) { if (ModelState.IsValid) { Terms terms = new Terms { Id = model.EditingTerms.TermsId, ProjectId = model.EditingTerms.ProjectId, Provision = model.EditingTerms.Provision, Remarks = model.EditingTerms.Remarks, TermsCategory = (int)model.EditingTerms.Category, TargetAmount = model.EditingTerms.Amount, TargetDate = model.EditingTerms.OnDate, }; await _projectService.SaveTerms(terms); return(RedirectToAction(nameof(Manage), new { id = model.EditingTerms.ProjectId, tab = model.EditingTerms.Category })); } return(StatusCode(500)); }
public async Task <IActionResult> Manage(int id, string tab) { var project = await _projectService.RetriveProjectWithDetails(id, ProjectApiContent.WithBalanceAndTerms); if (project == null || project.ProjectId <= 0) { return(NotFound()); } var model = ProjectManageViewModel.Create(project); if (string.IsNullOrWhiteSpace(tab)) { ViewBag.ActiveTabName = TermsCategory.Settle.ToString(); } else { ViewBag.ActiveTabName = tab; } return(View(model)); }