Exemplo n.º 1
0
        public async Task <IActionResult> PartialCreate()
        {
            var model = new EmployeModelViewModel();

            model.Password        = "******";
            model.ConfirmPassword = "******";
            var roles = roleManager.Roles.Select(r => new SelectListItem()
            {
                Text = r.Name, Value = r.Name
            }).ToList();

            model.RoleList = roles;
            string viewFromCurrentController = await this.RenderViewToStringAsync("PartialCreate", model);

            return(Json(
                       new
            {
                html = viewFromCurrentController
            }));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> PartialEdit(string id)
        {
            string viewFromCurrentController = "";
            var    user = await userManager.FindByIdAsync(id);

            try
            {
                if (user != null)
                {
                    var model = new EmployeModelViewModel()
                    {
                        Email     = user.Email,
                        FirstName = user.FirstName,
                        Phone     = user.PhoneNumber,
                        LastName  = user.LastName,
                        Id        = user.Id
                    };
                    var roles = roleManager.Roles.Select(r => new SelectListItem()
                    {
                        Text = r.Name, Value = r.Name
                    }).ToList();
                    model.RoleList = roles;
                    var userroles = await userManager.GetRolesAsync(user);

                    model.RoleName            = userroles.FirstOrDefault();
                    model.RoleId              = userroles.FirstOrDefault();
                    viewFromCurrentController = await this.RenderViewToStringAsync("PartialEdit", model);
                }
            }
            catch (Exception ex)
            {
                string ss = ex.ToString();
            }
            return(Json(
                       new
            {
                html = viewFromCurrentController
            }));
        }
Exemplo n.º 3
0
        public async Task <JsonResult> SaveUpdate(EmployeModelViewModel employeModelViewModel)
        {
            var            data        = new PackagesDataModel();
            var            objResponse = new SaveResponse();
            string         viewFromCurrentController = string.Empty;
            IdentityResult result;

            employeModelViewModel.ConfirmPassword = employeModelViewModel.Password;
            if (!string.IsNullOrEmpty(employeModelViewModel.Id))
            {
                ModelState.Remove("Password");
                ModelState.Remove("ConfirmPassword");
            }
            if (ModelState.IsValid)
            {
                try
                {
                    if (string.IsNullOrEmpty(employeModelViewModel.Id))
                    {
                        var appUser = new PrankIdentityUser()
                        {
                            Email       = employeModelViewModel.Email,
                            UserName    = employeModelViewModel.Email,
                            FirstName   = employeModelViewModel.FirstName,
                            IsAdmin     = true,
                            LastName    = employeModelViewModel.LastName,
                            PhoneNumber = employeModelViewModel.Phone,
                        };
                        result = await userManager.CreateAsync(appUser, employeModelViewModel.Password);

                        if (result.Succeeded)
                        {
                            var result1 = await userManager.AddToRoleAsync(appUser, employeModelViewModel.RoleId);
                        }
                    }
                    else
                    {
                        var appUser = await userManager.FindByIdAsync(employeModelViewModel.Id);

                        appUser.Email       = employeModelViewModel.Email;
                        appUser.UserName    = employeModelViewModel.Email;
                        appUser.FirstName   = employeModelViewModel.FirstName;
                        appUser.IsAdmin     = true;
                        appUser.LastName    = employeModelViewModel.LastName;
                        appUser.PhoneNumber = employeModelViewModel.Phone;
                        //appUser.PasswordHash = passwordHasher.HashPassword(appUser, employeModelViewModel.Password);
                        result = await userManager.UpdateAsync(appUser);

                        if (result.Succeeded)
                        {
                            if (!string.IsNullOrEmpty(employeModelViewModel.RoleId))
                            {
                                var userroles = await userManager.GetRolesAsync(appUser);

                                if (userroles.Count > 0)
                                {
                                    foreach (var role in userroles)
                                    {
                                        var isExists = await userManager.IsInRoleAsync(appUser, role);

                                        if (isExists)
                                        {
                                            await userManager.RemoveFromRoleAsync(appUser, employeModelViewModel.RoleId);
                                        }
                                    }
                                }
                                var result1 = await userManager.AddToRoleAsync(appUser, employeModelViewModel.RoleId);
                            }
                        }
                    }
                    if (result.Succeeded)
                    {
                        var employee = userManager.Users.Select(s => new EmployeModelViewModel()
                        {
                            Id        = s.Id,
                            FirstName = s.FirstName,
                            LastName  = s.LastName,
                            Email     = s.Email,
                            Phone     = s.PhoneNumber,
                        }).ToList();

                        viewFromCurrentController = await this.RenderViewToStringAsync("PartialGetEmployees", employee);

                        objResponse.StatusCode = 200;
                        objResponse.Html       = viewFromCurrentController;
                        objResponse.Message    = "Record saved successfully";


                        string token          = string.Empty;
                        var    claimsIdentity = (ClaimsIdentity)HttpContext.User.Identity;
                        var    userTokenClaim = claimsIdentity.Claims.SingleOrDefault(c => c.Type == "Token");
                        if (userTokenClaim != null)
                        {
                            token = userTokenClaim.Value;
                        }
                        await TrackingInfo.TrackInfo(token, EmployeeId, ControllerContext.ActionDescriptor.ControllerName, employeModelViewModel.FirstName + "  " + employeModelViewModel.LastName,
                                                     0, !string.IsNullOrEmpty(employeModelViewModel.Id)? "Update" : "Save");

                        if (string.IsNullOrEmpty(employeModelViewModel.Id))
                        {
                            #region Email Send

                            string emailTemplateFile = await this.RenderViewToStringAsync("ConfimationEmail", "");

                            if (string.IsNullOrEmpty(emailTemplateFile))
                            {
                                throw new Exception("No email template found");
                            }

                            var    mailBccEmail = new List <string>();
                            string bccEmail     = _emailSettings.EmailsInTestMode ? _emailSettings.EmailToTest : _emailSettings.EmailBcc;

                            if (!string.IsNullOrEmpty(bccEmail))
                            {
                                mailBccEmail.AddRange(bccEmail.Split(';'));
                            }

                            var message = new EmailMessage
                            {
                                IsHtml  = true,
                                Subject = "Dagga Email Confirmation",
                                To      = _emailSettings.EmailsInTestMode ? _emailSettings.EmailToTest : employeModelViewModel.Email,
                                BCC     = mailBccEmail,
                            };



                            message.Body = emailTemplateFile.Replace("###Name###", employeModelViewModel.FirstName + " " + employeModelViewModel.LastName)
                                           .Replace("###Email###", employeModelViewModel.Email).Replace("###Password###", employeModelViewModel.Password);

                            await Helpers.EmailHelpers.SendAsync(message.Subject, message.Body, message.To, _emailSettings.SmtpServer,
                                                                 _emailSettings.SmtpPort, _emailSettings.SmtpUserName, _emailSettings.SmtpPassword,
                                                                 message.From ?? _emailSettings.SmtpFrom, message.IsHtml, message.CC,
                                                                 message.BCC);

                            #endregion
                        }
                    }
                    else
                    {
                        foreach (IdentityError error in result.Errors)
                        {
                            ModelState.AddModelError("", error.Description);
                            objResponse.Message += error.Description + ", ";
                        }

                        objResponse.StatusCode = 400;
                        objResponse.Html       = viewFromCurrentController;
                    }
                }
                catch (Exception ex)
                {
                    string exep = ex.ToString();
                }
            }
            else
            {
                var errors = ModelState.Select(x => x.Value.Errors)
                             .Where(y => y.Count > 0)
                             .ToList();
                objResponse.StatusCode = 400;
                objResponse.Html       = viewFromCurrentController;
                objResponse.Message    = "Record not saved successfully";
            }
            return(new JsonResult(new
            {
                objResponse
            }));
        }