public override EvaluateSource GetNewValues(EvaluateSource initValues) { ConfigCode termCode = (ConfigCode)ArticleCodeCz.FACT_CONTRACT_TERM; Result <MonthFromStopValue, string> termFindResult = InternalValues .FindResultValue <ArticleGeneralResult, MonthFromStopValue>( TargetFilters.TargetCodePlusSeedFunc(termCode, InternalTarget.Head()), (x) => (x.IsMonthFromStopValue())); if (termFindResult.IsFailure) { return(ReturnFailureAndError(initValues, termFindResult.Error)); } MonthFromStopValue termPrepValues = termFindResult.Value; return(new EvaluateSource { // PROPERTIES SET DateTermFrom = initValues.DateTermFrom, DateTermStop = initValues.DateTermStop, PositionType = initValues.PositionType, DayContractFrom = termPrepValues.PeriodDayFrom, DayContractStop = termPrepValues.PeriodDayStop, // PROPERTIES SET }); }
public override EvaluateSource GetNewValues(EvaluateSource initValues) { ConfigCode termCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_TERM; Result <MonthFromStopValue, string> termFindResult = InternalValues .FindResultValue <ArticleGeneralResult, MonthFromStopValue>( TargetFilters.TargetCodePlusHeadAndSeedFunc(termCode, InternalTarget.Head(), InternalTarget.Part()), (x) => (x.IsMonthFromStopValue())); if (termFindResult.IsFailure) { return(ReturnFailureAndError(initValues, termFindResult.Error)); } MonthFromStopValue termPrepValues = termFindResult.Value; var absenceValues = GetAbsenceValues(); if (absenceValues.IsFailure) { return(ReturnFailureAndError(initValues, absenceValues.Error)); } var completeSorted = absenceValues.Value.OrderBy((p) => (p), new CompareAbsenceTerms()); return(new EvaluateSource { // PROPERTIES SET DayPositionFrom = termPrepValues.PeriodDayFrom, DayPositionStop = termPrepValues.PeriodDayStop, AbsenceList = completeSorted.ToList(), // PROPERTIES SET }); }
public override EvaluateSource GetNewValues(EvaluateSource initValues) { ConfigCode workCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_SCHEDULE; Result <MonthScheduleValue, string> workFindResult = InternalValues .FindResultValue <ArticleGeneralResult, MonthScheduleValue>( TargetFilters.TargetCodePlusPartFunc(workCode, InternalTarget.Head(), InternalTarget.Part()), (x) => (x.IsRealMonthValue())); MonthScheduleValue workValuesPrep = workFindResult.Value; ConfigCode termCode = (ConfigCode)ArticleCodeCz.FACT_POSITION_TERM; Result <MonthFromStopValue, string> termFindResult = InternalValues .FindResultValue <ArticleGeneralResult, MonthFromStopValue>( TargetFilters.TargetCodePlusHeadAndSeedFunc(termCode, InternalTarget.Head(), InternalTarget.Part()), (x) => (x.IsMonthFromStopValue())); if (ResultMonadUtils.HaveAnyResultFailed(workFindResult, workFindResult)) { return(ReturnFailureAndError(initValues, ResultMonadUtils.FirstFailedResultError(workFindResult, workFindResult))); } MonthFromStopValue termValuesPrep = termFindResult.Value; return(new EvaluateSource { // PROPERTIES SET DayTermFrom = termValuesPrep.PeriodDayFrom, DayTermStop = termValuesPrep.PeriodDayStop, RealMonthHours = workValuesPrep.HoursMonth, // PROPERTIES SET }); }
protected ResultMonad.Result <PositionEvaluateSource, string> BuildItem(TargetPart part, ResultItem resultTerm, ResultItem resultWork) { ArticleGeneralResult termResult = resultTerm as ArticleGeneralResult; ArticleGeneralResult workResult = resultWork as ArticleGeneralResult; if (MaybeMonadUtils.HaveAnyResultNullValue(termResult, workResult)) { return(Result.Fail <PositionEvaluateSource, string>(CONCEPT_RESULT_INVALID_TEXT)); } Maybe <PositionFromStopValue> termValues = termResult.ReturnPositionTermFromStopValue(); Maybe <MonthFromStopValue> daysValues = termResult.ReturnMonthFromStopValue(); Maybe <MonthScheduleValue> realValues = workResult.ReturnRealMonthValue(); Maybe <MonthScheduleValue> restValues = workResult.ReturnTermMonthValue(); if (MaybeMonadUtils.HaveAnyResultNoValues(termValues, daysValues, realValues, restValues)) { return(Result.Fail <PositionEvaluateSource, string>(CONCEPT_RESULT_INVALID_TEXT)); } PositionFromStopValue termPosition = termValues.Value; MonthFromStopValue daysPosition = daysValues.Value; MonthScheduleValue realSchedule = realValues.Value; MonthScheduleValue restSchedule = restValues.Value; PositionEvaluateSource buildResult = new PositionEvaluateSource { PositionPart = part, DateFrom = termPosition.DateFrom, DayPeriodFrom = daysPosition.PeriodDayFrom, DateStop = termPosition.DateStop, DayPeriodStop = daysPosition.PeriodDayStop, PositionType = termPosition.PositionType, ScheduleMonth = realSchedule.HoursMonth, ScheduleLimit = restSchedule.HoursMonth }; return(Result.Ok <PositionEvaluateSource, string>(buildResult)); }
private static ResultMonad.Result <PositionScheduleEvalDetail, string> BuildItem(TargetPart partCode, ResultItem termItem, ResultItem dataItem) { ArticleGeneralResult resultTerm = termItem as ArticleGeneralResult; ArticleGeneralResult resultData = dataItem as ArticleGeneralResult; if (MaybeMonadUtils.HaveAnyResultNullValue(resultTerm, resultData)) { return(Result.Fail <PositionScheduleEvalDetail, string>(RESULT_DETAILS_INVALID_TEXT)); } Maybe <PositionFromStopValue> termValues = resultTerm.ReturnPositionTermFromStopValue(); Maybe <MonthFromStopValue> daysValues = resultTerm.ReturnMonthFromStopValue(); Maybe <MonthScheduleValue> workValues = resultData.ReturnTermMonthValue(); if (MaybeMonadUtils.HaveAnyResultNoValues(termValues, daysValues, workValues)) { return(Result.Fail <PositionScheduleEvalDetail, string>(RESULT_DETAILS_INVALID_TEXT)); } PositionFromStopValue termPosition = termValues.Value; MonthFromStopValue daysPosition = daysValues.Value; MonthScheduleValue workSchedule = workValues.Value; PositionScheduleEvalDetail buildResult = new PositionScheduleEvalDetail { PositionPart = partCode, DateFrom = termPosition.DateFrom, DayPeriodFrom = daysPosition.PeriodDayFrom, DateStop = termPosition.DateStop, DayPeriodStop = daysPosition.PeriodDayStop, PositionType = termPosition.PositionType, ScheduleWorks = workSchedule.HoursMonth, }; return(Result.Ok <PositionScheduleEvalDetail, string>(buildResult)); }