Beispiel #1
0
        public async Task <ActionResult> RegisterUser(RegisterViewModelUser model)
        {
            //Si el usuario esta logueado hara un proceso para crear otro usuario con el mismo id de empresa
            if (User.Identity.IsAuthenticated == true)
            {
                var id_usuario = User.Identity.GetUserId().ToString();
                var id_empresa = (from userId in db.Empresas where userId.id_Usuario == id_usuario select userId).FirstOrDefault();

                if (ModelState.IsValid)
                {
                    var user = new ApplicationUser {
                        UserName = model.Email, Email = model.Email, empresa_id = id_empresa.id
                    };
                    var result = await UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        await UserManager.AddToRoleAsync(user.Id, "User");

                        // Para obtener más información sobre cómo habilitar la confirmación de cuentas y el restablecimiento de contraseña, visite https://go.microsoft.com/fwlink/?LinkID=320771
                        // Enviar correo electrónico con este vínculo
                        // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                        // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                        // await UserManager.SendEmailAsync(user.Id, "Confirmar cuenta", "Para confirmar la cuenta, haga clic <a href=\"" + callbackUrl + "\">aquí</a>");



                        return(RedirectToAction("ListUser", "Account"));
                    }
                    AddErrors(result);
                }
            }
            // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario
            return(View(model));
        }
        public async Task <ActionResult> UserRegister()
        {
            var user = await GetUser();

            RegisterViewModelUser model = new RegisterViewModelUser();

            return(View(model));
        }
        public BusinessLayerResult <TercumeUser> RegisterTercumeUser(RegisterViewModelUser data)
        {
            // Kullanıcı Name kontrolü..
            // Kullanıcı e-posta kontrolü..
            // Kayıt işlemi..
            // Aktivasyon e-postası gönderimi.
            TercumeUser user = Find(x => x.Email == data.EMail);
            BusinessLayerResult <TercumeUser> res = new BusinessLayerResult <TercumeUser>();

            if (user != null)
            {
                if (user.Email == data.EMail)
                {
                    res.AddError(ErrorMessageCode.NameAlreadyExists, "Kullanıcı emaili kayıtlı.");
                }

                if (user.Email == data.EMail)
                {
                    res.AddError(ErrorMessageCode.EmailAlreadyExists, "E-posta adresi kayıtlı.");
                }
            }
            else
            {
                int dbResult = base.Insert(new TercumeUser()
                {
                    Name  = data.Name,
                    Email = data.EMail,
                    ProfileImageFilename = "user_boy.png",
                    Password             = data.Password,
                    ActivateGuid         = Guid.NewGuid(),
                    IsActive             = false,
                    IsAdmin = false
                });

                if (dbResult > 0)
                {
                    res.Result = Find(x => x.Email == data.EMail);

                    string siteUri     = ConfigHelper.Get <string>("SiteRootUri");
                    string activateUri = $"{siteUri}/Home/UserActivate/{res.Result.ActivateGuid}";
                    string body        = $"Merhaba {res.Result.Name};<br><br>Hesabınızı aktifleştirmek için <a href='{activateUri}' target='_blank'>tıklayınız</a>.";

                    MailHelper.SendMail(body, res.Result.Email, "Tercume Hesap Aktifleştirme");
                }
            }

            return(res);
        }
        public ActionResult RegisterUser(RegisterViewModelUser model)
        {
            if (ModelState.IsValid)
            {
                BusinessLayerResult <TercumeUser> res = tercumeUserManager.RegisterTercumeUser(model);

                if (res.Errors.Count > 0)
                {
                    res.Errors.ForEach(x => ModelState.AddModelError("", x.Message));
                    return(View(model));
                }
                OkViewModel notifyObj = new OkViewModel()
                {
                    Title          = "Kayıt Başarılı",
                    RedirectingUrl = "/Home/Index"
                };

                notifyObj.Items.Add("Lütfen e-posta adresinize gönderdiğimiz aktivasyon link'ine tıklayarak hesabınızı aktive ediniz. Hesabınızı aktive etmeden not ekleyemez ve beğenme yapamazsınız.");

                return(View("Ok", notifyObj));
            }

            return(View(model));
        }
        public async Task <ActionResult> UserRegister_Post(RegisterViewModelUser model)
        {
            MessageJS returnmodel = new MessageJS();

            if (true)
            {
                if (ModelState.IsValid)
                {
                    var username = model.Emri.ToLower() + "." + model.Mbiemri.ToLower();
                    var user     = new ApplicationUser {
                        UserName = username, Email = model.EmailAdresa
                    };
                    var result = await UserManager.CreateAsync(user, model.UserPassword);

                    if (result.Succeeded)
                    {
                        try
                        {
                            var userfound = await UserManager.FindByEmailAsync(model.EmailAdresa);

                            USER newUser = new USER();
                            newUser.UserID  = userfound.Id;
                            newUser.Emri    = model.Emri;
                            newUser.Mbiemri = model.Mbiemri;
                            string        password      = model.UserPassword;
                            ASCIIEncoding binarypass    = new ASCIIEncoding();
                            string        encrypted     = Encrypt(password);
                            byte[]        passwordArray = binarypass.GetBytes(encrypted);
                            newUser.Password     = passwordArray;
                            newUser.Email        = model.EmailAdresa;
                            newUser.Adresa       = model.Adresa;
                            newUser.RandomNumber = RandomString(6, false);
                            db.USERs.Add(newUser);
                            await db.SaveChangesAsync();

                            returnmodel.Status  = true;
                            returnmodel.Message = "Llogaria eshte regjistruar me sukses!";
                        }
                        catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
                        {
                            Exception raise = dbEx;
                            foreach (var validationErrors in dbEx.EntityValidationErrors)
                            {
                                foreach (var validationError in validationErrors.ValidationErrors)
                                {
                                    string message = string.Format("{0}:{1}",
                                                                   validationErrors.Entry.Entity.ToString(),
                                                                   validationError.ErrorMessage);
                                    raise = new InvalidOperationException(message, raise);
                                }
                            }
                            await UserManager.DeleteAsync(user);

                            returnmodel.Status  = false;
                            returnmodel.Message = "Ka ndodhur një gabim, provoni përsëri";
                        }
                        //catch (Exception e)
                        //{
                        //    await UserManager.DeleteAsync(user);
                        //    returnmodel.Status = false;
                        //    returnmodel.Message = "Ka ndodhur një gabim, provoni përsëri";
                        //}
                    }
                    else
                    {
                        await UserManager.DeleteAsync(user);

                        returnmodel.Status  = false;
                        returnmodel.Message = "Email adresa ose username egziston";
                    }

                    AddErrors(result);
                }

                else
                {
                    var errors = ModelState.Select(x => x.Value.Errors)
                                 .Where(y => y.Count > 0)
                                 .ToList();
                    returnmodel.Status  = false;
                    returnmodel.Message = "Ka ndodhur një gabim, provoni përsëri";
                }
            }
            return(Json(returnmodel, JsonRequestBehavior.AllowGet));
        }