Beispiel #1
0
        private List <TaskReportRecordModel> LoadDailyData(DateTime start, Account user)
        {
            // Initialization.
            List <TaskReportRecordModel> lst = new List <TaskReportRecordModel>();

            try
            {
                DateTime end = start.AddDays(1);
                List <TaskReportRecordModel> dataList = (from wt in repository.Worktasks
                                                         where (
                                                             (wt.CreationDate >= start && wt.CreationDate < end || wt.LastUpdateDateTime >= start && wt.LastUpdateDateTime < end) &&
                                                             (UserPermissionService.GetInstance().isManager(user.Role) || (UserPermissionService.GetInstance().isUser(user.Role) && user.UID == wt.Assignee))
                                                             )
                                                         orderby wt.TaskType
                                                         select new TaskReportRecordModel()
                {
                    TaskType = wt.TaskType,
                    Title = wt.Title,
                    AssigneeName = wt.AssigneeAcc.DisplayName2,
                    Status = wt.Status,
                    CreationDate = wt.CreationDate,
                    LastUpdateDate = (wt.LastUpdateDateTime ?? wt.CreationDate)
                }).ToList <TaskReportRecordModel>();
                return(dataList);
            }
            catch (Exception ex)
            {
                // info.
                Console.Write(ex);
            }
            // info.
            return(lst);
        }
Beispiel #2
0
        public JsonResult SendDailyReport(string date)
        {
            try
            {
                if (null == date || date.Trim().Length == 0)
                {
                    date = DateTime.Now.ToString("dd-MM-yyyy");
                }
                string[] val = date.Split('-');

                DateTime start = new DateTime(Convert.ToInt32(val[2]), Convert.ToInt32(val[1]), Convert.ToInt32(val[0]));

                Account[] lstAccount = accRepository.Accounts.ToArray();

                foreach (Account item in lstAccount)
                {
                    if ((!String.IsNullOrEmpty(item.Email)) && !UserPermissionService.GetInstance().isAdmin(item.Role))
                    {
                        List <TaskReportRecordModel> data     = this.LoadDailyData(start, item);
                        List <TaskReportRecordModel> dataPrev = this.LoadTillThisTimeData(start);
                        TaskDailyReport rp = new TaskDailyReport(start, item);
                        rp.prepareReport();
                        string outputfile = rp.loadReportFile(data, dataPrev);
                        if (outputfile.Length > 0)
                        {
                            string filename = Path.GetFileName(outputfile);

                            MailMessage mail       = new MailMessage();
                            SmtpClient  smtpCLient = new SmtpClient(WebConfigurationManager.AppSettings["EmailReportServer"]);
                            mail.From = new MailAddress(WebConfigurationManager.AppSettings["EmailReportFrom"], "No Reply");
                            mail.To.Add(item.Email);
                            mail.Subject = "Báo cáo công văn ngày " + String.Format("{0:dd-MM-yyyy}", start);
                            mail.Body    = Path.GetFileNameWithoutExtension(outputfile);

                            System.Net.Mail.Attachment attachment;
                            attachment = new System.Net.Mail.Attachment(outputfile);
                            mail.Attachments.Add(attachment);

                            smtpCLient.Port        = Convert.ToInt32(WebConfigurationManager.AppSettings["EmailReportPort"]);
                            smtpCLient.Credentials = new System.Net.NetworkCredential(WebConfigurationManager.AppSettings["EmailReportFrom"], WebConfigurationManager.AppSettings["EmailReportPass"]);
                            smtpCLient.EnableSsl   = Convert.ToBoolean(WebConfigurationManager.AppSettings["EmailReportSSL"]);

                            smtpCLient.Send(mail);
                            smtpCLient.Dispose();
                        }
                    }
                }
            }
            catch
            {
            }
            return(Json(new { message = "Đã tạo xong báo cáo ngày" }, JsonRequestBehavior.AllowGet));
        }