示例#1
0
 public virtual ActionResult CreateUserRole(int userid, int roleId, int structId)
 {
     try
     {
         var userInRole = _roleManager.GetAllCustomUserRole().FirstOrDefault(u => u.RoleId == roleId && u.Department.Id == structId);
         if (userInRole != null)
         {
             return(Json(new { isError = true, Msg = "این نقش قبلا نسبت داده شد! " }));
         }
         var result = _roleManager.AddUserRole(userid, roleId, structId);
         if (!result)
         {
             return(Json(new { isError = true, Msg = "خطا در عملیات" }));
         }
         Log log = new Log()
         {
             UserId          = int.Parse(User.Identity.GetUserId()),
             Operation       = Operations.نقش,
             OperationDetail = OperationsDetail.ایجاد,
             Description     = " ایجاد نقش شماره " + roleId + " مربوط به کاربر شماره " + userid
         };
         _logService.AddNewLog(log);
         _unitOfWork.SaveChanges();
         return(Json(new { isError = false, Msg = "عملیات موفق آمیز بود" }));
     }
     catch (Exception)
     {
         return(Json(new { isError = true, Msg = "خطا در ایجاد نقش مربوط به کاربر" }));
     }
     // return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
 }
示例#2
0
        public virtual async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    try
                    {
                        BaseUserLogin baseuserlogin = _userService.Where(x => x.CodeMeli == model.CodeMeli && x.CodeEstekhdam == model.CodeEstekhdam).FirstOrDefault();
                        if (baseuserlogin == null)
                        {
                            ModelState.AddModelError("", "اطلاعات پایه کاربری وجود ندارد");
                            return(View(model));
                        }
                        if (baseuserlogin.Active)
                        {
                            ModelState.AddModelError("", "شماره شناسایی قبلا استفاده شده است");
                            return(View(model));
                        }
                        //throw new Exception("اطلاعات پایه کاربری وجود ندارد");
                        var user = new AppUser
                        {
                            UserName        = model.Email,
                            Email           = model.Email,
                            BaseUserLoginId = baseuserlogin.BaseUserLoginId
                        };
                        var result = await _userManager.CreateAsync(user, model.Password);

                        if (result.Succeeded)
                        {
                            baseuserlogin.Active = true;
                            _baseuserService.Edit(baseuserlogin);
                            var roleid    = _roleManager.FindRoleByName(Roles.User.ToString()).Id;
                            var departman = _univercity.Where(x => x.Level == 1).SingleOrDefault();
                            if (departman != null)
                            {
                                _roleManager.AddUserRole(user.Id, roleid, departman.Id);
                            }
                            _uow.SaveChanges();
                            var code = await _userManager.GenerateEmailConfirmationTokenAsync(user.Id);

                            var callbackUrl = Url.Action(MVC.Account.ActionNames.ConfirmEmail, MVC.Account.Name, new { userId = user.Id, code }, Request.Url.Scheme);
                            ViewBag.Link = callbackUrl;
                            //_emailIdentityService.SendEmailWithPostal("Reg.Html", user.Email, "", "", "تائید حساب کاربری ", "تائید حساب کاربری ", "جهت فعال سازی حساب کاربری خود بر روی لینک زیر کلیک کنید: <a href=\"" + callbackUrl + "\">link</a>");
                            var     def   = _definitionService.GetAllDefinitionsAsQueryable().FirstOrDefault();
                            dynamic email = new Email("Reg.Html");
                            email.To      = user.Email;
                            email.Title   = "تائید حساب کاربری ";
                            email.Subject = (def == null ? "تائید حساب کاربری " : "تائید حساب کاربری " + def.UniversityName);
                            email.Body    = "جهت فعال سازی حساب کاربری خود بر روی لینک زیر کلیک کنید";
                            email.Link    = callbackUrl;
                            //if (!string.IsNullOrWhiteSpace(email.To.ToString()))
                            //    email.Send();
                            scope.Complete();
                            return(View("DisplayEmail"));
                        }
                        addErrors(result);
                    }
                    catch (Exception ex)
                    {
                        ErrorSignal.FromCurrentContext().Raise(ex);
                        ModelState.AddModelError("", "عملیات با مشکل مواجه شد! " + ex.Message);
                        return(View(model));
                    }
                    finally
                    {
                        //scope.Dispose();
                    }
                }
            }

            return(View(model));
        }