//ToDo: Start WebDev.WebServer.exe before the tests are run in TestSetup then delete this test
        public void SanityTest()
        {
            var resumeService = new ResumeService();

            try
            {
                resumeService.ResumeXml("Adam-Kahtava");
            }
            catch (Exception)
            {
                Assert.Fail("WebDev.WebServer.exe (cassini) probably isn't running, try starting up the ServiceHost project.");
            }
        }
        public void ShouldVerifyProxyAndReturnResume()
        {
            var amazonService = new ResumeService();

            var resume = amazonService.ResumeXml("Adam Kahtava");

            Assert.IsNotNull(resume);
            Assert.IsNotNull(resume.Positions);
            Assert.Greater(resume.Positions.Count, 1);

            resume = amazonService.ResumeJson("Adam Kahtava");

            Assert.IsNotNull(resume);
            Assert.IsNotNull(resume.Positions);
            Assert.Greater(resume.Positions.Count, 1);
        }
Пример #3
0
 public ExportController(ExportService exportService, ResumeService resumeService, RockstarService rockstarService)
 {
     _exportService   = exportService;
     _resumeService   = resumeService;
     _rockstarService = rockstarService;
 }
Пример #4
0
 public void Constructor_CalledWithNullArguments_ThrowsArgumentNullException()
 {
     var service = new ResumeService(null, null, null);
 }
 //ToDo: consider integration test in the future
 public void ShouldGetExternalResume()
 {
     var resume = new ResumeService().ResumeXml("Adam-Kahtava");
     
     Assert.IsNotNull(resume);
 }
