public CompilerResults Build(string dirWithSrc)
        {
            string[] sources = GetSourcesFromDir(dirWithSrc, new string[] { ".cpp", ".h" });

            var cppc = new CppCodeProvider();

            var parameters = new CompilerParameters();

            parameters.OutputAssembly          = OutputFile;
            parameters.GenerateExecutable      = Executable;
            parameters.GenerateInMemory        = GenerateInMemory;
            parameters.IncludeDebugInformation = IncludeDebugInfo;

            parameters.ReferencedAssemblies.AddRange(IncludedLibraries.ToArray());
            parameters.EmbeddedResources.AddRange(EmbeddedResources.ToArray());
            parameters.LinkedResources.AddRange(LinkedResources.ToArray());

            if (MainClass != null)
            {
                parameters.MainClass = MainClass;
            }

            CompilerResults results = cppc.CompileAssemblyFromSource(parameters, sources);

            return(results);
        }
        public CompilerResults Build(string[] sourceCodes)
        {
            var csc = new CSharpCodeProvider(new Dictionary <string, string>()
            {
                { "CompilerVersion", CompilerVersion }
            });

            var parameters = new CompilerParameters();

            parameters.OutputAssembly          = OutputFile;
            parameters.GenerateExecutable      = Executable;
            parameters.GenerateInMemory        = GenerateInMemory;
            parameters.IncludeDebugInformation = IncludeDebugInfo;

            parameters.ReferencedAssemblies.AddRange(IncludedLibraries.ToArray());
            parameters.EmbeddedResources.AddRange(EmbeddedResources.ToArray());
            parameters.LinkedResources.AddRange(LinkedResources.ToArray());

            if (MainClass != null)
            {
                parameters.MainClass = MainClass;
            }

            CompilerResults results = csc.CompileAssemblyFromSource(parameters, sourceCodes);

            return(results);
        }
        public CompilerParameters ToCompilerParameters(string outputAssembly)
        {
            CompilerParameters cp = new CompilerParameters
            {
                GenerateExecutable      = false,
                GenerateInMemory        = false,
                WarningLevel            = WarningLevel,
                TreatWarningsAsErrors   = TreatWarningsAsErrors,
                IncludeDebugInformation = IncludeDebugInformation,
                CompilerOptions         = CompilerOptions,
                OutputAssembly          = outputAssembly,
                CoreAssemblyFileName    = CoreAssemblyFileName,
                Win32Resource           = Win32Resource
            };

            if (LinkedResources != null && LinkedResources.Count > 0)
            {
                cp.LinkedResources.AddRange(LinkedResources.ToArray());
            }

            if (EmbeddedResources != null && EmbeddedResources.Count > 0)
            {
                cp.EmbeddedResources.AddRange(EmbeddedResources.ToArray());
            }

            if (ReferencedAssemblies != null && ReferencedAssemblies.Count > 0)
            {
                cp.ReferencedAssemblies.AddRange(ReferencedAssemblies.ToArray());
            }

            return(cp);
        }
