public async Task <ActionResult> Create(int projectId) { var project = await ProjectRepository.GetProjectAsync(projectId); if (project == null) { return(HttpNotFound()); } var viewModel = new CreateMoneyTransferViewModel { ProjectId = projectId, Receiver = CurrentUserId, }; Fill(viewModel, project); return(View(viewModel)); }
public async Task <ActionResult> Create(CreateMoneyTransferViewModel viewModel) { var project = await ProjectRepository.GetProjectAsync(viewModel.ProjectId); if (project == null) { return(HttpNotFound()); } Fill(viewModel, project); if (!ModelState.IsValid) { return(View(viewModel)); } var request = new CreateTransferRequest() { ProjectId = viewModel.ProjectId, Sender = viewModel.Sender, Receiver = viewModel.Receiver, Amount = viewModel.Money, OperationDate = viewModel.OperationDate, Comment = viewModel.CommentText, }; try { await FinanceService.CreateTransfer(request); } catch (Exception e) { ModelState.AddException(e); return(View(viewModel)); } return(RedirectToAction("MoneySummary", "Finances", new { viewModel.ProjectId })); }
private void Fill(CreateMoneyTransferViewModel viewModel, Project project) { viewModel.Masters = project.GetMasterListViewModel(); viewModel.HasAdminAccess = project.HasMasterAccess(CurrentUserId, acl => acl.CanManageMoney); }