Пример #6
0
        public ActionResult Resume(ResumeVM fillResume)
        {
            if (ModelState.IsValid)
            {
                fillResume.Result = "";
                fillResume.Submit();

                var section = "";
                if (fillResume.s1)
                {
                    section = section + "Web специалисты ";
                }
                if (fillResume.s2)
                {
                    section = section + ";" + "Администраторы сетей ";
                }
                if (fillResume.s3)
                {
                    section = section + ";" + "Программисты ";
                }
                if (fillResume.s4)
                {
                    section = section + ";" + "Бухгалтеры ";
                }
                if (fillResume.s5)
                {
                    section = section + ";" + "Верстальщики ";
                }
                if (fillResume.s6)
                {
                    section = section + ";" + "Дизайнеры ";
                }
                if (fillResume.s7)
                {
                    section = section + ";" + "Менеджеры ";
                }
                if (fillResume.s8)
                {
                    section = section + ";" + "Операторы ПК ";
                }
                if (fillResume.s9)
                {
                    section = section + ";" + "Проектировщики ";
                }
                if (fillResume.s10)
                {
                    section = section + ";" + "Специалисты по тех обслуживанию ПК ";
                }
                if (fillResume.s11)
                {
                    section = section + ";" + "Логисты (Склад и грузоперевозки) ";
                }
                if (fillResume.s12)
                {
                    section = section + ";" + "Секретари ";
                }
                if (fillResume.s13)
                {
                    section = section + ";" + "Разное ";
                }

                var user    = (User)HttpContext.Session["CurrentUserSessionKey"];
                var resumes = new List <Resume>();

                var resume =
                    new Resume
                {
                    UserID     = user.UserID,
                    FirstName  = fillResume.YourName,
                    SecondName = fillResume.YourPatronymic,
                    LastName   = fillResume.YourSurname,
                    Age        = Convert.ToInt16(fillResume.YourAge),
                    Sex        = fillResume.YourSex,
                    Education  = fillResume.YourEducation,
                    Position   = fillResume.YourPosition,
                    Sections   = section,
                    Experience = fillResume.YourExperience,
                    Profit     = Convert.ToInt32(fillResume.YourProfit),
                    Currency   = fillResume.YourCurrency,
                    City       = fillResume.YourCity,
                    Metro      = fillResume.YourMetro,
                    Period     = fillResume.YourPeriod,
                    Email      = fillResume.YourEmail,
                    Phone      = fillResume.YourTelHome + ";" + fillResume.YourTelJob + ";" + fillResume.YourTelMob,
                    IsActive   = true,
                    UpdateDate = DateTime.Now
                };

                resumes.Add(resume);

                foreach (var res in resumes)
                {
                    ResumeService.Insert(res);
                }

                ResumeService.SubmitChanges();

                var message = new StringBuilder();

                message.Append("<p>");
                message.Append("Основная информация");
                message.Append("<br/>");
                message.AppendFormat("Имя {0} ", fillResume.YourName);
                message.Append("<br/>");
                message.AppendFormat("Отчество {0} ", fillResume.YourPatronymic);
                message.Append("<br/>");
                message.AppendFormat("фамилия {0} ", fillResume.YourSurname);
                message.Append("<br/>");
                message.AppendFormat("Пол {0} ", fillResume.YourSex);
                message.Append("<br/>");
                message.AppendFormat("Возраст {0} ", fillResume.YourAge);
                message.Append("<br/>");

                message.AppendFormat("Образование {0} ", fillResume.YourEducation);
                message.Append("<br/>");
                message.AppendFormat("Желаемая должность {0} ", fillResume.YourPosition);
                message.Append("<br/>");

                message.Append("Раздел ");
                if (fillResume.s1)
                {
                    message.Append("Веб-технологии ");
                }
                if (fillResume.s2)
                {
                    message.Append("Системное администрирование ");
                }
                if (fillResume.s3)
                {
                    message.Append("Программирование ");
                }
                if (fillResume.s4)
                {
                    message.Append("Бухгалтерия / Финансы ");
                }
                if (fillResume.s5)
                {
                    message.Append("Дизайн, графика, верстка, 3D ");
                }
                if (fillResume.s6)
                {
                    message.Append("Кадры/управление персоналом ");
                }
                if (fillResume.s7)
                {
                    message.Append("Административный персонал ");
                }
                if (fillResume.s8)
                {
                    message.Append("Проектирование ");
                }
                if (fillResume.s9)
                {
                    message.Append("Техническое обслуживание ПК, HelpDesk ");
                }
                if (fillResume.s10)
                {
                    message.Append("Складское хозяйство / Логистика / ВЭД ");
                }
                if (fillResume.s11)
                {
                    message.Append("Продажи / Закупки ");
                }
                if (fillResume.s12)
                {
                    message.Append("Информационная безопасность ");
                }
                if (fillResume.s13)
                {
                    message.Append("Маркетинг / Реклама / PR ");
                }
                if (fillResume.s14)
                {
                    message.Append("Разное ");
                }
                message.Append("<br/>");

                message.AppendFormat("Опыт работы {0} ", fillResume.YourExperience);
                message.Append("<br/>");
                message.AppendFormat("Заработная плата {0} ", fillResume.YourProfit);
                message.Append(fillResume.YourCurrency);
                message.Append(" в месяц ");
                message.Append("<br/>");
                message.AppendFormat("Город {0} ", fillResume.YourCity);
                message.Append("<br/>");
                message.AppendFormat("Ближайшая станция метро {0} ", fillResume.YourMetro);
                message.Append("<br/>");
                message.AppendFormat("Срок публикации резюме {0} ", fillResume.YourPeriod);
                message.Append("<br/>");
                message.Append("Контактная информация ");
                message.Append("<br/>");
                message.AppendFormat("E-mail {0} ", fillResume.YourEmail);
                message.Append("<br/>");
                message.Append("Телефон: ");
                message.Append("<br/>");
                message.AppendFormat("Домашний {0} ", fillResume.YourTelHome);
                message.Append("<br/>");
                message.AppendFormat("Служебный {0} ", fillResume.YourTelJob);
                message.Append("<br/>");
                message.AppendFormat("Мобильный {0} ", fillResume.YourTelMob);
                message.Append("<br/>");
                message.Append("</p>");

                MailAddress from   = new MailAddress("*****@*****.**");
                MailAddress to     = new MailAddress("*****@*****.**");
                UploadFile  upFile = new UploadFile();
                if (Session["UploadFileForResume"] != null)
                {
                    var userfile = (IEnumerable <HttpPostedFileBase>)Session["UploadFileForResume"];
                    var fileName = "";
                    var index    = userfile.First().FileName.LastIndexOf("\\");
                    if (index > 0)
                    {
                        fileName = userfile.First().FileName.Substring(index);
                    }
                    else
                    {
                        fileName = userfile.First().FileName;
                    }

                    upFile.ContentLength = userfile.First().ContentLength;
                    upFile.Name          = fileName;
                    upFile.Stream        = userfile.First().InputStream;
                }
                MailService.SendForResume(from, to, message.ToString(), "Резюме", upFile);


                return(View(fillResume));
            }
            else
            {
                var model = new ResumeVM();
                model.Result = "";
                return(View(model));
            }
        }
 public ResumeController(ResumeService resumeService)
 {
     _resumeService = resumeService;
 }
        public IHttpActionResult UploadResume(int userId)
        {
            //A list in case we want to accept more than one file type
            List <string> allowedFileExtension = new List <string> {
                ".pdf"
            };
            //Business Rule - only one file allowed to submit
            int maxFileCount = 1;
            // Max file size is 1MB
            const int maxContentLength = 1024 * 1024 * 1;

            try
            {
                //get the content, headers, etc the full request of the current http request
                var httpRequest   = HttpContext.Current.Request;
                var fileValidator = new FileValidator();
                //Validate the submitted file to verify that it complies with Business Rules
                var validationResult = fileValidator.ValidateFiles(httpRequest.Files, allowedFileExtension, maxContentLength, maxFileCount);
                if (!validationResult.ValidationSuccessful)//if one or more business rules were violated
                {
                    var errorMessage = string.Join("\n", validationResult.Reasons);
                    return(Content((HttpStatusCode)406, errorMessage));
                }
                // Grab current file of the request
                var postedFile = httpRequest.Files[0];
                using (var dbContext = new BroadwayBuilderContext())
                {
                    var  userService = new UserService(dbContext);
                    User user        = userService.GetUser(userId);
                    if (user == null)//check if user exists
                    {
                        return(Content((HttpStatusCode)404, "There is no record of that User."));
                    }
                    var    resumeService = new ResumeService(dbContext);
                    Resume resume        = resumeService.GetResumeByUserID(userId);
                    if (resume == null)//check if user has already submitted a resume
                    {
                        Resume userResume = new Resume(userId, Guid.NewGuid());
                        resumeService.CreateResume(userResume);
                        var result = dbContext.SaveChanges();
                        if (result <= 0)
                        {
                            return(Content((HttpStatusCode)500, "Failed to add a resume onto our database"));
                        }
                        resume = userResume;
                    }
                    //Folder path of the user
                    var subdir = Path.Combine(ConfigurationManager.AppSettings["ResumeDir"], (resume.ResumeGuid.ToString() + "/")); //@"C:\Resumes\"+resume.ResumeGuid;
                    //Filepath of the submitted file
                    var filePath = Path.Combine(subdir, resume.ResumeGuid.ToString() + ".pdf");                                     // subdir+@"\"+resume.ResumeGuid+".pdf";

                    if (!Directory.Exists(subdir))                                                                                  //check if the directory exists
                    {
                        Directory.CreateDirectory(subdir);                                                                          //create the directory if it doesnt exist
                    }
                    //saves file onto the specified file path and overwrites any file that may exist in that shares the same path
                    postedFile.SaveAs(filePath);
                    return(Content((HttpStatusCode)200, "File Uploaded"));
                }
            }
            catch (HttpException e)//HttpPostedFile.SaveAs exception
            {
                return(Content((HttpStatusCode)500, "Unable to save the file onto our file system."));
            }
            catch (IOException e)//Exception thrown when creating directory
            {
                return(Content((HttpStatusCode)500, "Unable to delete the job posting"));
            }
            catch (DbUpdateException e)//exception thrown while saving the database
            {
                return(Content((HttpStatusCode)500, "Unable to delete the job posting"));
            }
            catch (DbEntityValidationException dbEntityValidationException)
            {
                return(Content((HttpStatusCode)500, "Unable to delete the job posting"));
            }
            catch (Exception e)
            {
                return(Content((HttpStatusCode)400, e.Message));
            }
        }
Пример #9
0
 public MaritalStatusChangedHandler(ResumeService service)
 {
     this.service = service;
 }
Пример #10
0
 /// <summary>
 /// 查询获取的简历数量
 /// </summary>
 /// <param name="inviteId"></param>
 /// <returns></returns>
 protected int GetResumeCount(object inviteId)
 {
     return(ResumeService.GetList("inviteId = " + inviteId).Tables[0].Rows.Count);
 }
 public ResumeController()
 {
     this._service = new ResumeService();
 }