Example #4
0
        private void SendEmail(string subject, string htmlMessageBody)
        {
            // Create and configure the smtp client
            var smtpClient = SmtpClientFactory.ParseConfiguration(Transport);

            var mailMessage = new MailMessage
            {
                From    = new MailAddress(From),
                Subject = subject,
            };

            mailMessage.To.Add(To);
            mailMessage.BodyEncoding = Encoding.ASCII;
            var htmlView = AlternateView.CreateAlternateViewFromString(
                htmlMessageBody,
                new ContentType("text/html;charset=utf-8"));

            // Add icons as attachments to the email.
            LinkedResources.AddAttachmentIffGifFound(htmlView, "fatal", "/image/FatalIcon.gif");
            LinkedResources.AddAttachmentIffGifFound(htmlView, "error", "/image/ErrorIcon.gif");
            LinkedResources.AddAttachmentIffGifFound(htmlView, "warn", "/image/WarnIcon.gif");
            LinkedResources.AddAttachmentIffGifFound(htmlView, "notice", "/image/NoticeIcon.gif");
            LinkedResources.AddAttachmentIffGifFound(htmlView, "info", "/image/InfoIcon.gif");
            LinkedResources.AddAttachmentIffGifFound(htmlView, "debug", "/image/DebugIcon.gif");
            LinkedResources.AddAttachmentIffGifFound(htmlView, "trace", "/image/TraceIcon.gif");

            mailMessage.AlternateViews.Add(htmlView);
            if (!string.IsNullOrEmpty(ReplyTo))
            {
                mailMessage.ReplyTo = new MailAddress(ReplyTo);
            }


            smtpClient.Send(mailMessage);
        }
        public SendResponse Send()
        {
            SendResponse result     = new SendResponse();
            var          smtpServer = SPContext.Current.Web.Site.WebApplication.OutboundMailServiceInstance.Server.Address;

            SetMessageFrom();
            var localServerName = HttpContext.Current?.Server?.MachineName;
            var userName        = HttpContext.Current?.User?.Identity?.Name;

            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SetMessageFrom();
                    SetMessageTo();
                    SetMessageCc();
                    SetMessageBcc();

                    MailMessage mail = new MailMessage();
                    mail.From        = new MailAddress(From);
                    if (!string.IsNullOrWhiteSpace(To))
                    {
                        mail.To.Add(To);
                    }
                    if (!string.IsNullOrWhiteSpace(Cc))
                    {
                        mail.CC.Add(Cc);
                    }
                    if (!string.IsNullOrWhiteSpace(Bcc))
                    {
                        mail.Bcc.Add(Bcc);
                    }
                    mail.Subject    = GetMessageSubject();
                    mail.IsBodyHtml = true;
                    mail.Body       = GetMessageBody();
                    var htmlView    = AlternateView.CreateAlternateViewFromString(mail.Body, null, "text/html");
                    if (LinkedResources != null && LinkedResources.Any())
                    {
                        foreach (var res in LinkedResources)
                        {
                            htmlView.LinkedResources.Add(res);
                        }
                    }
                    mail.AlternateViews.Add(htmlView);
                    //var smtpServer = SPContext.Current.Web.Site.WebApplication.OutboundMailServiceInstance.Server.Address;
                    SmtpClient smtp = new SmtpClient(smtpServer);
                    smtp.Send(mail);
                    result.Successful = true;
                    result.Status     = "Success";
                    result.Message    = "Success";
                });
            }
            catch (Exception ex)
            {
                result.Successful = false;
                result.Status     = "Failed";
                result.Message    = $"{ex.Message} \r\n{ex.StackTrace}\r\n{ex.InnerException?.Message}\r\n{ex.InnerException?.StackTrace} - {ex.InnerException?.InnerException?.Message} - {ex.InnerException?.InnerException?.StackTrace} ";
            }
            try
            {
                if (!string.IsNullOrWhiteSpace(LogListUrl))
                {
                    if (result.Successful)
                    {
                        UnifiedLogging.WriteLog(UnifiedLogging.Category.Information, "ArkUtility.SPMail", "ArkUtility.SPMail - EmailMessage.Send() Success");
                    }
                    else
                    {
                        UnifiedLogging.WriteLog(UnifiedLogging.Category.Unexpected, "ArkUtility.SPMail", $"ArkUtility.SPMail - EmailMessage.Send() Failure: {result.Message} \r\nFrom: {From}\r\n To:{To}\r\n CC:{Cc}\r\nSubject: { GetMessageSubject()}\r\nRequested by User: {userName}");
                    }
                    SPSecurity.RunWithElevatedPrivileges(delegate()
                    {
                        using (SPSite site = new SPSite(LogListUrl))
                        {
                            using (SPWeb web = site.OpenWeb(LogListUrl))
                            {
                                SPList list            = web.GetList(LogListUrl);
                                web.AllowUnsafeUpdates = true;
                                if (!list.Fields.ContainsField("EmailResult"))
                                {
                                    list.Fields.Add("EmailResult", SPFieldType.Note, false);
                                    list.Update();
                                }
                                var listItems = list.Items;
                                var logentry  = listItems.Add();
                                if (list.Fields.ContainsField("Title"))
                                {
                                    logentry["Title"] = $"Email Sent {DateTime.UtcNow.ToString("u")} - { (result.Successful ? "Successful" : "Failed")}";
                                }
                                logentry["EmailResult"] = $"{ (result.Successful ? "Successful" : "Failed")}\r\n Status: {result.Status}\r\n{result.Message}\r\nSubject: { GetMessageSubject()}\r\nFrom: {From}\r\n To:{To}\r\n CC:{Cc}\r\nRequested by User: {userName}\r\nLogged:{DateTime.UtcNow.ToString("u")} from {localServerName}";
                                logentry.Update();
                                web.AllowUnsafeUpdates = false;
                            }
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                string msg = $"ArkUtility.SPMail has encountered an error during logging. {ex.Message} \r\nInner Error:{ex.InnerException?.Message} \r\n\r\n{ex.InnerException?.InnerException?.Message}";
                System.Diagnostics.Trace.WriteLine(msg, "Diagnostics");
                UnifiedLogging.WriteLog(UnifiedLogging.Category.Unexpected, "ArkUtility.SPMail", msg);
            }

            return(result);
        }