示例#1
0
        public ActionResult Index(string showConfirmBox)
        {
            // Get list of distinct car makers
            var carMakes = cmRepo.GetCarMakes();

            List<SelectListItem> cboMakes = new List<SelectListItem>();
            cboMakes.Add(new SelectListItem { Text = "Car Brand" });
            cboMakes.Add(new SelectListItem { Text = "--I don't know--" });

            foreach (var carMake in carMakes)
            {
                string text = carMake.GetType().GetProperty("CarMake").GetValue(carMake).ToString().ToUpper();
                cboMakes.Add(new SelectListItem { Value = text, Text = text });
            }

            // Get list of distinct car models
            List<SelectListItem> cboModels = new List<SelectListItem>();
            cboModels.Add(new SelectListItem { Text = "Car Model" });

            // Empty list of car years
            List<SelectListItem> cboYears = new List<SelectListItem>();
            cboYears.Add(new SelectListItem { Text = "Car Year" });

            var requestModel = new RequestViewModel();
            requestModel.DDListCarMakers = cboMakes;
            requestModel.DDListCarModels = cboModels;
            requestModel.DDListCarYears = cboYears;

            if (!String.IsNullOrEmpty(showConfirmBox))
            {
                ViewBag.ConfirmBox = showConfirmBox;
            }

            return View(requestModel);
        }
示例#2
0
        public ActionResult AddRequest(RequestViewModel request)
        {
            if (ModelState.IsValid)
            {
                // Save files on server.
                string uploadDirImages = Server.MapPath(WebConfigurationManager.AppSettings["uploadPicsDirectory"].ToString());
                List<string> uploadedNewNameImages = new List<string>();

                for (int iImages = 1; iImages <= 4; iImages++)
                {
                    HttpPostedFileBase uploadedFile = Request.Files["txtUFile" + iImages];
                    if (uploadedFile != null && uploadedFile.ContentLength > 0 && Request["txtUploadPic" + iImages].Length > 0)
                    {
                        int pos = uploadedFile.FileName.LastIndexOf(".");
                        string fileExtension = uploadedFile.FileName.Substring(pos + 1);
                        string fileNewImageName = String.Concat(Guid.NewGuid().ToString(), ".", fileExtension);

                        uploadedFile.SaveAs(String.Concat(uploadDirImages, fileNewImageName));
                        uploadedNewNameImages.Add(fileNewImageName);
                    }
                }

                // Get selected CarMMY id
                int carMMYId = 0;
                if (!String.IsNullOrEmpty(request.SelectedCarModelId) && !String.IsNullOrEmpty(request.SelectedCarYearId)) {
                    carMMYId = cmRepo.GetCarMMYId(request.SelectedCarModelId, Convert.ToInt32(request.SelectedCarYearId));
                }

                // Add lead object
                // Lead
                Lead l = new Lead();
                l.FirstName = request.FirstName;
                l.LastName = request.LastName;
                l.Email = request.Email;
                l.PhoneNumber = request.PhoneNumber;
                l.ZipCode = request.ZipCode;
                l.StatusId = (int)EStatus.Received;     // Default status
                l.Origin = "Fyxme Website";             // Default origin
                l.CreatedBy = 999;                      // Added by customer
                
                // Case
                Case c = new Case();
                if (carMMYId > 0) {
                    c.CarMMYId = (int)carMMYId;
                }
                c.CaseDesc = request.DamageDescription;
                c.StatusId = (int)EStatus.Received;
                c.SalesRepId = 0;
                c.CreatedBy = 999;                      // Added by customer

                // Case pictures
                int picRank = 1;
                List<CasePicture> cp = new List<CasePicture>();

                foreach (string uploadedImage in uploadedNewNameImages)
                {
                    CasePicture casePic = new CasePicture()
                    {
                        PictureRank = (byte)picRank,
                        PictureName = uploadedImage,
                        PictureLocation = uploadDirImages,
                        CreatedBy = 999,
                    };

                    cp.Add(casePic);
                    picRank++;
                }

                c.CasePictures = cp;
                l.Cases.Add(c);

                // Save lead object and get CaseId
                long caseId = cmRepo.AddLead(l);

                // Send emails
                SendEmailToClient(request, caseId);
                SendEmailToAdmin(request, caseId, uploadedNewNameImages);

                // Redirect to confirmation view.
                return RedirectToAction("Index", "Home", new { showConfirmBox = "Customer" });
            }

            return RedirectToAction("Index");
        }
