Ejemplo n.º 1
0
        public ActionResult SaveTimeOff(StaffUnavailabilityRecordDto unavailability, int staffMemberId)
        {
            var action = new SaveTimeOffAction <ActionResult>(ServiceRegistry)
            {
                OnSuccess = () => ManageStaffMemberLeave(staffMemberId),
                OnFailure = (n) => ManageStaffMemberLeave(staffMemberId, n)
            };

            return(action.Invoke(staffMemberId, unavailability));
        }
Ejemplo n.º 2
0
        public T Invoke(int staffMemberId, StaffUnavailabilityRecordDto unavailability)
        {
            Guard.InstanceNotNull(OnSuccess, "OnSuccess");
            Guard.InstanceNotNull(OnFailure, "OnFailure");

            var result = serviceRegistry.StaffService.SaveUnavailability(new SaveUnavailabilityRequest()
            {
                StaffId = staffMemberId, Unavailability = new List <StaffUnavailabilityRecordDto> {
                    unavailability
                }
            });

            var managerSpecificErrors = result.NotificationCollection.Errors(ClientErrorCodes.Managers);

            return(managerSpecificErrors.Any() ? OnFailure(managerSpecificErrors) : OnSuccess());
        }