/// <summary> /// Save evaluation information to sap result. /// </summary> /// <param name="evaInfo">The evaluation information.</param> /// <returns></returns> private ResultViewModel SendToEvaluationSapResult(Data.Pocos.Evaluation evaInfo) { var result = new ResultViewModel(); try { var evaluationResult = _summaryEvaluation.GetDetail(evaInfo.Id); var periodItem = _unitOfWork.GetRepository <PeriodItem>().GetCache(x => x.Id == evaInfo.PeriodItemId).FirstOrDefault(); var sapResult = new EvaluationSapResult { ComCode = evaInfo.ComCode, PurOrg = evaInfo.PurchasingOrg, SendToSap = false, Vendor = evaInfo.VendorNo, WeightKey = evaInfo.WeightingKey, YearMonth = UtilityService.DateTimeToString(periodItem.EndEvaDate.Value, "yy.MM") }; this.DeclareScore(sapResult, evaluationResult.Summarys); _unitOfWork.GetRepository <EvaluationSapResult>().Add(sapResult); } catch (Exception ex) { result = UtilityService.InitialResultError(ex.Message); _logger.LogError(ex, "The Errors Message : "); } return(result); }
/// <summary> /// Declare kpi group score to sap fields. /// </summary> /// <param name="sapResult">The sap result entity model.</param> /// <param name="summaries">The summary score.</param> private void DeclareScore(EvaluationSapResult sapResult, IEnumerable <Models.SummaryEvaluationDetailViewModel> summaries) { var kpiGroups = _unitOfWork.GetRepository <KpiGroup>().GetCache(); var sapFields = _unitOfWork.GetRepository <SapFields>().GetCache(); foreach (var item in summaries) { if (item.KpiId == 0) { var kpiGroup = kpiGroups.FirstOrDefault(x => x.Id == item.KpiGroupId); var sapField = sapFields.FirstOrDefault(x => x.Id == kpiGroup.SapFieldsId); sapResult.GetType().GetProperty(sapField.SapFields1).SetValue(sapResult, Convert.ToDecimal(item.Score)); } } }