예제 #1
0
        public async Task <ActionResult> Register(RegisterViewModel model, HttpPostedFileBase fupResume)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    #region Assign UserDetails during registration
                    UserDetail newUserDeets = new UserDetail();
                    newUserDeets.UserID    = user.Id;
                    newUserDeets.FirstName = model.FirstName;
                    newUserDeets.LastName  = model.LastName;


                    #region FileUpload FOR Register
                    if (fupResume != null)//if it has a value then they uploaded file.
                    {
                        //Get image and assign to variable
                        string resumeName = fupResume.FileName;



                        //declare and assign ext value
                        string ext = resumeName.Substring(resumeName.LastIndexOf('.'));//get the extension including '.'

                        //declare list of valid extensions
                        string[] goodExts = { ".doc", ".docx", ".pdf", ".txt" };

                        //check the ext variable in lowercase vs valid list

                        if (goodExts.Contains(ext.ToLower()) && (fupResume.ContentLength <= 4194304))
                        {
                            //if it is in the list , rename it using a GUID (Unique is vital to avoid overwrite)
                            resumeName = Guid.NewGuid() + ext;

                            //save to the webserver at correct location
                            fupResume.SaveAs(Server.MapPath("~/Content/resumes/" + resumeName));

                            ////Housekeeping for edit: delete old file on record if not the default
                            //if (model.ResumeFileName != null)
                            //{
                            //    System.IO.File.Delete(Server.MapPath("~/Content/resumes/" + model.ResumeFileName));
                            //}


                            newUserDeets.ResumeFileName = resumeName;
                        }
                        else
                        {
                            newUserDeets.ResumeFileName = "No resume.pdf";

                            throw new ApplicationException("Incorrect file type (use Doc, Docx, Pdf, or Txt), or file should not exceeds 4MB)");
                        } //end if tree for good extesion and good file size
                    }     //end if fup exists
                    //Location ctx = new Location();
                    //var roles = await UserManager.GetRolesAsync(user.Id);
                    //if (roles.Contains("Manager"))
                    //{
                    //    ctx.ManagerID = user.Id;
                    //}
                    JobBoardSiteEntities db = new JobBoardSiteEntities();
                    //db.Locations.Add(ctx);
                    db.UserDetails.Add(newUserDeets);
                    db.SaveChanges();

                    #endregion


                    return(View("Login"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }