Exemple #1
0
        public async Task <Result <OrderOpened> > Handle(OpenOrderRequest request)
        {
            var member = await service.GetMemberById(request.ByMemberId);

            if (!CanOpenOrder(member))
            {
                return(GeneralErrors.UnauthorizedError());
            }

            var status = member.HasPermission(Permission.CanConfirmOrder)
                    ? OrderStatusId.Approved
                    : OrderStatusId.New;

            var order = new Order
            {
                LendingUnitId      = request.FromUnitId,
                Remarks            = request.Remarks,
                Status             = status,
                RequestingMemberId = member.Id,
                RequestingUnitId   = member.UnitId,
                ItemId             = request.ItemId
            };

            var createRes = await service.CreateOrder(order);

            if (!createRes.Success)
            {
                return(Errors.FailToCreateOrder(createRes.ErrorMessage));
            }

            return(new OrderOpened(createRes.Id, status));
        }
Exemple #2
0
        public void RefreshGeneralErrors()
        {
            GeneralErrors.Clear();

            if (ProjectBase != null)
            {
                var errorList = ProjectBase.GetErrors();

                foreach (var error in errorList)
                {
                    GeneralErrors.Add(error);
                }
            }
        }
Exemple #3
0
        public async Task <Result <CanceledByRequestingUnit> > Handle(CancelNewRequest request)
        {
            var ctx = await LoadContext(request);

            if (!IsAuthorized(ctx))
            {
                return(GeneralErrors.UnauthorizedError());
            }

            var update = await Update(ctx);

            if (!update.Success)
            {
                return(Errors.FailToUpdate(update.ErrorMessage));
            }

            return(new CanceledByRequestingUnit(request.OrderId, request.MemberId));
        }
Exemple #4
0
        public async Task <Result <Approved> > Handle(ApproveRequest request)
        {
            var ctx = await LoadContext(request);

            if (!IsAuthorized(ctx))
            {
                return(GeneralErrors.UnauthorizedError());
            }

            var update = await UpdateStatus(ctx);

            if (!update.Success)
            {
                return(Errors.FailToUpdate(update.ErrorMessage));
            }

            return(new Approved(request.OrderId, request.MemberId));
        }
Exemple #5
0
        public async Task <Result <OrderActivated> > Handle(ActivateOrderRequest request)
        {
            var ctx = await LoadContext(request);

            if (!IsAuthorized(ctx))
            {
                return(GeneralErrors.UnauthorizedError());
            }

            var update = await Update(ctx);

            if (!update.Success)
            {
                return(Errors.FailToUpdate(update.ErrorMessage));
            }

            return(new OrderActivated(request.OrderId, request.MemberId, update.Item));
        }