Esempio n. 1
0
        private User LoadLdapUser(string userName, string key)
        {
            lock (_writeLock)
            {
                User user;

                using (var db = new IdeasDb())
                {
                    user = db.Users.FirstOrDefault(x => x.DomainName == userName);
                    if (user == null)
                    {
                        user             = db.Users.Create();
                        user.CreatedDate = DateTime.Now;
                        db.Users.Add(user);
                    }
                    if (user.LastUpdateDate < DateTime.Now.AddDays(-1))
                    {
                        var ldapUser = _userRepository.GetUser(userName);
                        _mapper.Map(ldapUser, user);
                        user.DomainName     = userName;
                        user.LastUpdateDate = DateTime.Now;
                    }

                    db.SaveChanges();
                }


                UpdateCacheElement(key, user, 3600);

                return(user);
            }
        }
Esempio n. 2
0
        public void InformAboutComment(Comment comment)
        {
            try
            {
                using (var db = new IdeasDb())
                {
                    var entry = db.Entries.Include(x => x.User).First(x => x.Comments.Any(y => y.Id == comment.Id));

                    if (comment.UserId != entry.UserId)
                    {
                        NotifyAuthor(entry);
                    }
                    var interestedUsers = db.Users.Where(x => x.Comments.Any(y => y.Entry.Id == entry.Id) && x.Id != comment.UserId && x.Id != entry.UserId);

                    foreach (var ur in interestedUsers)
                    {
                        if (ur?.Email == null)
                        {
                            return;
                        }

                        var message = new MailMessage();
                        message.From = new MailAddress("*****@*****.**");

                        message.To.Add(new MailAddress(ur.Email));

                        message.Subject = "Comment on idea you have commented on too";
                        message.Body    = $"There's a new comment on idea '{entry.Title}'";

                        var client = new SmtpClient();
                        client.Send(message);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }