Esempio n. 1
0
        public AssetViolationCountDTO GetViolationCountsByAssetCode(string assetCode)
        {
            string cubeCon = ConfigurationManager.AppSettings["AnalysisViolationConnectionString"];

            AssetViolationCountDTO dto = new AssetViolationCountDTO();

            var dayviolations = operationalDataContext.ViolationNotifications.Where(x => x.DateTaken.Day == DateTime.Now.Day && x.AssetCode == assetCode);

            if (dayviolations != null)
            {
                dto.DayCount = dayviolations.ToList().Count;
            }

            CubeDAL dal = new CubeDAL(cubeCon);

            dto.WeekCount  = dal.GetViolationWeekCountForAsset(assetCode);
            dto.MonthCount = dal.GetViolationMonthCountForAsset(assetCode);
            dto.YearCount  = dal.GetViolationYearCountForAsset(assetCode);

            return(dto);
        }
        private void PrepareTemplate(ReportTemplateDTO template, AutomaticReportDiminsionDTO diminsion)
        {
            try
            {
                DateTime startDate = DateTime.Now;
                if (diminsion.IsStaticValue && diminsion.ExactValue != "")
                {
                    startDate = new DateTime(int.Parse(diminsion.ExactValue.Substring(0, 4)), int.Parse(diminsion.ExactValue.Substring(4, 2)), int.Parse(diminsion.ExactValue.Substring(6, 2)));
                }
                else if (diminsion.RelativeValue.HasValue && diminsion.RelativeTypeId.HasValue)
                {
                    if (diminsion.RelativeTypeId.Value == (int)RelativeTypesEnum.Hours)
                    {
                        startDate = startDate.AddHours(-1 * diminsion.RelativeValue.Value);
                    }
                    else if (diminsion.RelativeTypeId.Value == (int)RelativeTypesEnum.Days)
                    {
                        startDate = startDate.AddDays(-1 * diminsion.RelativeValue.Value);
                    }
                    else if (diminsion.RelativeTypeId.Value == (int)RelativeTypesEnum.Months)
                    {
                        startDate = startDate.AddMonths(-1 * diminsion.RelativeValue.Value);
                    }
                }

                foreach (var item in template.TemplateParameters)
                {
                    var connString = "";
                    connString = item.IsCube ? ConfigurationManager.AppSettings[item.ConnKeyName] : ConfigurationManager.ConnectionStrings[item.ConnKeyName].ConnectionString;
                    if (connString != "")
                    {
                        var engPeriodState = "";
                        var arPeriodState  = "";
                        var endDate        = DateTime.Now;
                        var count          = 0;
                        if (item.IsCube)
                        {
                            string mdx = "";
                            try
                            {
                                count = new CubeDAL(connString).GetAutomaticReportCounts(startDate, endDate, item.FieldName, item.CubeName, diminsion.FieldName, out mdx);
                            }
                            catch (Exception ex)
                            {
                                Utility.WriteErrorLog(ex);
                            }
                            Utility.WriteLog("Mdx is :" + mdx);
                            engPeriodState = string.Format(" during the period between {0} and {1} ", startDate.ToString("yyyy-MM-dd"), endDate.ToString("yyyy-MM-dd"));
                            arPeriodState  = " في الفترة بين " + startDate.ToString("yyyy-MM-dd") + " إلى " + endDate.ToString("yyyy-MM-dd");
                        }
                        else
                        {
                            var queryTxt = "";
                            if (File.Exists(item.QueryPath))
                            {
                                try
                                {
                                    queryTxt = File.ReadAllText(item.QueryPath);
                                    count    = new CubeDAL(connString).GetAutomaticReportCounts(queryTxt);
                                }
                                catch (Exception ex)
                                {
                                    Utility.WriteErrorLog(ex);
                                }
                                Utility.WriteLog("Query is :" + queryTxt);
                            }
                        }
                        if (count >= 0)
                        {
                            if (template.EmailTextArabic != "")
                            {
                                template.EmailTextArabic = template.EmailTextArabic.Replace(item.ParameterText, count.ToString()) + arPeriodState;
                            }
                            if (template.EmailTextEnglish != "")
                            {
                                template.EmailTextEnglish = template.EmailTextEnglish.Replace(item.ParameterText, count.ToString()) + engPeriodState;
                            }
                            if (template.SMSTextArabic != "")
                            {
                                template.SMSTextArabic = template.SMSTextArabic.Replace(item.ParameterText, count.ToString()) + arPeriodState;
                            }
                            if (template.SMSTextEnglish != "")
                            {
                                template.SMSTextEnglish = template.SMSTextEnglish.Replace(item.ParameterText, count.ToString()) + engPeriodState;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Utility.WriteErrorLog(ex);
            }
        }