Exemplo n.º 1
0
        public IHeyResponse Make(IScheduleType prototype, IHttpReturnType returnType)
        {
            HeyRememberDto         heyRemember   = _methodBinder.CreateDeferredExecution().HeyRemember;
            BinderCanCallTheMethod binderCanCall = new BinderCanCallTheMethod(_methodBinder);

            if (binderCanCall.Can)
            {
                return(new OkHeyResponse(_methodBinder, prototype.Prototype(), returnType));
            }

            if (binderCanCall.ExecutionResultEnum == MethodExecutionResultEnum.Empty)
            {
                return(new MethodNotFoundHeyResponse(heyRemember));
            }
            if (!binderCanCall.ParametersOk)
            {
                return(new ParametersErrorHeyResponse(heyRemember, binderCanCall.ParametersOkNum));
            }
            return(new BindingFailedHeyResponse(heyRemember));
        }
Exemplo n.º 2
0
        public IHttpActionResult Execute(HeyController controller)
        {
            HeyRememberDeferredExecution deferredExecution = _methodBinder.CreateDeferredExecution();
            HeyRememberDto heyRemember = deferredExecution.HeyRemember;

            try
            {
                string jobId = _scheduleType.Schedule(deferredExecution);
                string heyId = $"{heyRemember.Domain}/{(heyRemember.Type != string.Empty ? heyRemember.Type + "/" : string.Empty)}{heyRemember.Name}/{heyRemember.Id}/{jobId}";

                _log.Info($"{heyRemember} scheduled on {heyId}");

                var heyRememberReturn = new HeyRememberDto(heyRemember);
                heyRememberReturn.When[0] = new FindDatesFromHeyRemember(heyRememberReturn).Next();
                return(_returnType.Return(heyId, heyRememberReturn, controller));
            }
            catch (Exception ex)
            {
                _log.Error($"{heyRemember}: Error while trying to schedule job", ex);
                return(controller.ExposedInternalServerError(ex));
            }
        }