示例#3
0
        public void SendEmailToAdmin(RequestViewModel request, long caseId, List<string> imagesList)
        {
            // Send email to fyxme admin
            Email email = new Email(WebConfigurationManager.AppSettings["EmailSmtpHost"].ToString());
            email.From = WebConfigurationManager.AppSettings["EmailFrom"].ToString();
            email.Port = Convert.ToInt32(WebConfigurationManager.AppSettings["EmailPort"].ToString());
            email.NetworkCredentialUser = WebConfigurationManager.AppSettings["EmailNetworkCredentialUser"].ToString();
            email.NetworkCredentialPassword = WebConfigurationManager.AppSettings["EmailNetworkCredentialPassword"].ToString();
            email.To = WebConfigurationManager.AppSettings["EmailAdmin"].ToString();
            email.Subject = "You've received a new request! - Fyxme.com";

            // Get HTML template for Admin Request Received confirmation
            StreamReader sr = new StreamReader(Server.MapPath("~/Content/MailTemplates/MailSendAdminConfirmRequestReceived.html"));
            string htmlMailTemplate = sr.ReadToEnd();

            htmlMailTemplate = htmlMailTemplate.Replace("{0}", "http://www.fyxme.com/Content/Images/fyxmy_logo_poster_.png");
            htmlMailTemplate = htmlMailTemplate.Replace("{1}", caseId.ToString());
            htmlMailTemplate = htmlMailTemplate.Replace("{2}", request.FirstName.ToUpper());
            htmlMailTemplate = htmlMailTemplate.Replace("{3}", request.LastName.ToUpper());
            htmlMailTemplate = htmlMailTemplate.Replace("{4}", request.Email);
            htmlMailTemplate = htmlMailTemplate.Replace("{5}", request.PhoneNumber);
            htmlMailTemplate = htmlMailTemplate.Replace("{6}", request.ZipCode);
            htmlMailTemplate = htmlMailTemplate.Replace("{7}", request.SelectedCarMakerId);
            htmlMailTemplate = htmlMailTemplate.Replace("{8}", request.SelectedCarModelId);
            htmlMailTemplate = htmlMailTemplate.Replace("{9}", request.SelectedCarYearId);
            htmlMailTemplate = htmlMailTemplate.Replace("{10}", request.DamageDescription);

            string pics = "";
            foreach (string uploadedImage in imagesList)
            {
                pics += "<a href='http://" + Request.Url.Authority + "/Content/Upload/Pictures/" + uploadedImage + "'>http://" + Request.Url.Authority + "/Content/Upload/Pictures/" + uploadedImage + " </a><br/>";
            }

            htmlMailTemplate = htmlMailTemplate.Replace("{11}", pics);

            email.Body = htmlMailTemplate;
            email.Send();
        }
示例#4
0
        public void SendEmailToClient(RequestViewModel request, long caseId)
        {
            // Send email to client
            Email email = new Email(WebConfigurationManager.AppSettings["EmailSmtpHost"].ToString());
            email.From = WebConfigurationManager.AppSettings["EmailFrom"].ToString();
            email.Port = Convert.ToInt32(WebConfigurationManager.AppSettings["EmailPort"].ToString());
            email.NetworkCredentialUser = WebConfigurationManager.AppSettings["EmailNetworkCredentialUser"].ToString();
            email.NetworkCredentialPassword = WebConfigurationManager.AppSettings["EmailNetworkCredentialPassword"].ToString();
            email.To = request.Email;
            email.Subject = "We've received your request! - Fyxme.com";

            // Get HTML template for Lead Request Received confirmation
            StreamReader sr = new StreamReader(Server.MapPath("~/Content/MailTemplates/MailSendLeadConfirmRequestReceived.html"));
            string htmlMailTemplate = sr.ReadToEnd();

            //htmlMailTemplate = htmlMailTemplate.Replace("{0}", Server.MapPath("~/Content/Images/fyxmy_logo_poster_.png"));
            htmlMailTemplate = htmlMailTemplate.Replace("{0}", "http://www.fyxme.com/Content/Images/fyxmy_logo_poster_.png");
            htmlMailTemplate = htmlMailTemplate.Replace("{1}", request.FirstName.ToUpper());
            htmlMailTemplate = htmlMailTemplate.Replace("{2}", request.LastName.ToUpper());
            htmlMailTemplate = htmlMailTemplate.Replace("{3}", caseId.ToString());
            htmlMailTemplate = htmlMailTemplate.Replace("{4}", request.Email);
            htmlMailTemplate = htmlMailTemplate.Replace("{5}", request.PhoneNumber);
            htmlMailTemplate = htmlMailTemplate.Replace("{6}", request.DamageDescription);

            email.Body = htmlMailTemplate;
            email.Send();
        }