Beispiel #1
0
        // send mail to admin or author of user
        private void Send_Email(string poster_username, string rusername, string emailaddress, string subject, string content, string url, List <JGN_MailTemplates> lst)
        {
            if (rusername != "guest")
            {
                if (rusername == "admin")
                {
                    // mail send to admin
                    emailaddress = Jugnoon.Settings.Configs.GeneralSettings.admin_mail;
                }

                string msubject = MailProcess.Process2(lst[0].subject, "\\[poster_username\\]", poster_username);
                msubject = MailProcess.Process2(msubject, "\\[username\\]", rusername);
                msubject = MailProcess.Process2(msubject, "\\[subject\\]", subject);
                var str = new StringBuilder();
                str.AppendLine("<a href=\"" + url + "\">" + subject + "</a><br /><br />");
                str.AppendLine(WebUtility.HtmlDecode(UtilityBLL.Process_Content_Text(content)));
                string contents = MailProcess.Process2(lst[0].contents, "\\[poster_username\\]", poster_username);
                contents = MailProcess.Process2(contents, "\\[username\\]", rusername);
                contents = MailProcess.Process2(contents, "\\[content\\]", str.ToString());

                // attach signature
                contents = MailProcess.Prepare_Email_Signature(contents);

                MailProcess.Send_Mail(emailaddress, msubject, contents);
            }
        }
Beispiel #2
0
        // Send mail to owner of group if user posted new topic in group
        private void GroupMailProcessTemplate(string ownerusername, string title, string username, string emailaddress, string inboxurl, long groupid)
        {
            //if sending mail option enabled
            if (Jugnoon.Settings.Configs.SmtpSettings.enable_email)
            {
                var lst = MailTemplateBLL.Get_Template(_context, "GRPTPAPR").Result;
                if (lst.Count > 0)
                {
                    string subject = MailProcess.Process2(lst[0].subject, "\\[ownerusername\\]", ownerusername);
                    subject = MailProcess.Process2(subject, "\\[username\\]", username);

                    string contents = MailProcess.Process2(lst[0].contents, "\\[ownerusername\\]", ownerusername);
                    contents = MailProcess.Process2(contents, "\\[username\\]", ownerusername);

                    string group_url = Config.GetUrl("group/" + groupid);
                    string url       = "<a href=\"" + group_url + "\">" + group_url + "</a>";

                    contents = MailProcess.Process2(contents, "\\[url\\]", url);
                    contents = MailProcess.Process2(contents, "\\[title\\]", title);
                    contents = MailProcess.Process2(contents, "\\[inboxurl\\]", inboxurl);

                    // attach signature
                    contents = MailProcess.Prepare_Email_Signature(contents);

                    MailProcess.Send_Mail(emailaddress, subject, contents);
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Send notification to user when password reset event completed successfully
        /// </summary>
        /// <param name="emailSender"></param>
        /// <param name="context"></param>
        /// <param name="email"></param>
        /// <param name="username"></param>
        /// <param name="link"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public static Task SendEmailConfirmationAsync(this IEmailSender emailSender, ApplicationDbContext context, string email, string username, string link, string password)
        {
            if (Settings.Configs.SmtpSettings.enable_email)
            {
                var lst = MailTemplateBLL.Get_Template(context, "USRREG").Result;
                if (lst.Count > 0)
                {
                    if (username.Contains("@"))
                    {
                        username = "******";
                    }
                    string subject = MailProcess.Process2(lst[0].subject, "\\[username\\]", username);
                    subject = MailProcess.Prepare_Email_Signature(subject);

                    string contents = MailProcess.Process2(lst[0].contents, "\\[username\\]", username);
                    contents = MailProcess.Process2(contents, "\\[email\\]", email);
                    contents = MailProcess.Process2(contents, "\\[password\\]", password);
                    string url = "<a href=\"" + link + "\">" + link + "</a>";
                    contents = MailProcess.Process2(contents, "\\[key_url\\]", System.Text.Encodings.Web.HtmlEncoder.Default.Encode(link));

                    // attach signature
                    contents = MailProcess.Prepare_Email_Signature(contents);

                    return(emailSender.SendEmailAsync(email, subject, contents));
                }
            }

            return(Task.CompletedTask);
        }
Beispiel #4
0
        /// <summary>
        /// Send email through contact us form
        /// </summary>
        /// <param name="emailSender"></param>
        /// <param name="context"></param>
        /// <param name="email"></param>
        /// <param name="entity"></param>
        /// <returns></returns>
        public static Task ContactUsEmailAsync(this IEmailSender emailSender, ApplicationDbContext context, string email, ContactUsViewModel entity)
        {
            if (Settings.Configs.SmtpSettings.enable_email)
            {
                var lst = MailTemplateBLL.Get_Template(context, "CONTACTUS").Result;
                if (lst.Count > 0)
                {
                    string subject = MailProcess.Process2(lst[0].subject, "\\[fullname\\]", entity.SenderName);
                    subject = MailProcess.Prepare_Email_Signature(subject);

                    string contents = MailProcess.Process2(lst[0].contents, "\\[fullname\\]", entity.SenderName);
                    contents = MailProcess.Process2(contents, "\\[phone\\]", entity.PhoneNumber);
                    contents = MailProcess.Process2(contents, "\\[email\\]", entity.EmailAddress);
                    contents = MailProcess.Process2(contents, "\\[message\\]", entity.Body);

                    // attach signature
                    contents = MailProcess.Process2(contents, "\\[website\\]", Settings.Configs.GeneralSettings.website_title);
                    contents = MailProcess.Process2(contents, "\\[website_url\\]", SiteConfiguration.URL);

                    contents = MailProcess.Prepare_Email_Signature(contents);

                    return(emailSender.SendEmailAsync(email, subject, contents));
                }
            }

            return(Task.CompletedTask);
        }
Beispiel #5
0
        /// <summary>
        /// Send email reset autorization and processing link to user
        /// </summary>
        /// <param name="emailSender"></param>
        /// <param name="context"></param>
        /// <param name="email"></param>
        /// <param name="username"></param>
        /// <param name="link"></param>
        /// <returns></returns>
        public static Task ChangeEmailResetAsync(this IEmailSender emailSender, ApplicationDbContext context, string email, string username, string link)
        {
            if (Settings.Configs.SmtpSettings.enable_email)
            {
                if (username.Contains("@"))
                {
                    username = "******";
                }
                var lst = MailTemplateBLL.Get_Template(context, "USREMLCREQ").Result;
                if (lst.Count > 0)
                {
                    string subject = MailProcess.Process2(lst[0].subject, "\\[username\\]", username);
                    subject = MailProcess.Prepare_Email_Signature(subject);

                    string contents = MailProcess.Process2(lst[0].contents, "\\[username\\]", username);
                    contents = MailProcess.Process2(contents, "\\[key_url\\]", System.Text.Encodings.Web.HtmlEncoder.Default.Encode(link));
                    contents = MailProcess.Process2(contents, "\\[emailaddress\\]", email);
                    contents = MailProcess.Process2(contents, "\\[domainname\\]", Jugnoon.Settings.Configs.GeneralSettings.website_title);
                    contents = MailProcess.Process2(contents, "\\[unsubscribeurl\\]", UrlConfig.UnsubscribeUrl);

                    // attach signature

                    contents = MailProcess.Prepare_Email_Signature(contents);

                    return(emailSender.SendEmailAsync(email, subject, contents));
                }
            }

            return(Task.CompletedTask);
        }
Beispiel #6
0
    private void MailTemplateProcess(string emailaddress, string username)
    {
        //if sending mail option enabled
        if (Config.isEmailEnabled())
        {
            string content = txt_content.Value;
            string subject = MailProcess.Process2(txt_subject.Text, "\\[username\\]", username);

            string contents = MailProcess.Process2(content, "\\[username\\]", username);
            contents = MailProcess.Process2(contents, "\\[email\\]", emailaddress);

            MailProcess.Send_Mail(emailaddress, subject, contents);
        }
    }
Beispiel #7
0
    private void MailTemplateProcess(string username)
    {
        //if sending mail option enabled
        if (Config.isEmailEnabled())
        {
            string emailaddress = members.Return_Value(username, "email");
            System.Collections.Generic.List <Struct_MailTemplates> lst = MailTemplateBLL.Get_Record("USRPRIVCHN");
            if (lst.Count > 0)
            {
                string subject  = MailProcess.Process2(lst[0].Subject, "\\[username\\]", username);
                string contents = MailProcess.Process2(lst[0].Contents, "\\[username\\]", username);

                MailProcess.Send_Mail(emailaddress, subject, contents);
            }
        }
    }
Beispiel #8
0
    private void MailTemplateProcess(string emailaddress, string username, string url)
    {
        //if sending mail option enabled
        if (Config.isEmailEnabled())
        {
            System.Collections.Generic.List <Struct_MailTemplates> lst = MailTemplateBLL.Get_Record("FORPASS");
            if (lst.Count > 0)
            {
                string subject  = MailProcess.Process2(lst[0].Subject, "\\[username\\]", username);
                string contents = MailProcess.Process2(lst[0].Contents, "\\[username\\]", username);
                contents = MailProcess.Process2(contents, "\\[url\\]", url);

                MailProcess.Send_Mail(emailaddress, subject, contents);
            }
        }
    }
Beispiel #9
0
 private void ManageAccount_MailTemplateProcess(string username)
 {
     //if sending mail option enabled
     if (Jugnoon.Settings.Configs.SmtpSettings.enable_email)
     {
         string emailaddress = UserBLL.Return_Value_UserId(_context, username, "email");
         var    lst          = MailTemplateBLL.Get_Template(_context, "USRPASSCHN").Result;
         if (lst.Count > 0)
         {
             string subject  = MailProcess.Process2(lst[0].subject, "\\[username\\]", username);
             string contents = MailProcess.Process2(lst[0].contents, "\\[username\\]", username);
             // attach signature
             contents = MailProcess.Prepare_Email_Signature(contents);
             MailProcess.Send_Mail(emailaddress, subject, contents);
         }
     }
 }
    // send mail to admin when new content added by user
    public static void Admin_New_Content_Added(string username, string contenttype, string url)
    {
        //if sending mail option enabled
        if (Config.isEmailEnabled())
        {
            System.Collections.Generic.List <Struct_MailTemplates> lst = MailTemplateBLL.Get_Record("USRAPRCNT");
            if (lst.Count > 0)
            {
                string subject = MailProcess.Process2(lst[0].Subject, "\\[username\\]", username);
                subject = MailProcess.Process2(subject, "\\[contenttype\\]", contenttype);
                string contents = MailProcess.Process2(lst[0].Contents, "\\[username\\]", username);
                subject  = MailProcess.Process2(subject, "\\[contenttype\\]", contenttype);
                contents = MailProcess.Process2(contents, "\\[url\\]", url);

                string emailaddress = Site_Settings.Admin_Mail;
                MailProcess.Send_Mail(emailaddress, subject, contents);
            }
        }
    }
Beispiel #11
0
    // mail processing
    private void MailTemplateProcess(string emailaddress, string username, string password, string key)
    {
        //if sending mail option enabled
        if (Config.isEmailEnabled())
        {
            System.Collections.Generic.List <Struct_MailTemplates> lst = MailTemplateBLL.Get_Record("USRREG");
            if (lst.Count > 0)
            {
                string subject  = MailProcess.Process2(lst[0].Subject, "\\[username\\]", username);
                string contents = MailProcess.Process2(lst[0].Contents, "\\[username\\]", username);
                contents = MailProcess.Process2(contents, "\\[password\\]", password);
                string validation_url = Config.GetUrl("validate.aspx?key=" + key.Trim() + "&user="******"<a href=\"" + validation_url + "\">" + validation_url + "</a>";
                contents = MailProcess.Process2(contents, "\\[key_url\\]", url);

                MailProcess.Send_Mail(emailaddress, subject, contents);
            }
        }
    }
    // ******************************
    // Mail Templates
    // ******************************

    // send mail to user when admin approved user posted content
    public static void User_Mail_Content_Action(string username, string contenttype, string url, string status)
    {
        //if sending mail option enabled
        if (Config.isEmailEnabled())
        {
            System.Collections.Generic.List <Struct_MailTemplates> lst = MailTemplateBLL.Get_Record("USRCNTAPP");
            if (lst.Count > 0)
            {
                string subject = MailProcess.Process2(lst[0].Subject, "\\[username\\]", username);
                subject = MailProcess.Process2(subject, "\\[status\\]", status);
                subject = MailProcess.Process2(subject, "\\[contenttype\\]", contenttype);
                string contents = MailProcess.Process2(lst[0].Contents, "\\[username\\]", username);
                contents = MailProcess.Process2(contents, "\\[contenttype\\]", contenttype);
                contents = MailProcess.Process2(contents, "\\[url\\]", url);
                contents = MailProcess.Process2(contents, "\\[status\\]", status);
                string emailaddress = members.Return_Value(username, "email");
                MailProcess.Send_Mail(emailaddress, subject, contents);
            }
        }
    }
Beispiel #13
0
        /// <summary>
        /// Send email notification to admin when new user signup
        /// </summary>
        /// <param name="emailSender"></param>
        /// <param name="context"></param>
        /// <param name="email"></param>
        /// <param name="username"></param>
        /// <returns></returns>
        public static Task SendEmailNotificationAsync(this IEmailSender emailSender, ApplicationDbContext context, string email, string username)
        {
            if (Settings.Configs.SmtpSettings.enable_email)
            {
                var lst = MailTemplateBLL.Get_Template(context, "USRREGADM").Result;
                if (lst.Count > 0)
                {
                    string subject = MailProcess.Process2(lst[0].subject, "\\[username\\]", username);
                    subject = MailProcess.Prepare_Email_Signature(subject);

                    string contents = MailProcess.Process2(lst[0].contents, "\\[username\\]", username);
                    contents = MailProcess.Process2(contents, "\\[email\\]", email);

                    // attach signature
                    contents = MailProcess.Prepare_Email_Signature(contents);

                    return(emailSender.SendEmailAsync(Jugnoon.Settings.Configs.GeneralSettings.admin_mail, subject, contents));
                }
            }

            return(Task.CompletedTask);
        }
Beispiel #14
0
        /// <summary>
        /// Send notification to user when email reset event completed successfully
        /// </summary>
        /// <param name="emailSender"></param>
        /// <param name="context"></param>
        /// <param name="email"></param>
        /// <param name="username"></param>
        /// <returns></returns>
        public static Task ChangeEmailResetCompletedAsync(this IEmailSender emailSender, ApplicationDbContext context, string email, string username)
        {
            if (Settings.Configs.SmtpSettings.enable_email)
            {
                if (username.Contains("@"))
                {
                    username = "******";
                }
                var lst = MailTemplateBLL.Get_Template(context, "USREMLCHNG").Result;
                if (lst.Count > 0)
                {
                    string subject = MailProcess.Process2(lst[0].subject, "\\[username\\]", username);
                    subject = MailProcess.Prepare_Email_Signature(subject);

                    string contents = MailProcess.Process2(lst[0].contents, "\\[username\\]", username);
                    contents = MailProcess.Prepare_Email_Signature(contents);

                    return(emailSender.SendEmailAsync(email, subject, contents));
                }
            }

            return(Task.CompletedTask);
        }
        public ActionResult Generate(QueryVM vm)
        {
            vm.UserID = userInfo.Account;
            string exeResult = string.Empty;

            try
            {
                string SQLName = string.Empty;
                if (!canGenerate(vm))
                {
                    return(RedirectToAction("Query", vm));
                    //return View("Index", vm);
                }

                #region XML
                if (vm.Format.Equals("XML"))
                {
                    using (tblXMLSettingRepository rep = new tblXMLSettingRepository())
                        using (tblXMLMappingRepository map = new tblXMLMappingRepository())
                        {
                            tblXMLSetting setting = rep.get(vm.SettingName);
                            if (setting != null)
                            {
                                SQLName = setting.SQLName;
                            }
                            List <tblXMLMapping> mapping = map.get(vm.SettingName).ToList();
                            using (tblSQLSettingRepository set = new tblSQLSettingRepository())
                            {
                                tblSQLSetting sqlSetting = set.select(SQLName);
                                using (DataAccess da = new DataAccess())
                                {
                                    Tuple <bool, DataTable, string> result = da.TryExecuteDataTable(sqlSetting.SQLStatement, null, vm.Columns);
                                    if (!result.Item1)
                                    {
                                        log.Save("轉出", userInfo.Name, vm.CustomerName, vm.Format, vm.DataDestination, vm.Email, vm.FTPServerIP, vm.FileName, "失敗", result.Item3);
                                        return(View("Index", vm));
                                    }

                                    vm.SQLResultDataRow = result.Item2;
                                    XmlDocument       xmlDoc   = XmlProcess.GenerateXML(result.Item2, mapping);
                                    XmlWriterSettings settings = new XmlWriterSettings();
                                    settings.Indent              = true;
                                    settings.OmitXmlDeclaration  = false;
                                    settings.NewLineOnAttributes = true;
                                    settings.Encoding            = Encoding.GetEncoding("utf-8");

                                    if (vm.DataDestination.Equals("Download", StringComparison.OrdinalIgnoreCase))
                                    {
                                        MemoryStream ms = new MemoryStream();
                                        using (XmlWriter writer = XmlWriter.Create(ms, settings))
                                        {
                                            xmlDoc.WriteTo(writer); // Write to memorystream
                                        }

                                        byte[] data = ms.ToArray();

                                        Response.Clear();
                                        Response.ContentType = "application/octet-stream";
                                        Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(vm.FileName));
                                        Response.Charset = "UTF-8";
                                        Response.BinaryWrite(data);
                                        Response.End();
                                        ms.Flush(); // Probably not needed
                                        ms.Close();
                                    }
                                    else if (vm.DataDestination.Equals("FTP", StringComparison.OrdinalIgnoreCase))
                                    {
                                        using (Stream fs = System.IO.File.Open(Server.MapPath("~/Files/" + vm.FileName), FileMode.CreateNew))
                                        {
                                            XmlWriter writer = XmlWriter.Create(fs, settings);
                                            xmlDoc.WriteTo(writer); // Write to memorystream
                                            writer.Flush();
                                            fs.Close();
                                        }

                                        //xmlDoc.Save(Server.MapPath("~/Files/" + vm.FileName));
                                        FTPData ftpData = new FTPData()
                                        {
                                            FTPServerIP = vm.FTPServerIP,
                                            Port        = vm.FTPPort ?? 21,
                                            UserName    = vm.FTPUserName,
                                            Password    = vm.FTPPassword,
                                            file        = new FileInfo(Server.MapPath("~/Files/" + vm.FileName))
                                        };
                                        if (vm.FTPPort == 22)
                                        {
                                            SFtpProcess uploader = new SFtpProcess(ftpData);
                                            exeResult = uploader.Put(ftpData.file, ftpData.DirName);
                                        }
                                        else
                                        {
                                            FtpProcess uploader = new FtpProcess();
                                            exeResult = uploader.Upload(ftpData);
                                        }
                                    }
                                    else if (vm.DataDestination.Equals("EMail", StringComparison.OrdinalIgnoreCase))
                                    {
                                        using (Stream fs = System.IO.File.Open(Server.MapPath("~/Files/" + vm.FileName), FileMode.CreateNew))
                                        {
                                            XmlWriter writer = XmlWriter.Create(fs, settings);
                                            xmlDoc.WriteTo(writer); // Write to memorystream
                                            writer.Flush();
                                            fs.Close();
                                        }
                                        string subject = string.Empty;
                                        using (bscodeRepository bscode = new bscodeRepository())
                                        {
                                            subject = bscode.getSubject(sqlSetting.SQLType);
                                        }
                                        MailProcess sender   = new MailProcess();
                                        EmailData   mailData = new EmailData()
                                        {
                                            To         = vm.Email,
                                            Subject    = subject,
                                            Attachment = new FileInfo(Server.MapPath("~/Files/" + vm.FileName))
                                        };
                                        exeResult = sender.SendEmail(mailData);
                                    }
                                    if (!string.IsNullOrEmpty(exeResult))
                                    {
                                        log.Save("轉出", userInfo.Name, vm.CustomerName, vm.Format, vm.DataDestination, vm.Email, vm.FTPServerIP, vm.FileName, "失敗", exeResult);
                                    }
                                    else
                                    {
                                        log.Save("轉出", userInfo.Name, vm.CustomerName, vm.Format, vm.DataDestination, vm.Email, vm.FTPServerIP, vm.FileName, "成功", "");
                                    }
                                }
                            }
                        }
                }
                #endregion
                #region EXCEL
                else if (vm.Format.Equals("EXCEL"))
                {
                    using (tblExcelSettingRepository rep = new tblExcelSettingRepository())
                        using (tblExcelMappingRepository map = new tblExcelMappingRepository())
                        {
                            tblExcelSetting setting = rep.get(vm.SettingName);
                            if (setting != null)
                            {
                                SQLName = setting.SQLName;
                            }

                            List <tblExcelMapping> mapping = map.get(vm.SettingName).ToList();
                            using (tblSQLSettingRepository set = new tblSQLSettingRepository())
                            {
                                tblSQLSetting sqlSetting = set.select(SQLName);
                                using (DataAccess da = new DataAccess())
                                {
                                    Tuple <bool, DataTable, string> result = da.TryExecuteDataTable(sqlSetting.SQLStatement, null, vm.Columns);
                                    if (!result.Item1)
                                    {
                                        log.Save("轉出", userInfo.Name, vm.CustomerName, vm.Format, vm.DataDestination, vm.Email, vm.FTPServerIP, vm.FileName, "失敗", result.Item3);
                                        return(View("Index", vm));
                                    }
                                    vm.SQLResultDataRow = result.Item2;
                                    HSSFWorkbook book = ExcelProcess.GenerateExcel(result.Item2, mapping);

                                    if (vm.DataDestination.Equals("Download", StringComparison.OrdinalIgnoreCase))
                                    {
                                        MemoryStream ms = new MemoryStream();
                                        book.Write(ms);
                                        Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", HttpUtility.UrlEncode(vm.FileName)));
                                        Response.BinaryWrite(ms.ToArray());
                                        Response.End();
                                        book = null;
                                        ms.Close();
                                        ms.Dispose();
                                    }
                                    else if (vm.DataDestination.Equals("FTP", StringComparison.OrdinalIgnoreCase))
                                    {
                                        FileStream file = new FileStream(Server.MapPath("~/Files/" + vm.FileName), FileMode.Create);//產生檔案
                                        book.Write(file);
                                        file.Close();

                                        FTPData ftpData = new FTPData()
                                        {
                                            FTPServerIP = vm.FTPServerIP,
                                            Port        = vm.FTPPort ?? 21,
                                            UserName    = vm.FTPUserName,
                                            Password    = vm.FTPPassword,
                                            file        = new FileInfo(Server.MapPath("~/Files/" + vm.FileName))
                                        };
                                        if (vm.FTPPort == 22)
                                        {
                                            SFtpProcess uploader = new SFtpProcess(ftpData);
                                            exeResult = uploader.Put(ftpData.file, ftpData.DirName);
                                        }
                                        else
                                        {
                                            FtpProcess uploader = new FtpProcess();
                                            exeResult = uploader.Upload(ftpData);
                                        }
                                    }
                                    else if (vm.DataDestination.Equals("EMail", StringComparison.OrdinalIgnoreCase))
                                    {
                                        FileStream file = new FileStream(Server.MapPath("~/Files/" + vm.FileName), FileMode.Create);//產生檔案
                                        book.Write(file);
                                        file.Close();
                                        string subject = string.Empty;
                                        using (bscodeRepository bscode = new bscodeRepository())
                                        {
                                            subject = bscode.getSubject(sqlSetting.SQLType);
                                        }
                                        MailProcess sender   = new MailProcess();
                                        EmailData   mailData = new EmailData()
                                        {
                                            To         = vm.Email,
                                            Subject    = subject,
                                            Attachment = new FileInfo(Server.MapPath("~/Files/" + vm.FileName))
                                        };
                                        exeResult = sender.SendEmail(mailData);
                                    }
                                    if (!string.IsNullOrEmpty(exeResult))
                                    {
                                        log.Save("轉出", userInfo.Name, vm.CustomerName, vm.Format, vm.DataDestination, vm.Email, vm.FTPServerIP, vm.FileName, "失敗", exeResult);
                                    }
                                    else
                                    {
                                        log.Save("轉出", userInfo.Name, vm.CustomerName, vm.Format, vm.DataDestination, vm.Email, vm.FTPServerIP, vm.FileName, "成功", "");
                                    }
                                }
                            }
                        }
                }
                #endregion
            }
            catch (Exception ex)
            {
                exeResult = ex.Message.Replace("\r\n", "");
                log.Save("轉出", userInfo.Name, vm.CustomerName, vm.Format, vm.DataDestination, vm.Email, vm.FTPServerIP, vm.FileName, "失敗", exeResult);
            }

            if (!string.IsNullOrEmpty(exeResult))
            {
                ViewBag.ExeResult = exeResult;
            }
            else
            {
                ViewBag.ExeResult = "操作完成";
            }
            return(View("Index", vm));
        }
Beispiel #16
0
 /// <summary>
 /// Routine email sending method (used for normal smtp + mandril + ses and others)
 /// </summary>
 /// <param name="email"></param>
 /// <param name="subject"></param>
 /// <param name="message"></param>
 /// <returns></returns>
 public Task SendEmailAsync(string email, string subject, string message)
 {
     MailProcess.Send_Mail(email, subject, message);
     return(Task.CompletedTask);
 }
Beispiel #17
0
        static void Generate(tblSchedule s)
        {
            string exeResult = string.Empty;
            string FileName  = string.Empty;

            try
            {
                string   SQLName      = string.Empty;
                string[] Destinations = s.Destination.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);

                #region XML
                if (s.Format.Equals("XML"))
                {
                    using (tblXMLSettingRepository rep = new tblXMLSettingRepository())
                        using (tblXMLMappingRepository map = new tblXMLMappingRepository())
                        {
                            tblXMLSetting setting = rep.get(s.SettingName);
                            if (setting != null)
                            {
                                SQLName  = setting.SQLName;
                                FileName = setting.FileName + ((string.IsNullOrEmpty(setting.FileNameDateFormat)) ? ".xml" : DateTime.Now.ToString(setting.FileNameDateFormat.Replace(",", "")) + ".xml");
                            }
                            List <tblXMLMapping> mapping = map.get(s.SettingName).ToList();
                            using (tblSQLSettingRepository set = new tblSQLSettingRepository())
                            {
                                tblSQLSetting sqlSetting = set.select(SQLName);
                                using (DataAccess da = new DataAccess())
                                {
                                    Tuple <bool, DataTable, string> result = da.TryExecuteDataTable(sqlSetting.SQLStatement, null, null);
                                    if (!result.Item1)
                                    {
                                        log.Save("轉出", "Schedule", s.CustomerName, s.Format, "", s.Email, s.FTPServer, FileName, "失敗", result.Item3);
                                    }

                                    XmlDocument       xmlDoc   = XmlProcess.GenerateXML(result.Item2, mapping);
                                    XmlWriterSettings settings = new XmlWriterSettings();
                                    settings.Indent              = true;
                                    settings.OmitXmlDeclaration  = false;
                                    settings.NewLineOnAttributes = true;
                                    settings.Encoding            = Encoding.GetEncoding("utf-8");

                                    // Path
                                    if (Destinations.Contains("1"))
                                    {
                                        try
                                        {
                                            using (Stream fs = File.Open(s.Path + "/" + FileName, FileMode.CreateNew))
                                            {
                                                XmlWriter writer = XmlWriter.Create(fs, settings);
                                                xmlDoc.WriteTo(writer); // Write to memorystream
                                                writer.Flush();
                                                fs.Close();
                                            }
                                            //xmlDoc.Save(s.Path + "/" + FileName);
                                        }
                                        catch (Exception ex)
                                        {
                                            exeResult = ex.Message.Replace("\r\n", "");
                                        }
                                        if (!string.IsNullOrEmpty(exeResult))
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "PATH", s.Email, s.FTPServer, FileName, "失敗", exeResult);
                                        }
                                        else
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "PATH", s.Email, s.FTPServer, FileName, "成功", "");
                                        }
                                    }

                                    if (Destinations.Contains("2") || Destinations.Contains("3"))
                                    {
                                        using (Stream fs = File.Open(System.AppDomain.CurrentDomain.BaseDirectory + "/Files/" + FileName, FileMode.CreateNew))
                                        {
                                            XmlWriter writer = XmlWriter.Create(fs, settings);
                                            xmlDoc.WriteTo(writer); // Write to memorystream
                                            writer.Flush();
                                            fs.Close();
                                        }
                                        //xmlDoc.Save(System.AppDomain.CurrentDomain.BaseDirectory + "/Files/" + FileName);
                                    }

                                    // Email
                                    if (Destinations.Contains("2"))
                                    {
                                        string subject = string.Empty;
                                        using (bscodeRepository bscode = new bscodeRepository())
                                        {
                                            subject = bscode.getSubject(sqlSetting.SQLType);
                                        }
                                        MailProcess sender   = new MailProcess();
                                        EmailData   mailData = new EmailData()
                                        {
                                            To         = s.Email,
                                            Subject    = subject,
                                            Attachment = new FileInfo(System.AppDomain.CurrentDomain.BaseDirectory + "/Files/" + FileName)
                                        };
                                        exeResult = sender.SendEmail(mailData);
                                        if (!string.IsNullOrEmpty(exeResult))
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "EMail", s.Email, s.FTPServer, FileName, "失敗", exeResult);
                                        }
                                        else
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "EMail", s.Email, s.FTPServer, FileName, "成功", "");
                                        }
                                    }
                                    // FTP
                                    if (Destinations.Contains("3"))
                                    {
                                        FTPData ftpData = new FTPData()
                                        {
                                            FTPServerIP = s.FTPServer,
                                            Port        = 21,
                                            UserName    = s.FTPAccount,
                                            Password    = s.FTPPassword,
                                            file        = new FileInfo(System.AppDomain.CurrentDomain.BaseDirectory + "/Files/" + FileName)
                                        };
                                        FtpProcess uploader = new FtpProcess();
                                        exeResult = uploader.Upload(ftpData);
                                        if (!string.IsNullOrEmpty(exeResult))
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "FTP", s.Email, s.FTPServer, FileName, "失敗", exeResult);
                                        }
                                        else
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "FTP", s.Email, s.FTPServer, FileName, "成功", "");
                                        }
                                    }
                                }
                            }
                        }
                }
                #endregion
                #region EXCEL
                else if (s.Format.Equals("EXCEL"))
                {
                    using (tblExcelSettingRepository rep = new tblExcelSettingRepository())
                        using (tblExcelMappingRepository map = new tblExcelMappingRepository())
                        {
                            tblExcelSetting setting = rep.get(s.SettingName);
                            if (setting != null)
                            {
                                SQLName  = setting.SQLName;
                                FileName = setting.FileName + ((string.IsNullOrEmpty(setting.FileNameDateFormat)) ? ".xls" : DateTime.Now.ToString(setting.FileNameDateFormat.Replace(",", "")) + ".xls");
                            }

                            List <tblExcelMapping> mapping = map.get(s.SettingName).ToList();
                            using (tblSQLSettingRepository set = new tblSQLSettingRepository())
                            {
                                tblSQLSetting sqlSetting = set.select(SQLName);
                                using (DataAccess da = new DataAccess())
                                {
                                    Tuple <bool, DataTable, string> result = da.TryExecuteDataTable(sqlSetting.SQLStatement, null, null);
                                    if (!result.Item1)
                                    {
                                        log.Save("轉出", "Schedule", s.CustomerName, s.Format, "", s.Email, s.FTPServer, FileName, "失敗", result.Item3);
                                    }

                                    HSSFWorkbook book = ExcelProcess.GenerateExcel(result.Item2, mapping);

                                    // Path
                                    if (Destinations.Contains("1"))
                                    {
                                        FileStream file = new FileStream(s.Path + "\\" + FileName, FileMode.Create);//產生檔案
                                        book.Write(file);
                                        file.Close();
                                        if (!string.IsNullOrEmpty(exeResult))
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "PATH", s.Email, s.FTPServer, FileName, "失敗", exeResult);
                                        }
                                        else
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "PATH", s.Email, s.FTPServer, FileName, "成功", "");
                                        }
                                    }
                                    if (Destinations.Contains("2") || Destinations.Contains("3"))
                                    {
                                        FileStream file = new FileStream(System.AppDomain.CurrentDomain.BaseDirectory + "/Files/" + FileName, FileMode.Create);//產生檔案
                                        book.Write(file);
                                        file.Close();
                                    }
                                    // EMail
                                    if (Destinations.Contains("2"))
                                    {
                                        string subject = string.Empty;
                                        using (bscodeRepository bscode = new bscodeRepository())
                                        {
                                            subject = bscode.getSubject(sqlSetting.SQLType);
                                        }
                                        MailProcess sender   = new MailProcess();
                                        EmailData   mailData = new EmailData()
                                        {
                                            To         = s.Email,
                                            Subject    = subject,
                                            Attachment = new FileInfo(System.AppDomain.CurrentDomain.BaseDirectory + "/Files/" + FileName)
                                        };
                                        exeResult = sender.SendEmail(mailData);
                                        if (!string.IsNullOrEmpty(exeResult))
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "EMail", s.Email, s.FTPServer, FileName, "失敗", exeResult);
                                        }
                                        else
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "EMail", s.Email, s.FTPServer, FileName, "成功", "");
                                        }
                                    }
                                    // FTP
                                    if (Destinations.Contains("3"))
                                    {
                                        FTPData ftpData = new FTPData()
                                        {
                                            FTPServerIP = s.FTPServer,
                                            Port        = 21,
                                            UserName    = s.FTPAccount,
                                            Password    = s.FTPPassword,
                                            file        = new FileInfo(System.AppDomain.CurrentDomain.BaseDirectory + "/Files/" + FileName)
                                        };
                                        FtpProcess uploader = new FtpProcess();
                                        exeResult = uploader.Upload(ftpData);
                                        if (!string.IsNullOrEmpty(exeResult))
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "FTP", s.Email, s.FTPServer, FileName, "失敗", exeResult);
                                        }
                                        else
                                        {
                                            log.Save("轉出", "Schedule", s.CustomerName, s.Format, "FTP", s.Email, s.FTPServer, FileName, "成功", "");
                                        }
                                    }
                                }
                            }
                        }
                }
                #endregion
            }
            catch (Exception ex)
            {
                exeResult = ex.Message.Replace("\r\n", "");
                log.Save("轉出", "Schedule", s.CustomerName, s.Format, "", s.Email, s.FTPServer, FileName, "失敗", exeResult);
            }
            finally
            {
                FileInfo file = new FileInfo(System.AppDomain.CurrentDomain.BaseDirectory + "/Files/" + FileName);
                Func.DelAttachment(file);
            }
        }
        public ActionResult encode()
        {
            var    rootPath   = SiteConfig.Environment.ContentRootPath + "/wwwroot/";
            var    ffmpegPath = rootPath + Jugnoon.Videos.Configs.FfmpegSettings.ffmpeg_path;
            var    json       = new StreamReader(Request.Body).ReadToEnd();
            var    data       = JsonConvert.DeserializeObject <List <EncodeFFMPEGVideo> >(json);
            int    ActionType = data[0].tp;
            string username   = data[0].userid;

            var _response = new Dictionary <string, string>();

            _response["encodeoutput"] = "2.0";

            string Source    = "";
            string Published = "";
            string ProcessID = "";

            switch (ActionType)
            {
            case 0:
                // encode video
                Source    = data[0].sf;
                Published = data[0].pf;

                if (Source != "" && Published != null)
                {
                    var    _mhandler = new MediaHandler();
                    string RootPath  = SiteConfig.Environment.ContentRootPath;
                    _mhandler.FFMPEGPath           = ffmpegPath;
                    _mhandler.InputPath            = UrlConfig.Upload_Path(username, "default");
                    _mhandler.OutputPath           = UrlConfig.Upload_Path(username, "flv");
                    _mhandler.BackgroundProcessing = true;
                    _mhandler.FileName             = Source;
                    _mhandler.OutputFileName       = Published.Replace(Path.GetExtension(Published), "");
                    switch (Jugnoon.Videos.Configs.FfmpegSettings.encoding_options)
                    {
                    case 0:
                        // 240p
                        _mhandler.Parameters = Jugnoon.Videos.Configs.FfmpegSettings.mp4_240p_Settings;
                        break;

                    case 1:
                        // 360p
                        _mhandler.Parameters = Jugnoon.Videos.Configs.FfmpegSettings.mp4_360p_Settings;
                        break;

                    case 2:
                        // 480p
                        _mhandler.Parameters = Jugnoon.Videos.Configs.FfmpegSettings.mp4_480p_Settings;
                        break;

                    case 3:
                        // 720
                        _mhandler.Parameters = Jugnoon.Videos.Configs.FfmpegSettings.mp4_720p_Settings;
                        break;

                    case 4:
                        // 1080p
                        _mhandler.Parameters = Jugnoon.Videos.Configs.FfmpegSettings.mp4_1080p_Settings;
                        break;
                    }
                    _mhandler.OutputExtension = ".mp4";
                    _mhandler.vinfo           = _mhandler.ProcessMedia();
                    if (_mhandler.vinfo.ErrorCode > 0)
                    {
                        // remove file if failed to publish properly
                        if (System.IO.File.Exists(RootPath + "/" + _mhandler.InputPath))
                        {
                            System.IO.File.Delete(RootPath + "/" + _mhandler.InputPath);
                        }

                        _response["encodeoutput"] = "2.0";
                        _response["ecode"]        = _mhandler.vinfo.ErrorCode.ToString();
                        _response["edesc"]        = _mhandler.vinfo.FFMPEGOutput.ToString();


                        var _message = new System.Text.StringBuilder();
                        _message.Append("<h4>Video Upload Error</h4>");
                        _message.Append("<p>Error:" + _mhandler.vinfo.ErrorCode + " _ _ " + _mhandler.vinfo.ErrorMessage + "</p>");
                        _message.Append("<p>Source FileName: " + Source);
                        _message.Append("<p>Published FileName: " + Published);
                        MailProcess.Send_Mail(Jugnoon.Settings.Configs.GeneralSettings.admin_mail, "Publishing Error, description", _message.ToString());

                        return(Ok(_response));
                    }
                    else
                    {
                        // _mhandler.vinfo.ProcessID = Guid.NewGuid().ToString(); // unique guid to attach with each process to identify proper object on progress bar and get info request
                        _lst.Add(_mhandler);
                        _response["encodeoutput"] = "2.0";
                        _response["ecode"]        = _mhandler.vinfo.ErrorCode.ToString();
                        _response["procid"]       = _mhandler.vinfo.ProcessID; // _mhandler.vinfo.ProcessID;
                        return(Ok(_response));
                    }
                }
                break;

            case 1:
                // get progress status
                ProcessID = data[0].pid;
                if (ProcessID != "")
                {
                    string completed_process = "0";
                    if (_lst.Count > 0)
                    {
                        int i = 0;
                        for (i = 0; i <= _lst.Count - 1; i++)
                        {
                            if (_lst[i].vinfo.ProcessID == ProcessID)
                            {
                                completed_process = Math.Round(_lst[i].vinfo.ProcessingCompleted, 2).ToString();
                            }
                        }
                    }

                    _response["encodeoutput"] = "2.0";
                    _response["status"]       = completed_process;
                    return(Ok(_response));
                }

                break;

            case 2:
                // get information
                ProcessID = data[0].pid;
                if (ProcessID != "")
                {
                    if (_lst.Count > 0)
                    {
                        int i = 0;
                        for (i = 0; i <= _lst.Count - 1; i++)
                        {
                            if (_lst[i].vinfo.ProcessID == ProcessID)
                            {
                                _response["status"] = "OK";
                                _response["ecode"]  = _lst[i].vinfo.ErrorCode.ToString();
                                _response["fname"]  = _lst[i].vinfo.FileName.ToString();

                                _response["dur"]    = _lst[i].vinfo.Duration.ToString();
                                _response["dursec"] = _lst[i].vinfo.Duration_Sec.ToString();


                                // remove from list of corrent processes if processes reach this point
                                // store all information of completed process and remove it from list of concurrent processes
                                // e.g
                                VideoInfo current_uploaded_video_info = _lst[i].vinfo;
                                _lst.Remove(_lst[i]);

                                // Validation
                                int    plength = 0;
                                string path    = UrlConfig.Upload_Path(username, "flv") + "\\" + data[0].pf;
                                if (System.IO.File.Exists(path))
                                {
                                    FileInfo flv_info = new FileInfo(path);
                                    plength = (int)flv_info.Length;
                                }
                                if (plength == 0)
                                {
                                    var _message = new System.Text.StringBuilder();
                                    _message.Append("<h4>Video Publishing Error</h4>");
                                    _message.Append("<p>Error: 0kb file generated</p>");
                                    _message.Append("<p>Source FileName: " + Source);
                                    _message.Append("<p>Published FileName: " + Published);
                                    MailProcess.Send_Mail(Jugnoon.Settings.Configs.GeneralSettings.admin_mail, "Publishing Error, description", _message.ToString());
                                }

                                // ii: add meta information to mp4 video
                                try
                                {
                                    var mp4med = new MediaHandler();
                                    mp4med.MP4BoxPath = ffmpegPath;
                                    string _mp4_temp_path = "\"" + UrlConfig.Upload_Path(username, "flv") + "/" + data[0].pf + "\"";
                                    string meta_filename  = data[0].sf.Replace(".mp4", "_meta.mp4");
                                    mp4med.Parameters = "-isma -hint -add " + _mp4_temp_path + "";
                                    mp4med.FileName   = meta_filename;
                                    mp4med.InputPath  = UrlConfig.Upload_Path(username, "flv");
                                    mp4med.Set_MP4_Buffering();

                                    // check whether file created
                                    string pubPath = UrlConfig.Upload_Path(username, "flv");
                                    if (System.IO.File.Exists(pubPath + "\\" + meta_filename))
                                    {
                                        // remove temp mp4 file
                                        if (System.IO.File.Exists(pubPath + "" + data[0].pf))
                                        {
                                            System.IO.File.Delete(pubPath + "\\" + data[0].pf);
                                        }

                                        _response["fname"] = meta_filename;
                                    }
                                    else
                                    {
                                        // file not created by mp4box
                                        // rename published mp4 as _meta.mp4
                                        System.IO.File.Move(pubPath + "\\" + data[0].pf, pubPath + "\\" + meta_filename);
                                        _response["fname"] = meta_filename;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    var _message = new System.Text.StringBuilder();
                                    _message.Append("<h4>Video Meta Information Error</h4>");
                                    _message.Append("<p>Error: " + ex.Message + "</p>");
                                    _message.Append("<p>Source FileName: " + Source);
                                    _message.Append("<p>Published FileName: " + Published);
                                    MailProcess.Send_Mail(Jugnoon.Settings.Configs.GeneralSettings.admin_mail, "Publishing Error, description", _message.ToString());
                                }

                                _response["isenable"] = "1";

                                // Thumb Grabbing Script
                                string thumb_start_index = "";
                                try
                                {
                                    var med = new MediaHandler();
                                    med.FFMPEGPath           = ffmpegPath;
                                    med.InputPath            = UrlConfig.Upload_Path(username, "default"); // RootPath + "\\" + SourcePath;
                                    med.OutputPath           = UrlConfig.Upload_Path(username, "thumbs");  // RootPath + "\\" + PublishedPath;
                                    med.FileName             = data[0].sf;                                 // source file
                                    thumb_start_index        = med.FileName.Replace(Path.GetExtension(med.FileName), "_");
                                    med.Image_Format         = "jpg";
                                    med.VCodec               = "image2"; //optional
                                    med.ACodec               = "";
                                    med.ImageName            = thumb_start_index;
                                    med.Multiple_Thumbs      = true;
                                    med.ThumbMode            = 0;
                                    med.No_Of_Thumbs         = 10;
                                    med.Thumb_Start_Position = 5;     // start grabbing thumbs from 5th second
                                                                      //if (this.BackgroundProcessing)
                                                                      //    med.BackgroundProcessing = true;
                                    int width = Jugnoon.Videos.Configs.GeneralSettings.thumbnail_width;
                                    if (width > 0)
                                    {
                                        med.Width = width;
                                    }
                                    int height = Jugnoon.Videos.Configs.GeneralSettings.thumbnail_height;
                                    if (height > 0)
                                    {
                                        med.Height = height;
                                    }
                                    var tinfo = med.Grab_Thumb();
                                    if (tinfo.ErrorCode > 0)
                                    {
                                        // Error occured in grabbing thumbs - Rollback process
                                        _response["ecode"] = "1006";
                                        _response["edesc"] = "Grabbing thumbs from video failed";

                                        var _message = new System.Text.StringBuilder();
                                        _message.Append("<h4>Thumb Generation Error</h4>");
                                        _message.Append("<p>Error: " + _response["edesc"] + "</p>");
                                        _message.Append("<p>Source FileName: " + Source);
                                        _message.Append("<p>Published FileName: " + Published);
                                        MailProcess.Send_Mail(Jugnoon.Settings.Configs.GeneralSettings.admin_mail, "Thumb Generation Error, description", _message.ToString());

                                        // call rollback script here
                                        return(Ok(_response));
                                    }

                                    // Validate Thumbs
                                    path = UrlConfig.Upload_Path(username, "thumbs") + "/" + thumb_start_index;
                                    if (!System.IO.File.Exists(path + "004.jpg") || !System.IO.File.Exists(path + "008.jpg") || !System.IO.File.Exists(path + "011.jpg"))
                                    {
                                        // thumb failed try again grabbing thumbs from published video
                                        med.InputPath = UrlConfig.Upload_Path(username, "default");
                                        med.FileName  = data[0].pf;    // grab thumb from encoded video
                                        tinfo         = med.Grab_Thumb();
                                        if (tinfo.ErrorCode > 0)
                                        {
                                            // Error occured in grabbing thumbs - Rollback process
                                            _response["ecode"] = "1006";
                                            _response["edesc"] = "Grabbing thumbs from video failed";
                                            // rollback script here
                                            var _message = new System.Text.StringBuilder();
                                            _message.Append("<h4>Thumb Generation Error</h4>");
                                            _message.Append("<p>Error: " + _response["edesc"] + "</p>");
                                            _message.Append("<p>Source FileName: " + Source);
                                            _message.Append("<p>Published FileName: " + Published);
                                            MailProcess.Send_Mail(Jugnoon.Settings.Configs.GeneralSettings.admin_mail, "Thumb Generation Error, description", _message.ToString());
                                            return(Ok(_response));
                                        }
                                        // Disable Video
                                        if (!System.IO.File.Exists(path + "004.jpg") || !System.IO.File.Exists(path + "008.jpg") || !System.IO.File.Exists(path + "011.jpg"))
                                        {
                                            _response["isenable"] = "0";     // disable video - thumbs not grabbed properly.
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    _response["ecode"] = "1010";
                                    _response["edesc"] = ex.Message;

                                    var _message = new System.Text.StringBuilder();
                                    _message.Append("<h4>Thumb Generation Error</h4>");
                                    _message.Append("<p>Error: " + ex.Message + "</p>");
                                    _message.Append("<p>Source FileName: " + Source);
                                    _message.Append("<p>Published FileName: " + Published);
                                    MailProcess.Send_Mail(Jugnoon.Settings.Configs.GeneralSettings.admin_mail, "Thumb Generation Error, description", _message.ToString());
                                }

                                _response["tfile"]   = thumb_start_index + "" + "008.jpg";
                                _response["fIndex"]  = thumb_start_index;
                                _response["img_url"] = Config.GetUrl("contents/member/" + username + "/thumbs/");     // + _response["tfile"]);
                            }
                        }
                    }
                    return(Ok(_response));
                }

                break;

            case 3:
                // final check
                ProcessID = data[0].pid;
                Source    = data[0].sf;
                Published = data[0].pf;

                if (ProcessID != "" && Source != "" && Published != "")
                {
                    if (_lst.Count > 0)
                    {
                        int i = 0;
                        for (i = 0; i <= _lst.Count - 1; i++)
                        {
                            if (_lst[i].vinfo.ProcessID == ProcessID)
                            {
                                if (_lst[i].vinfo.ProcessingCompleted >= 100)
                                {
                                    // check whether published file uploaded properly
                                    string publishedPath = UrlConfig.Upload_Path(username, "flv");

                                    if (!System.IO.File.Exists(publishedPath + "/" + Published))
                                    {
                                        _response["status"] = "INVALID";    // published file not found
                                    }
                                    else
                                    {
                                        _response["encodeoutput"] = "2.0";
                                        _response["status"]       = "OK";
                                    }
                                }
                            }
                        }
                    }

                    return(Ok(_response));
                }
                break;
            }
            _response["status"] = "INVALID";
            return(Ok(_response));
        }
Beispiel #19
0
        static void Main(string[] args)
        {
            try
            {
                // Set logfile name and application name variables
                log4net.GlobalContext.Properties["ApplicationCode"] = "CSM_SCHEDTASK";
                log4net.GlobalContext.Properties["ServerName"]      = System.Environment.MachineName;
                log4net.ThreadContext.Properties["UserID"]          = GetCurrentUser();
                _log = LogManager.GetLogger(typeof(Program));
            }
            catch (Exception ex)
            {
                _log.Error("Exception occur:\n", ex);
            }

            //for (int i = 0; i < args.Length; i++)
            //    Console.WriteLine("Arg: {0}", args[i]);

            foreach (string arg in args)
            {
                var commandLine = arg.Substring(0, 2);
                switch (commandLine.ToUpper(CultureInfo.InvariantCulture))
                {
                case "/M":
                    _log.Info("I:--START--:--Get Mailbox--");
                    MailProcess.GetMailboxJobAsync();
                    _log.Info("O:--SUCCESS--:--Get Mailbox--");
                    break;

                case "/A":
                    _log.Info("I:--START--:--Get AFSFile--");
                    ReadFileProcess.GetFileAFSJobAsync();
                    _log.Info("O:--SUCCESS--:--Get AFSFile--");
                    break;

                case "/E":
                    _log.Info("I:--START--:--Export AFSFile--");
                    ExportFileProcess.ExportFileAFSJobAsync();
                    _log.Info("O:--SUCCESS--:--Export AFSFile--");
                    break;

                case "/N":
                    _log.Info("I:--START--:--Export NCBFile--");
                    ExportFileNCBProcess.ExportFileNCBJobAsync();
                    _log.Info("O:--SUCCESS--:--Export NCBFile--");
                    break;

                case "/B":
                    _log.Info("I:--START--:--Get BDWFile--");
                    ReadFileBdwProcess.GetFileBDWJobAsync();
                    _log.Info("O:--SUCCESS--:--Get BDWFile--");
                    break;

                case "/C":
                    _log.Info("I:--START--:--Get CISFile--");
                    ReadFileCisProcess.GetFileCISJobAsync();
                    _log.Info("O:--SUCCESS--:--Get CISFile--");
                    break;

                case "/H":
                    _log.Info("I:--START--:--Get HPFile--");
                    ReadFileHpProcess.GetFileHpJobAsync();
                    _log.Info("O:--SUCCESS--:--Get HPFile--");
                    break;

                case "/R":
                    _log.Info("I:--START--:--Create SR Activity from Reply Email--");
                    ServiceRequestProcess.CreateSRActivityFromReplyEmail();
                    _log.Info("O:--SUCCESS--:--Create SR Activity from Reply Email--");
                    break;

                case "/S":
                    _log.Info("I:--START--:--Re-Submit SR Activity to CAR System--");
                    ServiceRequestProcess.ReSubmitActivityToCARSystem();
                    _log.Info("O:--SUCCESS--:--Re-Submit SR Activity to CAR System--");
                    break;

                case "/T":
                    _log.Info("I:--START--:--Re-Submit SR Activity to CBSHP System (Log100)--");
                    ServiceRequestProcess.ReSubmitActivityToCBSHPSystem();
                    _log.Info("O:--SUCCESS--:--Re-Submit SR Activity to CBSHP System (Log100)--");
                    break;

                default:
                    // do other stuff...
                    break;
                }
            }
        }