Пример #1
0
        public async Task <IActionResult> UpdateAprrove(string id, ApproverStatus status)
        {
            var result = await _productService.UpdateAprrove(CurrentUser.TenantId, id, status);

            if (result.Code < 0)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }
Пример #2
0
        public async Task <IActionResult> ChangeEventStatus(string id, ApproverStatus statusId, [FromBody] string declineReason)
        {
            var result = await _eventService.ChangeEventStatus(CurrentUser.TenantId, CurrentUser.Id, CurrentUser.FullName, CurrentUser.Avatar, id, statusId, declineReason);

            if (result.Code <= 0)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }
Пример #3
0
        public async Task <int> UpdateNewsStatus(string newsId, ApproverStatus approverStatus)
        {
            var info = await GetInfo(newsId);

            if (info == null)
            {
                return(-1);
            }

            info.Status = approverStatus;
            return(await Context.SaveChangesAsync());
        }
Пример #4
0
        public async Task <ActionResult> ApproveCharity(Guid id, [FromBody] CharityApproveDto charityApproveDto)
        {
            // Check if the donor already exists
            var charity = await CharitableEntityApplication.GetCharity((c) => c.Id.Equals(id));

            if (charity == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"A entidade beneficente, {id}, não foi encontrada.");
                return(NotFound(error));
            }

            var approvals = await CharitableEntityApplication.GetCharityApprovals(a => a.CharitableEntityId.Equals(id));

            object statusObj;

            Enum.TryParse(typeof(ApproverStatus), charityApproveDto.Status, out statusObj);

            if (statusObj == null)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O status '${charityApproveDto.Status}' não é válido.");
                return(NotFound(error));
            }

            ApproverStatus status = (ApproverStatus)statusObj;

            if (approvals != null && approvals.OrderByDescending(a => a.Date).First().Status == (int)status)
            {
                ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"A entidade já se encontra nesse status '${charityApproveDto.Status}'.");
                return(NotFound(error));
            }

            await CharitableEntityApplication.UpdateCharityPending(id, charityApproveDto);


            return(Ok());
        }
Пример #5
0
        public async Task <List <ActionResultResponse> > ChangeListNewsStatus(string tenantId, List <string> listnewsId, ApproverStatus status, string declineReason, string userId,
                                                                              string fullName, string avatar)
        {
            var listResult = new List <ActionResultResponse>();

            foreach (var newsId in listnewsId)
            {
                var result = await ChangeNewsStatus(tenantId, userId, fullName, avatar, newsId,
                                                    status, declineReason);

                listResult.Add(result);
            }
            return(listResult);
        }
Пример #6
0
        public async Task <ActionResultResponse> ChangeNewsStatus(string tenantId, string userId, string fullName, string avatar, string newsId,
                                                                  ApproverStatus status, string declineReason)
        {
            var info = await _newsRepository.GetInfo(newsId);

            if (info == null)
            {
                return(new ActionResultResponse(-1, _websiteResourceService.GetString("News does not exists.")));
            }

            if (info.TenantId != tenantId)
            {
                return(new ActionResultResponse(-2,
                                                _websiteResourceService.GetString(ErrorMessage.NotHavePermission)));
            }

            if (info.Status == ApproverStatus.Approved)
            {
                return(new ActionResultResponse(-3,
                                                _websiteResourceService.GetString("News has been approved. You can not change status of this news.")));
            }

            if (status == ApproverStatus.Decline && string.IsNullOrEmpty(declineReason))
            {
                return(new ActionResultResponse(-4,
                                                _websiteResourceService.GetString("Please enter decline reason.")));
            }

            var oldStatus = info.Status;

            if (status == ApproverStatus.Pending)
            {
                info.Status   = ApproverStatus.Pending;
                info.SentTime = DateTime.Now;
            }
            else if (status == ApproverStatus.Approved)
            {
                info.Status           = ApproverStatus.Approved;
                info.ApprovedTime     = DateTime.Now;
                info.ApproverUserId   = userId;
                info.ApproverFullName = fullName;
                info.ApproverAvatar   = avatar;
            }
            else if (status == ApproverStatus.Decline)
            {
                info.Status          = ApproverStatus.Decline;
                info.ApproverComment = declineReason;
            }

            // Send notification to approver.
            if ((oldStatus == ApproverStatus.Draft || oldStatus == ApproverStatus.Decline) &&
                status == ApproverStatus.Pending)
            {
                //await SendNotificationToApprover(tenantId, userId, fullName, avatar, newsId);
            }

            // Send notification to creator.
            if ((oldStatus == ApproverStatus.Pending || oldStatus == ApproverStatus.Decline) &&
                (status == ApproverStatus.Approved || status == ApproverStatus.Decline))
            {
                var isApprove = status == ApproverStatus.Approved;
                //SendApproveMessageToCreator(tenantId, userId, fullName, avatar, newsId,
                //    info.CreatorId,
                //    isApprove);
            }

            var result = await _newsRepository.Update(info);

            if (result <= 0)
            {
                return(new ActionResultResponse(result, _sharedResourceService.GetString(ErrorMessage.SomethingWentWrong)));
            }

            return(new ActionResultResponse(result, _websiteResourceService.GetString("Update status news successful.")));
        }