示例#1
0
        public ActionResult Create(UserView userView)
        {
            if (!ModelState.IsValid)
            {
                return View(userView);  
            }

            //Upload Image:
            string path = string.Empty;
            string picture = string.Empty;

            if (userView.Photo != null)
            {
                picture = Path.GetFileName(userView.Photo.FileName);
                path = Path.Combine(Server.MapPath("~/Content/Photos"),picture);
                userView.Photo.SaveAs(path);

                using (MemoryStream ms = new MemoryStream())
                {
                    userView.Photo.InputStream.CopyTo(ms);
                    byte[] array = ms.GetBuffer();
                }
            }

            //Save record:
            var user = new User
            {
                Address = userView.Address,
                FirstName = userView.FirstName,
                Grade = userView.Grade,
                Group = userView.Group,
                LastName = userView.LastName,
                Phone = userView.Phone,
                Photo = picture == string.Empty ? string.Empty : string.Format("~/Content/Photos/{0}", picture),
                userName = userView.userName 
            };  
            
            db.Users.Add(user);

            try
            {
                db.SaveChanges();
                this.createASPUser(userView);

            }
            catch (Exception ex)
            {
                if (ex.InnerException != null && 
                    ex.InnerException.InnerException != null 
                    && ex.InnerException.InnerException.Message.Contains("userNameIndex"))
                {
                    ViewBag.Error = "The Email has already used for another User.";
                }
                else
                {
                    ViewBag.Error = ex.Message;
                }

                return View(userView);
            }

            return RedirectToAction("Index");

           
        }
示例#2
0
        public async Task<ActionResult> Register(RegisterUserView userView)
        {
            if (ModelState.IsValid)
            {

                //Upload Image:
                string path = string.Empty;
                string picture = string.Empty;

                if (userView.Photo != null)
                {
                    picture = Path.GetFileName(userView.Photo.FileName);
                    path = Path.Combine(Server.MapPath("~/Content/Photos"), picture);
                    userView.Photo.SaveAs(path);

                    using (MemoryStream ms = new MemoryStream())
                    {
                        userView.Photo.InputStream.CopyTo(ms);
                        byte[] array = ms.GetBuffer();
                    }
                }

                //Save record:
                var user = new User
                {
                    Address = userView.Address,
                    FirstName = userView.FirstName,
                    Grade = userView.Grade,
                    Group = userView.Group,
                    LastName = userView.LastName,
                    Phone = userView.Phone,
                    Photo =  string.IsNullOrEmpty(picture) ? string.Empty : string.Format("~/Content/Photos/{0}", picture),
                    userName = userView.userName
                };
                var db = new DemocracyContext();
                db.Users.Add(user);

                try
                {
                    db.SaveChanges();
                    var userASP =  this.createASPUser(userView);

                    await SignInManager.SignInAsync(userASP, isPersistent: false, rememberBrowser: false);
                    return RedirectToAction("Index", "Home");
                }
                catch (Exception ex)
                {
                    if (ex.InnerException != null &&
                        ex.InnerException.InnerException != null
                        && ex.InnerException.InnerException.Message.Contains("userNameIndex"))
                    {
                        ModelState.AddModelError(string.Empty,"The Email has already used for another User.");
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, ex.Message);
                    }

                    return View(userView);
                }

              }

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