Exemple #1
0
 /// <summary>
 /// Check and insert into deviatedclient KPI table
 /// </summary>
 /// <param name="kpis"></param>
 /// <param name="metrictype"></param>
 /// <param name="kpiConfig"></param>
 /// <param name="m3MetricClientData"></param>
 /// <param name="clientId"></param>
 /// <param name="m3MetricChecklistTypeId"></param>
 private void KPistoBeinDeviated(List <Kpi> kpis, string metrictype, DataTable kpiConfig, DataRow m3MetricClientData, int clientId, int m3MetricChecklistTypeId)
 {
     foreach (Kpi k in kpis)
     {
         M3metricsQuestion m3MetricsQuestion = _m3PactContext.M3metricsQuestion.Where(m => m.M3metricsQuestionId.ToString() == k.Measure).FirstOrDefault();
         DateTime          checklistDate     = new DateTime();
         DeviatedClientKpi deviatedClientKpi = new DeviatedClientKpi();
         if (metrictype == DomainConstants.Monthly)
         {
             GetPreviousMonthAndYear(out int previousYear, out int previousMonth);
             deviatedClientKpi = _m3PactContext.DeviatedClientKpi.Where(d => d.ChecklistTypeId == m3MetricChecklistTypeId &&
                                                                        d.CheckListDate.Month == previousMonth &&
                                                                        d.CheckListDate.Year == previousYear &&
                                                                        d.ClientId == clientId &&
                                                                        d.QuestionCode == m3MetricsQuestion.M3metricsQuestionCode &&
                                                                        d.RecordStatus == DomainConstants.RecordStatusActive)?.FirstOrDefault();
             if (deviatedClientKpi != null)
             {
                 break;
             }
             checklistDate = new DateTime(previousYear, previousMonth, 1).Date;
         }
         else
         {
             deviatedClientKpi = _m3PactContext.DeviatedClientKpi.Where(d => d.ChecklistTypeId == m3MetricChecklistTypeId &&
                                                                        d.CheckListDate == DateTime.Now.Date &&
                                                                        d.ClientId == clientId &&
                                                                        d.QuestionCode == m3MetricsQuestion.M3metricsQuestionId.ToString() &&
                                                                        d.RecordStatus == DomainConstants.RecordStatusActive)?.FirstOrDefault();
             if (deviatedClientKpi != null)
             {
                 break;
             }
         }
         string kpiTargetColumn = GetKPITargetColumn(kpiConfig, m3MetricsQuestion.M3metricsQuestionCode);
         if (kpiTargetColumn != "" && m3MetricClientData != null)
         {
             string alertLevel         = GetKPIAlertLevelWithOperatorForClient(clientId, k);
             string standardAlertValue = GetStandardAlertValueForClient(alertLevel);
             string alertCompare       = GetKPIAlertOperatorForClient(alertLevel);
             string actualkpiValue     = GetActualAlertValueForClient(m3MetricClientData, kpiTargetColumn);
             bool   isDeviation        = IsKPIDeviated(standardAlertValue, alertCompare, actualkpiValue);
             if (isDeviation)
             {
                 DeviatedKPI(k.Kpiid, clientId, standardAlertValue, actualkpiValue,
                             metrictype == DomainConstants.Monthly ? checklistDate : DateTime.Now.Date, m3MetricChecklistTypeId, m3MetricsQuestion.M3metricsQuestionId.ToString());
             }
         }
     }
 }
Exemple #2
0
        public bool IsMailAlreadySentForKPI(DeviatedClientKpi deviatedClientKpi, int userId)
        {
            try
            {
                int id = _m3PactContext.MailRecepientsDetailsDayWise.Where(m => deviatedClientKpi.DeviatedClientKpiid == m.DeviatedClientKpiid && m.SentDate.Date == DateTime.Now.Date && m.UserId == userId.ToString()).
                         Select(m => m.Id).FirstOrDefault();

                return(id > 0);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #3
0
        /// <summary>
        /// DeviatedClientKPi Table mapping
        /// </summary>
        /// <param name="kpiId"></param>
        /// <param name="clientid"></param>
        /// <param name="expected"></param>
        /// <param name="Actual"></param>
        /// <param name="date"></param>
        /// <param name="checklistTypeId"></param>
        /// <param name="questionCode"></param>
        private void DeviatedKPI(int kpiId, int clientid, string expected, string Actual, DateTime date, int checklistTypeId, string questionCode)
        {
            DeviatedClientKpi deviatedClientKpi = new DeviatedClientKpi();

            deviatedClientKpi.ActualResponse   = Actual;
            deviatedClientKpi.ExpectedResponse = expected;
            deviatedClientKpi.ClientId         = clientid;
            deviatedClientKpi.SubmittedDate    = DateTime.Now.Date;
            deviatedClientKpi.CheckListDate    = date;
            deviatedClientKpi.ChecklistTypeId  = checklistTypeId;
            deviatedClientKpi.RecordStatus     = DomainConstants.RecordStatusActive;
            deviatedClientKpi.QuestionCode     = questionCode;
            deviatedClientKpi.SubmittedDate    = DateTime.Now.Date;
            _m3PactContext.DeviatedClientKpi.Add(deviatedClientKpi);
            _m3PactContext.SaveChanges();
        }