Exemple #1
0
 public ProjectStatusController(SearchService searchService, PageService pageService, ApplicationSettings appSettings, UserServiceBase userService, IUserContext userContext, ProjectStatusUpdateEmail projectStatusUpdateEmail)
     : base(appSettings, userService, userContext)
 {
     _searchService            = searchService;
     _pageService              = pageService;
     _projectStatusUpdateEmail = projectStatusUpdateEmail;
 }
Exemple #2
0
        public void SendUpdate(LightSpeedRepository repository, StatusUpdateViewModel updatedStatus, int pageId, int projectId, string projectTitle, ProjectStatusUpdateEmail projectStatusUpdateEmail)
        {
            var relationList = _pageService.GetRelationsByPageId(pageId).ToList();
            var emailModels  = new List <EmailProjectStatusUpdateViewModel>();

            var environmentPrefix = string.Empty;

            if (ConfigurationManager.AppSettings.AllKeys.Contains("environment"))
            {
                environmentPrefix = ConfigurationManager.AppSettings["environment"];
                environmentPrefix = $"[{environmentPrefix}] ";
            }

            foreach (var relViewModel in relationList)
            {
                var mod = new EmailProjectStatusUpdateViewModel
                {
                    ProjectName  = projectTitle,
                    ProjectId    = projectId.ToString(),
                    Subject      = $"{environmentPrefix}The status of project [{projectTitle}] has been updated.",
                    Author       = updatedStatus.Author,
                    UpdateDate   = updatedStatus.UpdateDate.ToString("f"),
                    StatusUpdate = updatedStatus.Text
                };

                var user = repository.GetUserById(relViewModel.userId);

                if (user != null)
                {
                    mod.Name      = $"{user.Firstname} {user.Lastname}";
                    mod.ToAddress = user.Email;
                }

                emailModels.Add(mod);
                projectStatusUpdateEmail.Send(mod);
            }
        }