public static ResultObject SendExchangeOrganizationSummary(int itemId, string toEmail) { ResultObject result = new ResultObject(); result.IsSuccess = true; try { // initialize task manager TaskManager.StartTask(TaskManagerSource, "SEND_SUMMARY"); TaskManager.WriteParameter("Item ID", itemId); TaskManager.WriteParameter("To e-mail", toEmail); // load organization item ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization; if (item == null) { return(Error <ResultObject>(OrganizationNotFoundError)); } #region Check Space and Account // Check account int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) { return(Warning <ResultObject>((-accountCheck).ToString())); } // Check space int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive); if (packageCheck < 0) { return(Warning <ResultObject>((-packageCheck).ToString())); } #endregion // load organization details ExchangeOrganization org = GetOrganizationDetails(item.Id); if (org == null) { return(Error <ResultObject>(OrganizationNotFoundError)); } // get evaluated summary information MailTemplate msg = EvaluateOrganizationSummaryTemplate(org); if (msg == null) { return(Error <ResultObject>(SendOrganizationTemplateNotSetError)); } // send message int sendResult = MailHelper.SendMessage(msg.From, toEmail, msg.Bcc, msg.Subject, msg.Body, msg.Priority, msg.IsHtml); if (sendResult < 0) { return(Error <ResultObject>((-sendResult).ToString())); } return(result); } catch (Exception ex) { // log error TaskManager.WriteError(ex); // exit with error code return(Error <ResultObject>(SendOrganizationSummaryError, ex.Message)); } finally { TaskManager.CompleteTask(); } }
private static MailTemplate EvaluateOrganizationSummaryTemplate(ExchangeOrganization org) { #region create template context Hashtable items = new Hashtable(); // add organization items["org"] = org; // add package information PackageInfo space = PackageController.GetPackage(org.PackageId); items["space"] = space; // add user information UserInfo user = UserController.GetUser(space.UserId); items["user"] = user; #endregion #region load template // load template settings UserSettings settings = UserController.GetUserSettings(user.UserId, UserSettings.EXCHANGE_HOSTED_EDITION_ORGANIZATION_SUMMARY); if (settings == null) { return(null); } // create template MailTemplate template = new MailTemplate(); // from template.From = settings["From"]; // BCC template.Bcc = settings["CC"]; // subject template.Subject = settings["Subject"]; // body template.IsHtml = user.HtmlMail; string bodySetting = template.IsHtml ? "HtmlBody" : "TextBody"; template.Body = settings[bodySetting]; // priority string priority = settings["Priority"]; template.Priority = String.IsNullOrEmpty(priority) ? MailPriority.Normal : (MailPriority)Enum.Parse(typeof(MailPriority), priority, true); #endregion #region evaluate template if (template.Subject != null) { template.Subject = PackageController.EvaluateTemplate(template.Subject, items); } if (template.Body != null) { template.Body = PackageController.EvaluateTemplate(template.Body, items); } #endregion return(template); }