public ActionResult SendEmail(string header, string body)
        {
            int result = 0;

            try
            {
                GMailer.GmailUsername = "******";
                GMailer.GmailPassword = "";

                GMailer mailer = new GMailer();
                List <DataAccessLayer.Entities.Client> layerClientList = ClientUtils.GetAllClients();
                List <Client> clientList = Mappings.MappingDtos.EntityClientToModelClientAsList(layerClientList);
                mailer.Subject = header;
                mailer.Body    = body;
                mailer.IsHtml  = true;
                foreach (var item in clientList)
                {
                    mailer.ToEmail = item.Email;
                    mailer.Send();
                }
                result = 1;
            }
            catch (Exception)
            {
                result = 0;
            }
            return(RedirectToAction("SendEmailResult", new { id = result }));
        }
        // GET:Client
        public ActionResult ListClient(int?page, string searchString)
        {
            List <DataAccessLayer.Entities.Client> layerClientList = ClientUtils.GetAllClients();
            List <Client> clientList = Mappings.MappingDtos.EntityClientToModelClientAsList(layerClientList);

            if (!String.IsNullOrEmpty(searchString))
            {
                clientList = clientList.Where(s => s.FirstName.ToLower().Contains(searchString.ToLower()) ||
                                              s.LastName.ToLower().Contains(searchString.ToLower())).ToList();
            }
            return(View(clientList.ToPagedList(page ?? 1, pageSize: 20)));
        }
        public ActionResult SaveToXls(string what)
        {
            DataTable dt     = null;
            bool      result = false;

            switch (what)
            {
            case "Client":
                List <DataAccessLayer.Entities.Client> layerClientList = ClientUtils.GetAllClients();
                List <Client> clientList = Mappings.MappingDtos.EntityClientToModelClientAsList(layerClientList);
                dt     = DataToExcel.ConvertToDataTable(clientList);
                result = DataToExcel.FlushToExcel <Client>(dt);
                break;

            case "Employee":
                List <DataAccessLayer.Entities.Employee> layerEmplyeeList = EmployeeUtils.GetAllEmplyees();
                List <Employee> employeeList = Mappings.MappingDtos.EntityEmployeeToModelEmployeeAsList(layerEmplyeeList);
                dt     = DataToExcel.ConvertToDataTable(employeeList);
                result = DataToExcel.FlushToExcel <Employee>(dt);
                break;

            case "Event":
                List <DataAccessLayer.Entities.Event> layerEventList = EventUtils.GetAllEvents();
                List <Event> eventList = Mappings.MappingDtos.EntityEventToModelEventList(layerEventList);
                dt     = DataToExcel.ConvertToDataTable(eventList);
                result = DataToExcel.FlushToExcel <Event>(dt);
                break;

            case "Room":
                List <DataAccessLayer.Entities.Room> layerRoomList = RoomUtils.GetAllRooms();
                List <Room> roomList = Mappings.MappingDtos.EntityRoomToModelRoomAsList(layerRoomList);
                dt     = DataToExcel.ConvertToDataTable(roomList);
                result = DataToExcel.FlushToExcel <Room>(dt);
                break;

            case "Ticket":
                List <DataAccessLayer.Entities.Ticket> layerTicketList = TicketUtils.GetAllTickets();
                List <Ticket> ticketList = Mappings.MappingDtos.EntityTicketLIstToModelTicketAsList(layerTicketList);
                dt     = DataToExcel.ConvertToDataTable(ticketList);
                result = DataToExcel.FlushToExcel <Ticket>(dt);
                break;

            case "Type":
                List <DataAccessLayer.Entities.TicketType> layerTypeList = TicketTypeUtils.GetAllTicketTypes();
                List <TicketType> typeList = Mappings.MappingDtos.EntityTicketLIstToModelTicketTypeAsList(layerTypeList);
                dt     = DataToExcel.ConvertToDataTable(typeList);
                result = DataToExcel.FlushToExcel <TicketType>(dt);
                break;

            default:
                break;
            }

            if (result)
            {
                return(RedirectToAction("ListEmployees"));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }