public ActionResult AdvertisementReplyCandidateSubmit(AdvertisementReplyForm model)
        {
            ShowAdvertisementReplyJS();

            if (!ModelState.IsValid)
                return CurrentUmbracoPage();

            if (!model.CandidateMemberId.HasValue)
            {
                ModelState.AddModelError("", "Nelze identifikovat zájemce o pracovní pozici! Zkontrolujte zda jste řádně přihlášeni!");
                return CurrentUmbracoPage();
            }

            if (!model.Confirm)
            {
                ModelState.AddModelError("", "Pro odeslání reakce na pracovní pozici je nezbytné souhlasit s našimi podmínkami.");
                return CurrentUmbracoPage();
            }

            var memberService = Services.MemberService;
            var member = memberService.GetById(model.CandidateMemberId.Value);
            if (member == null)
            {
                ModelState.AddModelError("", "Uživatel se zadaným emailem neexistuje!");
                return CurrentUmbracoPage();
            }

            var filepath = model.CVPath;

            if (model.NewCV != null && model.NewCV.InputStream != null)
            {

                var filename = Path.GetFileName(model.NewCV.FileName);
                var path = "/media/cv/";
                var fullPath = Server.MapPath("~" + path);
                var dir = new DirectoryInfo(fullPath);
                if (!dir.Exists)
                    dir.Create();
                path += JobsplusHelpers.RemoveDiacritics(member.GetValue<string>("Surname")).ToLower() + "_" + (member.GetValue<DateTime>("BirthDate")).ToString("yyyy-MM-dd") + "/";
                fullPath = Server.MapPath("~" + path);
                var dirUser = new DirectoryInfo(fullPath);
                if (!dirUser.Exists)
                    dirUser.Create();

                try
                {
                    model.NewCV.SaveAs(fullPath + filename);
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", "Při nahrávání životopisu došlo k chybě:");
                    TempData.Add("ValidationErrorInfo", JobsplusHelpers.GetMsgFromException(ex));
                    return CurrentUmbracoPage();
                }

                filepath = path + filename;
                model.CVPath = filepath;
                member.SetValue("CV", filepath);
                member.SetValue("CVExists", true);
                memberService.Save(member);
            }

            #region Ulozeni reakce do databaze
            try
            {
                AdvertisementReply reply = new AdvertisementReply();
                reply.CompanyId = model.CompanyNodeId.Value;
                reply.AdvertisementId = model.AdvertisementNodeId.Value;
                reply.CandidateId = model.CandidateMemberId.Value;
                reply.CandidateName = member.Name;
                reply.CandidateEmail = member.Email;
                reply.CandidateCV = filepath;
                reply.CandidateReplyNote = model.Comment;
                reply.CreateDate = DateTime.Now;

                DatabaseContext.Database.Save(reply);
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Při ukládání reakce do dataáze došlo k chybě:");
                TempData.Add("ValidationErrorInfo", JobsplusHelpers.GetMsgFromException(ex));
                return CurrentUmbracoPage();
            }
            #endregion

            #region Odeslat email spravci
            var mail = new MailMessage(JobsplusConstants.EmailRobotEmail, model.SendToEmail);
            // TODO: odeslat oznámení na emaily účtů správců firmy, která vydala inzerát
            // ....
            if (!string.IsNullOrEmpty(filepath))
            {
                var atachementPath = Server.MapPath("~" + filepath);

                if (System.IO.File.Exists(atachementPath))
                    mail.Attachments.Add(new Attachment(atachementPath));
            }
            mail.Subject = "ZÁJEMCE O POZICI z webu jobsplus.cz";
            mail.IsBodyHtml = true;
            mail.Body = "<p>Dobrý den,<br />na webu jobsplus.cz projevil uživatel zájem o pracovní pozici. Prosím věnujte poroznost následujícím údajům a ozvěte se uživateli, co nejdříve.</p><br /><br />" +
                "<p><b>Pozice</b><p>"+
                "<p><a href=\"http://www.jobsplus.cz" + model.AdvertisementUrl + "\">" + model.AdvertisementName + "</a> (http://www.jobsplus.cz" + model.AdvertisementUrl + ")</p><br />" +
                "<p><b>Zájemce</a></b><p>" + member.Name + "</p><br />" +
                "<p><b>Email zájemce</b><p>" + member.Email + "</p><br />" +
                "<p><b>Zpráva od zájemce</b></p>" +
                "<p>" + model.Comment + "</p><br /><br />" +
                "<p>S pozdravem,<br />Váš JOBSPLUS AUTOMATICKÝ ROZESÍLAČ e-mailů ;-)</p>";

            try
            {
                var smtpClient = new SmtpClient();
                smtpClient.Send(mail);
            }
            catch(Exception ex)
            {
                ModelState.AddModelError("", JobsplusConstants.SendEmailErrorMsg);
                TempData.Add("ValidationErrorInfo", JobsplusHelpers.GetMsgFromException(ex));
                return CurrentUmbracoPage();
            }
            #endregion

            #region Odeslat email zajemci
            var mailCandidate = new MailMessage(JobsplusConstants.EmailRobotEmail, model.Email);
            if (!string.IsNullOrEmpty(filepath))
            {
                var atachementPath = Server.MapPath("~" + filepath);

                if (System.IO.File.Exists(atachementPath))
                    mail.Attachments.Add(new Attachment(atachementPath));
            }
            mailCandidate.Subject = "Projevili jste ZÁJEM O POZICI z webu jobsplus.cz";
            mailCandidate.IsBodyHtml = true;
            mailCandidate.Body = "<p>Dobrý den,<br />děkujeme Vám za projevený zájem o pracovní pozici na webu jobsplus.cz. Vaše údaje byly úspěšně odeslány inzerujícímu zaměstnavateli, který Vás bude v brzké době kontaktovat.</p><br /><br />" +
                 "<p><b>Pozice</b><p>" +
                "<p><a href=\"http://www.jobsplus.cz" + model.AdvertisementUrl + "\">" + model.AdvertisementName + "</a> (http://www.jobsplus.cz" + model.AdvertisementUrl + ")</p><br />" +
                "<p><b>Zájemce</a></b><p>" + member.Name + "</p><br />" +
                "<p><b>Email zájemce</b><p>" + member.Email + "</p><br />" +
                "<p><b>Zpráva od zájemce</b></p>" +
                "<p>" + model.Comment + "</p><br /><br />" +
                "<p>S pozdravem,<br />Váš JOBSPLUS AUTOMATICKÝ ROZESÍLAČ e-mailů ;-)</p>";
            try
            {
                var smtpClient = new SmtpClient();
                smtpClient.Send(mailCandidate);
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", JobsplusConstants.SendEmailErrorMsg);
                TempData.Add("ValidationErrorInfo", JobsplusHelpers.GetMsgFromException(ex));
                return CurrentUmbracoPage();
            }
            #endregion

            if (TempData.ContainsKey("AdvertisementReplyIsSuccess")) TempData.Remove("AdvertisementReplyIsSuccess");
            TempData.Add("AdvertisementReplyIsSuccess", true);
            return RedirectToCurrentUmbracoPage();
        }
 /// <summary>
 /// Označí reakci na inzerát za vyřízenou a odmítnutou. Uloží do DB.
 /// </summary>
 /// <param name="reply"></param>
 private void DiscardReply(AdvertisementReply reply)
 {
     reply.IsDiscarded = true;
     reply.IsCheckOut = true;
     reply.CheckOutDate = DateTime.Now;
     _db.Save(reply);
 }