public ActionResult Create(Employee employee)
        {
            try
            {
                ModelState.Remove("LastPaymentDate");
                employee.LastPaymentDate = DateTime.Now.AddYears(-1);
                if (ModelState.IsValid)
                {
                    db.Employees.Add(employee);
                    db.SaveChanges();// insert into
                    return(RedirectToAction("Index"));
                }
            }
            catch
            {
                throw new Exception("We can't create data.");
            }

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
        public static void Save(this Config config)
        {
            using (var db = new BeverageManagementEntities())
            {
                db.Entry(config).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();
            }
            var mailServer = new CustomMailServer(config.SiteName, config.ServerEmailSender, config.ServerEmailSenderPassword, config.ServerSmtpHost, config.ServerSmtpPort);

            DevMvcComponent.Mvc.Setup(config.SiteName, config.DevelopersEmails, System.Reflection.Assembly.GetExecutingAssembly(), mailServer);
            GC.Collect();
        }
        //[ValidateAntiForgeryToken]

        public ActionResult InsertPastHistory(string employeeIds, DateTime dated)
        {
            Console.WriteLine(dated);
            var ids     = employeeIds.Split(',');
            var history = new History();

            foreach (var id in ids)
            {
                history.EmployeeID = Int32.Parse(id);
                history.Dated      = dated;
                db.Histories.Add(history);
            }
            try {
                db.SaveChanges();
            } catch {
                throw new Exception("We can't save the modified data.");
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult ProcessPayment(EmailDetailViewModel emailInfo)
        {
            var selectedEmployeesForPayment = (List <Employee>)TempData["SelectedEmployees"];

            emailInfo.EmailBody = emailInfo.EmailBody.Replace("$amount", AppConfig.Config.DefaultBeveragePrice.ToString());

            foreach (var employee in selectedEmployeesForPayment)
            {
                var dbEmployee = db.Employees.FirstOrDefault(e => e.EmployeeID == employee.EmployeeID);
                if (dbEmployee == null)
                {
                    continue;
                }
                dbEmployee.Cycle           = employee.Cycle + 1;
                dbEmployee.LastPaymentDate = DateTime.Now;
                if (ModelState.IsValid)
                {
                    db.Entry(dbEmployee).State = System.Data.Entity.EntityState.Modified;
                    History history = new History();
                    history.EmployeeID = employee.EmployeeID;
                    history.Dated      = DateTime.Now;
                    history.WeekNumber = AppConfig.Config.CurrentRunningCycle;
                    history.Amount     = (int)AppConfig.Config.DefaultBeveragePrice;
                    db.Histories.Add(history);
                }
            }
            try {
                db.SaveChanges();
            } catch {
                throw new Exception("We can't save the modified data.");
            }
            string timeStamp  = DateTime.Now.ToString("dd_MMM_yy_h_mm_ss_tt");
            string folderPath = DirectoryExtension.GetBaseOrAppDirectory() + "ExcelFiles\\";
            var    attachmentFilePathAndName = folderPath + timeStamp + ".xls";
            var    lastTwoYearsHistories     = _logic.GetLastTwoYearsHistories(DateTime.Now);

            ExcelFileCreation(lastTwoYearsHistories, attachmentFilePathAndName);

            #region Thread for mailing and excel deletion
            var thread = new Thread(() => {
                List <Attachment> attachments = new List <Attachment>()
                {
                    new Attachment(attachmentFilePathAndName)
                };
                attachments[0].Name            = AppConfig.Config.EmailAttachmentName + ".xls";
                string[] employeeEmails        = new string[1];
                employeeEmails[0]              = selectedEmployeesForPayment.FirstOrDefault().Email;
                MailSendingWrapper mailWrapper = Mvc.Mailer.GetMailSendingWrapper(employeeEmails, emailInfo.EmailSubject, emailInfo.EmailBody, null, attachments, MailingType.MailBlindCarbonCopy);
                try
                {
                    foreach (var employee in selectedEmployeesForPayment)
                    {
                        employeeEmails[0] = employee.Email;
                        mailWrapper       = Mvc.Mailer.GetMailSendingWrapper(employeeEmails, emailInfo.EmailSubject, emailInfo.EmailBody.Replace("$name", employee.Name), null, attachments,
                                                                             MailingType.MailBlindCarbonCopy);
                        Mvc.Mailer.SendMail(mailWrapper, false);
                    }
                }
                catch (Exception ex)
                {}
                finally
                {
                    mailWrapper.MailMessage.Dispose();
                    mailWrapper.MailServer.Dispose();
                    attachments[0] = null;
                    attachments    = null;
                    GC.Collect();
                    System.IO.File.Delete(attachmentFilePathAndName);
                }
            });
            #endregion

            thread.Start();
            return(RedirectToAction("Index"));
        }