예제 #1
0
 public virtual ActionResult Edit(BaseUserLogin bul)
 {
     try
     {
         if (!ModelState.IsValid)
         {
             return(Json(new { isError = true, Msg = "ورودی نامعتبر" }));
         }
         var baseuser =
             _baseuserService.Where(b => b.CodeMeli == bul.CodeMeli && b.BaseUserLoginId != bul.BaseUserLoginId)
             .FirstOrDefault();
         if (baseuser != null)
         {
             return(Json(new { isError = true, Msg = "کد ملی در بانک اطلاعاتی وجود دارد!" }));
         }
         baseuser =
             _baseuserService.Where(
                 b => b.CodeEstekhdam == bul.CodeEstekhdam && b.BaseUserLoginId != bul.BaseUserLoginId)
             .FirstOrDefault();
         if (baseuser != null)
         {
             return(Json(new { isError = true, Msg = "کد استخدامی در بانک اطلاعاتی وجود دارد!" }));
         }
         _baseuserService.Edit(bul);
         Log log = new Log()
         {
             UserId          = int.Parse(User.Identity.GetUserId()),
             Operation       = Operations.اطلاعات_پایه_کاربر,
             OperationDetail = OperationsDetail.ویرایش,
             Description     = "ویرایش اطلاعات پایه کاربران مجاز به سیستم به شماره " + bul.BaseUserLoginId
         };
         _logService.AddNewLog(log);
         _unitOfWork.SaveChanges();
         return(Json(new { isError = false, Msg = "تغییرات اعمال شد" }));
     }
     catch (Exception)
     {
         return(Json(new { isError = true, Msg = "خطا در ویرایش اطلاعات کاربر" }));
     }
 }
예제 #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));
        }