public async Task SetStatusToApprove()
            {
                // Arrange
                const ApprovalType approvalType = ApprovalType.IPM;
                var approverRoleId = Guid.NewGuid();

                var cost = MockCost();

                var approval = new Approval
                {
                    CostStageRevisionId = cost.LatestCostStageRevision.Id,
                    Type            = approvalType,
                    ApprovalMembers = new List <ApprovalMember>
                    {
                        new ApprovalMember
                        {
                            MemberId = User.Id
                        }
                    }
                };

                foreach (var member in approval.ApprovalMembers)
                {
                    member.Approval = approval;
                }
                cost.LatestCostStageRevision.Approvals = new List <Approval> {
                    approval
                };

                EFContext.Approval.Add(approval);
                EFContext.UserUserGroup.Add(new UserUserGroup {
                    UserId = User.Id
                });
                EFContext.Role.Add(new Role
                {
                    Id   = approverRoleId,
                    Name = Roles.CostApprover
                });
                EFContext.SaveChanges();

                cost.Status = CostStageRevisionStatus.Approved;

                // Act
                var response = await ApprovalService.Approve(cost.Id, User, BuType.Pg);

                // Assert
                response.Should().NotBeNull();
                response.Success.Should().BeTrue();
            }
Exemplo n.º 2
0
        private async void ApproveAction(PengajuanItem obj)
        {
            if (IsBusy)
            {
                return;
            }
            try
            {
                object result = null;
                if (await Account.UserInRole(UserType.Gate))
                {
                    result = await GateService.Approve(Model.Id, Items.SelectMany(x => x.Items).ToList());
                }
                else
                {
                    result = await ApprovalService.Approve(Model.Id, Items.SelectMany(x => x.Items).ToList());
                }

                if (result != null)
                {
                    MessagingCenter.Send(new MessagingCenterAlert
                    {
                        Title   = "Info",
                        Message = "Berhasil !",
                        Cancel  = "OK"
                    }, "message");
                    MessagingCenter.Send(Model, "approve");
                    await Shell.Current.GoToAsync($"//Home");
                }
                else
                {
                    throw new SystemException("Gagal... !, Periksa Kembali Data Anda");
                }
            }
            catch (Exception ex)
            {
                MessagingCenter.Send(new MessagingCenterAlert
                {
                    Title   = "Error",
                    Message = ex.Message,
                    Cancel  = "OK"
                }, "message");
                IsBusy = false;
            }
        }
        public IActionResult Approve(int id, IFormCollection collection)
        {
            var entity = new ApproveModel();

            TryUpdateModelAsync(entity);

            if (ModelState.IsValid)
            {
                var result = _service.Approve(id, CurrentUser.No, CurrentUser.Name, entity.IsPass, entity.Remark);
                if (result > 0)
                {
                    return(RedirectToAction(nameof(Index)));
                }

                ModelState.AddModelError(string.Empty, "审批失败");
            }
            var model = _db.Load <Approval>(id);

            ViewBag.Entity = model;
            return(View(entity));
        }