private void PrepareNotificationText(ReportTemplateDTO item, string templatePath) { var arEmailTemplatePath = string.Format(@"{0}\{1}.txt", GetNotificationTemplatePath(templatePath, "Email", "AR"), item.TemplateId); var enEmailTemplatePath = string.Format(@"{0}\{1}.txt", GetNotificationTemplatePath(templatePath, "Email", "EN"), item.TemplateId); var arSMSTemplatePath = string.Format(@"{0}\{1}.txt", GetNotificationTemplatePath(templatePath, "SMS", "AR"), item.TemplateId); var enSMSTemplatePath = string.Format(@"{0}\{1}.txt", GetNotificationTemplatePath(templatePath, "SMS", "EN"), item.TemplateId); if (File.Exists(arEmailTemplatePath)) { item.EmailTextArabic = File.ReadAllText(arEmailTemplatePath); } if (File.Exists(enEmailTemplatePath)) { item.EmailTextEnglish = File.ReadAllText(enEmailTemplatePath); } if (File.Exists(arSMSTemplatePath)) { item.SMSTextArabic = File.ReadAllText(arSMSTemplatePath); } if (File.Exists(enSMSTemplatePath)) { item.SMSTextEnglish = File.ReadAllText(enSMSTemplatePath); } }
private bool HandleTemplateFiles(string templatePath, int templateId, ReportTemplateDTO template) { try { var arEmailTemplatePath = GetNotificationTemplatePath(templatePath, "Email", "AR"); var enEmailTemplatePath = GetNotificationTemplatePath(templatePath, "Email", "EN"); var arSMSTemplatePath = GetNotificationTemplatePath(templatePath, "SMS", "AR"); var enSMSTemplatePath = GetNotificationTemplatePath(templatePath, "SMS", "EN"); if (!Directory.Exists(arEmailTemplatePath)) { Directory.CreateDirectory(arEmailTemplatePath); } if (!Directory.Exists(enEmailTemplatePath)) { Directory.CreateDirectory(enEmailTemplatePath); } if (!Directory.Exists(arSMSTemplatePath)) { Directory.CreateDirectory(arSMSTemplatePath); } if (!Directory.Exists(enSMSTemplatePath)) { Directory.CreateDirectory(enSMSTemplatePath); } if (template.EmailTextArabic != "") { File.WriteAllText(string.Format(@"{0}\{1}.txt", arEmailTemplatePath, templateId), template.EmailTextArabic, Encoding.Unicode); } if (template.EmailTextEnglish != "") { File.WriteAllText(string.Format(@"{0}\{1}.txt", enEmailTemplatePath, templateId), template.EmailTextEnglish); } if (template.SMSTextArabic != "") { File.WriteAllText(string.Format(@"{0}\{1}.txt", arSMSTemplatePath, templateId), template.SMSTextArabic, Encoding.Unicode); } if (template.SMSTextEnglish != "") { File.WriteAllText(string.Format(@"{0}\{1}.txt", enSMSTemplatePath, templateId), template.SMSTextEnglish); } return(true); } catch (Exception ex) { } return(false); }
public bool AddTemplate(ReportTemplateDTO template, string templatePath) { try { var isNameExist = _operationalDataContext.ReportsTemplate.Any(x => x.TemplateName.ToLower().Trim() == template.TemplateName.ToLower().Trim()); if (isNameExist) { return(false); } var entity = new ReportsTemplate { CreatedDate = DateTime.Now, CreatedUserId = template.CreatedUserId, EmailSubjectArabic = template.EmailSubjectArabic, EmailSubjectEnglish = template.EmailSubjectEnglish, IsDeleted = template.IsDeleted, IsEmail = template.IsEmail, IsSMS = template.IsSMS, LastModifiedDate = template.LastModifiedDate, LastModifiedUserId = template.LastModifiedUserId, TemplateName = template.TemplateName }; foreach (var item in template.TemplateParameters) { entity.ReportTemplateParameter.Add(new ReportTemplateParameter { IsDeleted = item.isDeleted, ParameterId = item.ParameterId, }); } _operationalDataContext.ReportsTemplate.Add(entity); var isSaved = _operationalDataContext.SaveChanges() > 0; if (isSaved) { return(HandleTemplateFiles(templatePath, entity.TemplateId, template)); } } catch (Exception ex) { } return(false); }
public bool EditTemplate(ReportTemplateDTO template, string templatePath) { var res = false; try { var isNameExist = _operationalDataContext.ReportsTemplate.Any(x => x.TemplateName.ToLower().Trim() == template.TemplateName.ToLower().Trim() && x.TemplateId != template.TemplateId); if (isNameExist) { return(false); } var entity = _operationalDataContext.ReportsTemplate.FirstOrDefault(x => x.TemplateId == template.TemplateId); if (entity != null) { entity.EmailSubjectArabic = template.EmailSubjectArabic; entity.EmailSubjectEnglish = template.EmailSubjectEnglish; entity.TemplateName = template.TemplateName; entity.LastModifiedDate = DateTime.Now; entity.LastModifiedUserId = template.LastModifiedUserId; var addedParametersIds = template.TemplateParameters.Where(x => !x.isDeleted && !entity.ReportTemplateParameter.Any(y => y.ParameterId == x.ParameterId)).Select(x => x.ParameterId).ToList(); var removedParametersIds = entity.ReportTemplateParameter.Where(x => !x.IsDeleted && !template.TemplateParameters.Any(y => y.ParameterId == x.ParameterId)).Select(x => x.ParameterId).ToList(); if (addedParametersIds != null && addedParametersIds.Any()) { foreach (var item in addedParametersIds) { if (entity.ReportTemplateParameter.Any(x => x.IsDeleted && x.ParameterId == item)) { entity.ReportTemplateParameter.FirstOrDefault(x => x.IsDeleted && x.ParameterId == item).IsDeleted = false; } else { entity.ReportTemplateParameter.Add(new ReportTemplateParameter { IsDeleted = false, ParameterId = item, }); } } } if (removedParametersIds != null && removedParametersIds.Any()) { foreach (var item in removedParametersIds) { if (entity.ReportTemplateParameter.Any(x => !x.IsDeleted && x.ParameterId == item)) { entity.ReportTemplateParameter.FirstOrDefault(x => !x.IsDeleted && x.ParameterId == item).IsDeleted = true; } } } var isSaved = _operationalDataContext.SaveChanges() > 0; if (isSaved) { return(HandleTemplateFiles(templatePath, entity.TemplateId, template)); } } } catch (Exception ex) { } return(res); }
public bool EditTemplate(ReportTemplateDTO template) { return(new AutomaticReportDAL().EditTemplate(template, Utility.GetTemplatePath())); }
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); } }