Exemple #1
0
        public Template ReadTemplate(ReadTemplateRequest request)
        {
            var cacheResult = GetTemplateFromCache(request);

            if (cacheResult.Item1 != null)
            {
                return(cacheResult.Item1);
            }

            var body    = new StringBuilder();
            var subject = string.Empty;
            var lines   = fileReader.ReadAllLines(new FilePathRequest {
                Path = cacheResult.Item2
            });

            for (var i = 0; i < lines.Length; i++)
            {
                if (i == 0)
                {
                    subject = lines[i];
                    continue;
                }

                body.AppendLine(lines[i]);
            }

            var result = new Template {
                Body    = body.ToString(),
                Subject = subject
            };

            maps.Add(cacheResult.Item2, result);

            return(result);
        }
Exemple #2
0
        private Tuple <Template, string> GetTemplateFromCache(ReadTemplateRequest request)
        {
            var filePath          = configurationManager.ReadAppSetting(request.Key);
            var emailTemplatePath = filePath.Replace("{{lang}}", request.Language.ToLower());

            Template result;

            if (maps.ContainsKey(emailTemplatePath) && maps.TryGetValue(emailTemplatePath, out result))
            {
                return(new Tuple <Template, string>(maps[emailTemplatePath], emailTemplatePath));
            }

            return(new Tuple <Template, string>(null, emailTemplatePath));
        }
Exemple #3
0
        public string ReadText(ReadTemplateRequest request)
        {
            var cacheResult = GetTemplateFromCache(request);

            if (cacheResult.Item1 != null)
            {
                return(cacheResult.Item1.Body);
            }

            var body = fileReader.ReadAllText(new FilePathRequest {
                Path = cacheResult.Item2
            });

            var result = new Template {
                Body = body
            };

            maps.Add(cacheResult.Item2, result);

            return(body);
        }