Пример #1
0
        public ActionResult Create([Bind(Include = "ID,EmailAddress,Password,Port,Host,EnabledSSL,TemplateID,CreatedAt,UpdatedAt,Active")] MailConfig mailConfig)
        {
            try
            {
                string password = MailHelper.Encrypt(mailConfig.Password);

                var validateMail = _mailConfigService.GetAll().FirstOrDefault
                                       (x => x.EmailAddress == mailConfig.EmailAddress && x.ID != mailConfig.ID);
                if (validateMail != null)
                {
                    ModelState.AddModelError("EmailAddress", "Email Address already exists");
                }
                if (ModelState.IsValid)
                {
                    mailConfig.Password     = password;
                    mailConfig.DateSend     = DateTime.Now;
                    mailConfig.UpdatedAt    = DateTime.Now;
                    mailConfig.CreatedAt    = DateTime.Now;
                    mailConfig.EmailAddress = mailConfig.EmailAddress.ToLower();
                    db.MailConfig.Add(mailConfig);
                    db.SaveChanges();
                    SetAlert("Add Mail Config success", "success");
                    return(RedirectToAction("Index"));
                }
            }catch (Exception e)
            {
                SetAlert("Add Mail Config error", "error");
            }
            return(View());
        }
Пример #2
0
        public ActionResult Create(ReportViewModel viewModel, HttpPostedFileBase file, string assetID)
        {
            string[]      listAssetID  = assetID.Split(',');
            List <string> listUserName = new List <string>();
            List <string> listMail     = new List <string>();

            for (int i = 0; i < listAssetID.Length; i++)
            {
                int    idAsset = Int32.Parse(listAssetID[i]);
                string name    = _reportService.getNameUserReport(idAsset).FullName;
                string mail    = _reportService.getNameUserReport(idAsset).Email;
                listUserName.Add(name);
                listMail.Add(mail);
            }
            List <String> listMailRecever = new List <string>();

            listMailRecever.AddRange(listMail.Distinct());
            var mailConfig     = _mailConfigService.GetAll().FirstOrDefault();
            var listMailConfig = _mailConfigService.GetAll();

            string assetReport         = _assetService.GetById(Int32.Parse(assetID)).Name;
            string areaAssetReport     = _assetService.GetById(Int32.Parse(assetID), new string[] { "Area" }).Area.Name;
            string locationAssetReport = _assetService.GetById(Int32.Parse(assetID), new string[] { "Area", "Area.Location" }).Area.Location.Name;
            string userReport          = User.Identity.GetUserName();

            var    pathTemplate = HttpRuntime.AppDomainAppPath;
            string body         = MailHelper.createContent(pathTemplate, "templates//", "TemplateEmail",
                                                           new object[] { userReport, assetReport, locationAssetReport, areaAssetReport, viewModel.Comment, DateTime.Now });

            foreach (var mail in listMailConfig)
            {
                if (mail.DateSend != DateTime.Now.Date)
                {
                    mail.Count    = 0;
                    mail.DateSend = DateTime.Now.Date;
                }
                if (mail.Count + listMailRecever.Count <= 2000)
                {
                    mail.Count += listMailRecever.Count;
                    foreach (var recever in listMailRecever)
                    {
                        MailHelper.SendMail(mailConfig.EmailAddress, mailConfig.Password, mailConfig.Host,
                                            mailConfig.Port, mailConfig.EnabledSSL, recever, "Report asset", "cim", body);
                    }
                    break;
                }
                _mailConfigService.Update(mail);
            }

            //process image upload
            //set path default
            string fileName = "default.png";
            string path     = Path.Combine(Server.MapPath("~/Data/Reports/"), fileName);

            try
            {
                if (file != null)
                {
                    var fileExtension = Path.GetExtension(file.FileName);
                    if (string.Equals(fileExtension, ".jpg", StringComparison.OrdinalIgnoreCase) || string.Equals(fileExtension, ".png", StringComparison.OrdinalIgnoreCase) ||
                        string.Equals(fileExtension, ".gif", StringComparison.OrdinalIgnoreCase) ||
                        string.Equals(fileExtension, ".jpeg", StringComparison.OrdinalIgnoreCase))
                    {
                        fileName = Guid.NewGuid().ToString() + Path.GetExtension(file.FileName);
                        path     = Path.Combine(Server.MapPath("~/Data/Reports/"), fileName);
                    }
                }
                ;
                file.SaveAs(path);
            }
            catch
            {
            }

            if (ModelState.IsValid)
            {
                var userName = User.Identity.GetUserName();
                if (string.IsNullOrEmpty(userName))
                {
                    userName = "******";
                }

                for (int i = 0; i < listAssetID.Length; i++)
                {
                    var report = new Report()
                    {
                        AssetID        = Int32.Parse(listAssetID[i]),
                        Picture        = fileName,
                        RequestManager = listUserName[i],
                        status         = 1,
                        ReportAt       = DateTime.Now,
                        Active         = true,
                        Comment        = "- " + viewModel.Comment,
                        CreatedAt      = DateTime.Now,
                        UserReport     = userName
                    };
                    _reportService.Add(report);
                    _reportService.SaveChanges();
                }
                ViewBag.isCreateSuccess = true;
                return(View());
            }
            return(RedirectToAction("Index", "MyReport"));
        }