コード例 #1
0
        public async Task <IActionResult> EditUser(EditUserViewModel model)
        {
            var user = await db.Users.Where(c => c.UserId == model.UserId).FirstOrDefaultAsync();

            if (user == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {model.UserId} cannot be found";
                return(View("Not Found"));
            }
            else
            {
                user.Email       = model.Email;
                user.Address     = model.Address;
                user.FirstName   = model.FirstName;
                user.LastName    = model.LastName;
                user.PhoneNumber = model.PhoneNumber;

                var result = db.Users.Update(user);
                if (result != null)
                {
                    db.SaveChanges();
                    return(RedirectToAction("ListUsers"));
                }
                else
                {
                    ViewBag.Message = "Unable Process the Request";
                    return(View(model));
                }
            }
        }
コード例 #2
0
        public ActionResult Create(Slide slide, HttpPostedFileBase image_avatar)
        {
            if (ModelState.IsValid)
            {
                if (image_avatar != null)
                {
                    var filename = Path.GetFileName(image_avatar.FileName);
                    var path     = Path.Combine(Server.MapPath("~/Upload/Images"), filename);


                    image_avatar.SaveAs(path);
                    slide.Images = "/Upload/Images/" + image_avatar.FileName;
                }
                else
                {
                    slide.Images = "";
                }


                db.Slides.Add(slide);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(slide));
        }
コード例 #3
0
        public IActionResult ConfirmRequest(int requestId, string taskId, string userId)
        {
            var find = db.TaskRequests.Where(c => c.RequestId == requestId).FirstOrDefault();

            find.AdminResponse = true;
            find.Status        = "Pending";
            db.TaskRequests.Update(find);

            var findTask = db.Tasks.Where(c => c.TaskId == taskId && c.AssignedTo == null).FirstOrDefault();

            if (findTask != null)
            {
                var email = db.Users.Where(c => c.UserId == userId).Select(c => c.Email).FirstOrDefault();
                findTask.UserId      = userId;
                findTask.AssignedTo  = email;
                findTask.IsConfirmed = true;
                db.Tasks.Update(findTask);
                db.SaveChanges();
            }
            else
            {
                return(NotFound());
            }

            return(View("ListTaskRequests", db.TaskRequests.ToList()));
        }
コード例 #4
0
        // GET: Admin/UserBusinesses

        public ActionResult UpdateBusiness()
        {
            ReflectionController recontroller       = new ReflectionController();
            List <Type>          listControllerType = recontroller.GetControllers("DesignWeb_Project.Areas.Admin.Controllers");
            List <string>        listcontrollerOld  = db.UserBusiness.Select(k => k.BusinessID).ToList();
            List <string>        listPermissionOld  = db.UserPermission.Select(k => k.PermissionName).ToList();

            foreach (var item in listControllerType)
            {
                if (!listcontrollerOld.Contains(item.Name))
                {
                    UserBusiness ub = new UserBusiness()
                    {
                        BusinessID = item.Name, BusinessName = "No Description"
                    };
                    db.UserBusiness.Add(ub);
                }
                List <string> listPermission = recontroller.GetActions(item);

                foreach (var per in listPermission)
                {
                    if (!listPermissionOld.Contains(item.Name + "-" + per))
                    {
                        UserPermission up = new UserPermission()
                        {
                            PermissionName = item.Name + "-" + per, PermissionDescription = "No Description", BusinessID = item.Name
                        };
                        db.UserPermission.Add(up);
                    }
                }
            }
            db.SaveChanges();
            TempData["alert"] = "<div class='alert alert-success'>Đã Cập Nhật Thành Công</ div > ";
            return(RedirectToAction("Index"));
        }
