Esempio n. 1
0
        public static EmployeePayrollRecord Merge(EmployeePayrollUpdateCommand command)
        {
            var recordToUpdate = From(command.EntityToUpdate);

            recordToUpdate.CheckDate     = command.CheckDate;
            recordToUpdate.GrossPayroll  = command.GrossPayroll;
            recordToUpdate.PayrollPeriod = command.PayrollPeriod;

            return(recordToUpdate);
        }
    public override Task <ActionResult <EmployeePayroll> > HandleAsync(EmployeePayrollUpdateRequest request, CancellationToken token) =>
    queryDispatcher.Dispatch(new EmployeePayrollQuery(request.EmployeeId, request.Id), token)
    .Bind(employee =>
    {
        var command = new EmployeePayrollUpdateCommand(
            request.CheckDate,
            request.GrossPayroll,
            request.PayrollPeriod,
            employee
            );

        return(commandDispatcher.Dispatch(command).ToTryOption());
    })
    .Match <EmployeePayroll, ActionResult <EmployeePayroll> >(
        e => e,
        () => NotFound($"Employee payroll [{request.Id}] for employee [{request.EmployeeId}]"),
        ex => new APIErrorResult(ex.Message)
        );