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)); }
public void RefreshGeneralErrors() { GeneralErrors.Clear(); if (ProjectBase != null) { var errorList = ProjectBase.GetErrors(); foreach (var error in errorList) { GeneralErrors.Add(error); } } }
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)); }
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)); }
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)); }