コード例 #5
0
        public ActionResult Create(Product product, bool status_mi)
        {
            if (ModelState.IsValid)
            {
                bool tus;
                if (status_mi == true)
                {
                    tus = true;
                }
                else
                {
                    tus = false;
                }

                product.Author    = Session["Username"].ToString();
                product.CreatedAt = DateTime.Now;
                product.Status    = tus;

                var check_name  = db.Products.Count(x => x.ProductName == product.ProductName);
                var check_alias = db.Products.Count(x => x.Alias == product.Alias);
                if (check_name > 0)
                {
                    ViewBag.check_name = "Tên Sản Phẩm  Đã Tồn Tại";
                }
                else if (check_alias > 0)
                {
                    ViewBag.check_alias = "Đường Dẫn URL Đã Tồn Tại";
                }
                else
                {
                    //List<ImageProduct> fileDetails = new List<ImageProduct>();
                    //for (int i = 0; i < Request.Files.Count; i++)
                    //{
                    //    var image_product = Request.Files[i];

                    //    if (image_product != null && image_product.ContentLength > 0)
                    //    {
                    //        var FileImages = Path.GetFileName(image_product.FileName);
                    //        ImageProduct fileDetail = new ImageProduct()
                    //        {
                    //            FileImages = FileImages.Replace(" ", "_")
                    //        };
                    //        fileDetails.Add(fileDetail);

                    //        var path = Path.Combine(Server.MapPath("~/Upload/Images/"), FileImages.Replace(" ", "_"));
                    //        image_product.SaveAs(path);
                    //    }
                    //}

                    //product.ImageProducts = fileDetails;
                    db.Products.Add(product);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }

            ViewBag.CategoryID = new SelectList(db.Categories, "CategoryID", "CategoryName", product.CategoryID);
            return(View(product));
        }
コード例 #6
0
        // GET: Admin/Contacts/Details/5
        public ActionResult Details(int?id)
        {
            Contact contact = db.Contacts.Find(id);

            contact.ViewStatus      = true;
            db.Entry(contact).State = EntityState.Modified;
            db.SaveChanges();
            return(View(contact));
        }
コード例 #7
0
        public ActionResult Create([Bind(Include = "PaymentID,PaymentName,CreatedAt,Status")] Payment payment)
        {
            if (ModelState.IsValid)
            {
                db.Payments.Add(payment);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(payment));
        }
コード例 #8
0
        public ActionResult Create(/*[Bind(Include = "studentId,studentName")]*/ StudentInfo student)
        {
            if (ModelState.IsValid)
            {
                db.StudentInfos.Add(student);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(student));
        }
コード例 #9
0
        public ActionResult Create(Category category, HttpPostedFileBase image_avatar, bool status_mi)
        {
            if (ModelState.IsValid)
            {
                bool tus;
                if (status_mi == true)
                {
                    tus = true;
                }
                else
                {
                    tus = false;
                }

                category.Author    = Session["Username"].ToString();
                category.CreatedAt = DateTime.Now;
                category.Status    = tus;



                var check_cate  = db.Categorys.Count(x => x.CategoryName == category.CategoryName);
                var check_alias = db.Categorys.Count(x => x.Alias == category.Alias);
                if (check_cate > 0)
                {
                    ViewBag.check_cate = "Tên Nhóm Sản Phẩm  Đã Tồn Tại";
                }
                else if (check_alias > 0)
                {
                    ViewBag.check_alias = "Đường Dẫn URL Đã Tồn Tại";
                }
                else
                {
                    if (image_avatar != null)
                    {
                        var filename = Path.GetFileName(image_avatar.FileName);
                        var path     = Path.Combine(Server.MapPath("~/Upload/Images"), filename);


                        image_avatar.SaveAs(path);
                        category.Images = "/Upload/Images/" + image_avatar.FileName;
                    }
                    else
                    {
                        category.Images = "";
                    }

                    db.Categorys.Add(category);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            return(View(category));
        }
コード例 #10
0
        public ActionResult Create([Bind(Include = "PermissionID,PermissionName,PermissionDescription,BusinessID")] UserPermission userPermission)
        {
            if (ModelState.IsValid)
            {
                db.UserPermission.Add(userPermission);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.BusinessID = new SelectList(db.UserBusiness, "BusinessID", "BusinessName", userPermission.BusinessID);
            return(View(userPermission));
        }
コード例 #11
0
        public ActionResult Create(Article article, HttpPostedFileBase image_avatar, bool status_mi)
        {
            if (ModelState.IsValid)
            {
                bool tus;
                if (status_mi == true)
                {
                    tus = true;
                }
                else
                {
                    tus = false;
                }

                article.Author    = Session["Username"].ToString();
                article.CreatedAt = DateTime.Now;
                article.Status    = tus;

                var check_article = db.Articles.Count(x => x.BlogID == article.ArticleID);
                var check_alias   = db.Categorys.Count(x => x.Alias == article.Alias);
                if (check_article > 0)
                {
                    ViewBag.check_cate = "Tên Bài Viết  Đã Tồn Tại";
                }
                else if (check_alias > 0)
                {
                    ViewBag.check_alias = "Đường Dẫn URL Đã Tồn Tại";
                }
                else
                {
                    if (image_avatar != null)
                    {
                        var filename = Path.GetFileName(image_avatar.FileName);
                        var path     = Path.Combine(Server.MapPath("~/Upload/Images"), filename);


                        image_avatar.SaveAs(path);
                        article.Images = "/Upload/Images/" + image_avatar.FileName;
                    }
                    else
                    {
                        article.Images = "";
                    }

                    db.Articles.Add(article);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }

            ViewBag.BlogID = new SelectList(db.Blogs, "BlogID", "BlogName", article.BlogID);
            return(View(article));
        }
コード例 #12
0
        public void StoreUserActivity(string data, string url, string userName, string ipAddress)
        {
            var userActivity = new UserActivity
            {
                Data      = data,
                Url       = url,
                UserName  = userName,
                IpAddress = ipAddress
            };

            db.UserActivity.Add(userActivity);
            db.SaveChanges();
        }
コード例 #13
0
        public ActionResult RegisterUse(string fullname, string phone, int productid, string email)
        {
            RegisterUse reg = new RegisterUse();

            reg.FullName   = fullname;
            reg.Phone      = phone;
            reg.Email      = email;
            reg.ViewStatus = false;
            reg.CreatedAt  = DateTime.Now;
            reg.ProductID  = productid;
            db.RegisterUses.Add(reg);
            db.SaveChanges();
            return(Json(new { Result = "Success", Message = "Saved Successfully" }, JsonRequestBehavior.AllowGet));
        }
コード例 #14
0
        public ActionResult AddOrderDetails(string customerName, string Email, string Phone, string Address, int PaymentID, decimal TotalProduct)
        {
            var order = new Order();

            order.CreatedAt    = DateTime.Now;
            order.customerName = customerName;
            order.Email        = Email;
            order.Phone        = Phone;
            order.Address      = Address;
            order.PaymentID    = PaymentID;
            order.Status       = 1;
            order.TotalMoney   = TotalProduct;
            order.ViewStatus   = false;

            db.Orders.Add(order);

            var session_cart = (List <CartModel>)Session["CartItem"];

            foreach (var item in session_cart)
            {
                var orderdl = new OrderDetail();
                orderdl.ProductID    = item.Product.ProductID;
                orderdl.orderID      = order.orderID;
                orderdl.Price        = 0;
                orderdl.Quanlity     = item.Quanlity;
                orderdl.TotalProduct = 0;
                db.OrderDetails.Add(orderdl);
                orderdl.Status = true;
            }

            db.SaveChanges();
            Session["CartItem"] = null;
            return(RedirectToAction("thankyou"));
        }
コード例 #15
0
        public ActionResult Create(User user, HttpPostedFileBase image_avatar, bool status_mi)
        {
            if (ModelState.IsValid)
            {
                Md5Encode md5 = new Md5Encode();
                user.Password  = md5.EncodeMd5Encrypt(user.Password);
                user.CreatedAt = DateTime.Now;

                bool tus;
                if (status_mi == true)
                {
                    tus = true;
                }
                else
                {
                    tus = false;
                }

                var checkemail = db.User.Count(x => x.Email == user.Email);
                if (checkemail > 0)
                {
                    ViewBag.erroremail = "Email Đăng Kí Đã Tồn Tại";
                }
                else
                {
                    if (image_avatar != null)
                    {
                        var filename = Path.GetFileName(image_avatar.FileName);
                        var path     = Path.Combine(Server.MapPath("~/Upload/Images"), filename);


                        image_avatar.SaveAs(path);
                        user.Image = "/Upload/Images/" + image_avatar.FileName;
                    }
                    else
                    {
                        user.Image = "/Upload/Default/man-avatar.jpg";
                    }
                    user.Status = tus;
                    db.User.Add(user);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }

            return(View(user));
        }
コード例 #16
0
        public IActionResult TaskRequest(string taskId)
        {
            if (taskId == null)
            {
                return(NotFound());
            }
            var data = db.Tasks.Where(c => c.TaskId == taskId).FirstOrDefault();

            if (data == null)
            {
                ViewBag.Message = "Cannot Process the Request";
                return(NotFound());
            }

            var findEmail = User.Identity.Name;

            if (findEmail == null)
            {
                ViewBag.Message = "Cannot Process the Request";
                return(NotFound());
            }
            var         userId = db.Users.Where(c => c.Email == findEmail).Select(c => c.UserId).AsNoTracking().FirstOrDefault();
            TaskRequest model  = new TaskRequest();

            model.TaskId      = taskId;
            model.UserId      = userId;
            model.RequestDate = DateTime.UtcNow;
            model.DeadLine    = data.DeadLine;
            model.Status      = "Not Confirmed";
            model.Description = data.Description;
            db.TaskRequests.Add(model);
            db.SaveChanges();

            var email = db.Users.Where(c => c.UserId == userId).Select(c => c.Email).FirstOrDefault();

            if (email != null)
            {
                var token            = JwtToken.GenerateToken(userId, taskId, email);
                var confirmationLink = Url.Action("ConfirmTask", "TaskRequest", new { Areas = "User", userId = userId, token = token }, Request.Scheme);
                var To = email;
                mailHelper.Send(To, confirmationLink);

                return(RedirectToAction(nameof(ListMyRequestTask)));
            }
            ViewBag.Error = "Could not send the message.Please Contact Respective Administration.";
            return(RedirectToAction(nameof(ListMyRequestTask)));
        }
コード例 #17
0
 public ActionResult Edit(Home home)
 {
     if (ModelState.IsValid)
     {
         db.Entry(home).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Edit", new { id = home.HomeID }));
     }
     return(View(home));
 }
コード例 #18
0
        // GET: Admin/RegisterUses1/Details/5
        public ActionResult Details(int?id)
        {
            var get_product_care = from p in db.Products
                                   join u in db.RegisterUses
                                   on p.ProductID equals u.ProductID
                                   select new RegisterModel
            {
                ProductID   = p.ProductID,
                ProductName = p.ProductName
            };

            ViewBag.get_product_care = get_product_care;

            RegisterUse reg = db.RegisterUses.Find(id);

            reg.ViewStatus      = true;
            db.Entry(reg).State = EntityState.Modified;
            db.SaveChanges();
            return(View(reg));
        }
コード例 #19
0
        public ActionResult Create(MenuNavigation menuNavigation, HttpPostedFileBase image_icon, bool status_mi)
        {
            if (ModelState.IsValid)
            {
                bool tus;
                if (status_mi == true)
                {
                    tus = true;
                }
                else
                {
                    tus = false;
                }



                if (image_icon != null)
                {
                    var filename = Path.GetFileName(image_icon.FileName);
                    var path     = Path.Combine(Server.MapPath("~/Upload/Images"), filename);


                    image_icon.SaveAs(path);
                    menuNavigation.IconMenu = "/Upload/Images/" + image_icon.FileName;
                }

                menuNavigation.Status    = tus;
                menuNavigation.CreatedAt = DateTime.Now;
                db.MenuNavigations.Add(menuNavigation);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }


            var listParent = db.MenuNavigations.AsEnumerable();

            ViewBag.item = listParent.ToList();


            return(View(menuNavigation));
        }
コード例 #20
0
        public void DeleteCourse(int id)
        {
            Course delCourse = GetCourseById(id);

            _context.Courses.Remove(delCourse);
            _context.SaveChanges();
        }
コード例 #21
0
        public ActionResult Create(Blog blog, bool status_mi)
        {
            if (ModelState.IsValid)
            {
                bool tus;
                if (status_mi == true)
                {
                    tus = true;
                }
                else
                {
                    tus = false;
                }

                blog.Author    = Session["Username"].ToString();
                blog.CreatedAt = DateTime.Now;
                blog.Status    = tus;



                var check_blog  = db.Blogs.Count(x => x.BlogName == blog.BlogName);
                var check_alias = db.Blogs.Count(x => x.Alias == blog.Alias);
                if (check_blog > 0)
                {
                    ViewBag.check_blog = "Tên Danh Mục Blog Đã Tồn Tại";
                }
                else if (check_alias > 0)
                {
                    ViewBag.check_alias = "Đường Dẫn URL Đã Tồn Tại";
                }
                else
                {
                    db.Blogs.Add(blog);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }

            return(View(blog));
        }
コード例 #22
0
        public IActionResult CreateTask(TasksModel task)
        {
            if (ModelState.IsValid)
            {
                task.TaskId = Guid.NewGuid().ToString("n");
                if (task.AssignedTo != null)
                {
                    var taskId = task.TaskId;
                    var find   = db.Users.Where(c => c.UserId == task.AssignedTo).FirstOrDefault();

                    TaskRequest model = new TaskRequest();
                    model.TaskId      = taskId;
                    model.UserId      = find.UserId;
                    model.RequestDate = DateTime.UtcNow;
                    model.DeadLine    = task.DeadLine;
                    model.Status      = "Not Confirmed";
                    model.Description = task.Description;
                    db.TaskRequests.Add(model);
                    db.SaveChanges();

                    var token            = JwtToken.GenerateToken(find.UserId, taskId, find.Email);
                    var confirmationLink = Url.Action("ConfirmTask", "Task", new { Areas = "Administration", userId = find.UserId, token = token }, Request.Scheme);
                    var To = find.Email;
                    mailHelper.Send(To, confirmationLink);
                }
                db.Tasks.Add(task);
                db.SaveChanges();
                ViewBag.Message = "Added Succesfully";
                return(RedirectToAction(nameof(ListTask)));
            }
            ViewBag.Message = "Cannot Process. Try Again";
            return(View());
        }
コード例 #23
0
        public IActionResult ResetPassword(string token)
        {
            if (token == null)
            {
                ModelState.AddModelError("", "Invalid Password Reset Token");
            }
            var handeler = new JwtSecurityTokenHandler();
            var jwtToken = handeler.ReadToken(token) as JwtSecurityToken;
            var getEmail = jwtToken.Claims.First(Claim => Claim.Type == "email").Value;

            ViewBag.Email = getEmail;
            if (getEmail != null)
            {
                var find = db.Users.Where(c => c.Email == getEmail).FirstOrDefault();
                if (find != null)
                {
                    find.Password = null;
                    db.SaveChanges();
                    return(View());
                }
            }
            return(NotFound());
        }
コード例 #24
0
        public ActionResult Create([Bind(Include = "customerID,customerName,Email,Password,Address,Phone,CreatedAt,Status")] Customer customer, bool status_cus)
        {
            customer.CreatedAt = DateTime.Now;
            bool tus;

            if (status_cus == true)
            {
                tus = true;
            }
            else
            {
                tus = false;
            }

            if (ModelState.IsValid)
            {
                customer.Status = tus;
                db.Customers.Add(customer);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(customer));
        }
コード例 #25
0
        public ActionResult Create(StudentInfo model, string[] Month, decimal[] CourseFee, int[] ExamFee, DateTime[] AdmissionDate, IFormFile[] imgFile)
        {
            var oCatetory = (from c in ctx.StudentInfos where c.StudentName == model.StudentName.Trim() select c).FirstOrDefault();

            if (oCatetory == null)
            {
                ctx.StudentInfos.Add(model);
                ctx.SaveChanges();
            }
            else
            {
                model.StudentInfoId = oCatetory.StudentInfoId;
            }

            var listCourseFee = new List <FeeTbl>();

            for (int i = 0; i < Month.Length; i++)
            {
                string imgPaths = "";
                string imgPath  = ProcessUploadFile();
                if (imgFile[i] != null && imgFile[i].Length > 0)
                {
                    //var fileName = Path.GetFileName(imgFile[i].FileName);
                    //string fileLocation = Path.Combine(
                    //    Server.MapPath("~/uploads"), fileName);
                    //imgFile[i].SaveAs(fileLocation);

                    imgPaths = imgPath;
                }

                var newCourseFee = new FeeTbl();
                newCourseFee.Month         = Month[i];
                newCourseFee.ExamFee       = ExamFee[i];
                newCourseFee.CourseFee     = CourseFee[i];
                newCourseFee.AdmissionDate = AdmissionDate[i];
                newCourseFee.ImagePath     = imgPaths;
                newCourseFee.ExamFee       = ExamFee[i];
                newCourseFee.StudentInfoId = model.StudentInfoId;
                listCourseFee.Add(newCourseFee);
            }
            ctx.FeeTbls.AddRange(listCourseFee);
            ctx.SaveChanges();

            return(RedirectToAction("Index"));
        }
コード例 #26
0
        public IActionResult Completed(string taskId)
        {
            var email  = User.Identity.Name;
            var userId = db.Users.Where(c => c.Email == email).Select(c => c.UserId).FirstOrDefault();

            if (taskId != null)
            {
                var find = db.Tasks.Where(c => c.TaskId == taskId && c.UserId == userId).FirstOrDefault();
                find.Status = "Task Completed";
                db.Tasks.Update(find);
                db.SaveChanges();
                var getMyTask = db.Tasks.Where(c => c.UserId == userId).ToList();
                return(View("ListAssignedTask", getMyTask));
            }
            return(NotFound());
        }
コード例 #27
0
        public ActionResult AddContact(string fullname, string phone, string email, string content_comment)
        {
            Contact contact = new Contact();

            contact.FullName   = fullname;
            contact.Phone      = phone;
            contact.Email      = email;
            contact.Content    = content_comment;
            contact.ViewStatus = false;
            contact.CreatedAt  = DateTime.Now;

            db.Contacts.Add(contact);
            db.SaveChanges();

            TempData["displaycontact"] = "display:block!important";
            TempData["thankyou"]       = " Cảm ơn Bạn Đã Liên Hệ Chúng Tôi Sẽ Liên Lạc Với Bạn Sớm Nhất...";
            return(RedirectToAction("Contact"));
        }
コード例 #28
0
        public ActionResult Edit(Configure configure, HttpPostedFileBase favicon_image)
        {
            if (ModelState.IsValid)
            {
                if (favicon_image != null)
                {
                    var filename = Path.GetFileName(favicon_image.FileName);
                    var path     = Path.Combine(Server.MapPath("~/Upload/Images"), filename);

                    favicon_image.SaveAs(path);
                    configure.Favicon = "/Upload/Images/" + favicon_image.FileName;
                }

                db.Entry(configure).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Edit", new { id = configure.ConfigID }));
            }
            return(View(configure));
        }
コード例 #29
0
        // GET: Admin/Orders/Details/5
        public ActionResult Details(int?id)
        {
            Order order = db.Orders.Find(id);

            var listOrder = from g in db.Products
                            join p in db.OrderDetails on g.ProductID equals p.ProductID
                            where p.orderID == id
                            select new OrderModel {
                ProductID = g.ProductID, ProductName = g.ProductName, Price = g.Price, Images = g.Images, Quanlity = p.Quanlity
            };

            ViewBag.order_item = listOrder;



            var printorder = from i in db.Configures select new ConfigModel {
                Logo = i.Logo, Address_NameCompany = i.Address, Hotline = i.Hotline, Email_config = i.Email, NameCompany = i.NameCompany
            };

            ViewBag.printorder = printorder.ToList();



            order.ViewStatus = true;

            var count_order = (from or in db.Orders where or.ViewStatus == false select or.orderID).Count();

            if (count_order > 0)
            {
                Session["countnewcart"] = count_order;
            }

            db.Entry(order).State = EntityState.Modified;
            db.SaveChanges();
            return(View(order));
        }
コード例 #30
0
        public async Task <IActionResult> EditUsersInRole(List <UserRoleViewModel> model, int roleId)
        {
            var role = await db.Roles.Where(c => c.RoleId == roleId).FirstOrDefaultAsync();

            if (role == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {roleId} cannot be found";
                return(View("Not Found"));
            }
            var users = await db.UsersRoles.Where(c => c.RoleId == roleId).Select(c => c.UserId).FirstOrDefaultAsync();

            dynamic result = null;

            if (users != null)
            {
                UsersRoles usersRoles = new UsersRoles();
                usersRoles.RoleId = roleId;
                usersRoles.UserId = users;
                if (usersRoles != null)
                {
                    result = db.UsersRoles.Remove(usersRoles);
                    if (result == null)
                    {
                        ModelState.AddModelError("", "Cannot remove user existing roles");
                        return(View(model));
                    }
                    db.SaveChanges();
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(NotFound());
            }
            UsersRoles addUserRole = new UsersRoles();
            var        getId       = 0;

            for (int i = 0; i < model.Count; i++)
            {
                if (model[i].IsSelected && db.UsersRoles.Where(c => c.RoleId == roleId && c.UserId == model[i].UserId).FirstOrDefault() == null)
                {
                    if (db.UsersRoles.Count() != 0)
                    {
                        getId = db.UsersRoles.Max(x => x.Id);
                    }
                    else
                    {
                        getId = db.UsersRoles.Count();
                    }
                    addUserRole.Id     = getId + 1;
                    addUserRole.UserId = model[i].UserId;
                    addUserRole.RoleId = roleId;
                    result             = db.UsersRoles.Add(addUserRole);
                    await db.SaveChangesAsync();
                }
                else
                {
                    continue;
                }
            }
            return(RedirectToAction("EditRole", new { Id = roleId }));
        }