Esempio n. 1
0
        public async Task <IActionResult> AddAssignUser(AssignUserModel model)
        {
            if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageOutletManagement))
            {
                return(AccessDeniedView());
            }

            //validate store
            if (model.SelectedUserStoreId == 0)
            {
                ModelState.AddModelError(string.Empty, "Store is required");
                _notificationService.ErrorNotification("Store is required");
            }

            try
            {
                //Store
                StoreUserAssign storeUserAssign = new StoreUserAssign
                {
                    StoreId = model.SelectedUserStoreId,
                    StoreUserAssignStore = new List <StoreUserAssignStores>()
                };

                //Add user
                foreach (var user in model.SelectedUserIds)
                {
                    StoreUserAssignStores storeUserAssignStores = new StoreUserAssignStores
                    {
                        StoreUserAssignId = storeUserAssign.Id,
                        UserId            = user,
                    };

                    storeUserAssign.StoreUserAssignStore.Add(storeUserAssignStores);
                }

                await _outletManagementService.InsertAssignUser(storeUserAssign);

                return(new NullJsonResult());
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, e.Message);
                _notificationService.ErrorNotification(e.Message);

                return(Json(e.Message));
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> EditAssignUser(AssignUserModel model, bool continueEditing)
        {
            if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageOutletManagement))
            {
                return(AccessDeniedView());
            }

            var assignUser = await _outletManagementService.GetAssignUserByIdAsync(model.Id);

            if (assignUser == null)
            {
                return(RedirectToAction("Index"));
            }

            //validate store users
            var allUsers = await _userService.GetUsersAsync();

            var newUsers = new List <User>();

            foreach (var user in allUsers)
            {
                if (model.SelectedUserIds.Contains(user.Id))
                {
                    newUsers.Add(user);
                }
            }

            if (model.SelectedUserIds.Count == 0)
            {
                _notificationService.ErrorNotification("User is required");
                model = await _managementModelFactory.PrepareAssignUserModel(model, assignUser);

                model.SelectedUserIds = new List <int>();

                return(View(model));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    assignUser.StoreId = model.SelectedUserStoreId;

                    //users
                    List <StoreUserAssignStores> storeUserAssignStoresList = new List <StoreUserAssignStores>();

                    foreach (var user in allUsers)
                    {
                        if (model.SelectedUserIds.Contains(user.Id))
                        {
                            //new user
                            if (assignUser.StoreUserAssignStore.Count(mapping => mapping.UserId == user.Id) == 0)
                            {
                                StoreUserAssignStores storeUserAssignStores = new StoreUserAssignStores
                                {
                                    StoreUserAssignId = assignUser.StoreId,
                                    UserId            = user.Id
                                };
                                assignUser.StoreUserAssignStore.Add(storeUserAssignStores);
                            }
                        }
                        else
                        {
                            //remove user
                            if (assignUser.StoreUserAssignStore.Count(mapping => mapping.UserId == user.Id) > 0)
                            {
                                _outletManagementService.DeleteAssignUserUsers(model.Id, user);
                            }
                        }
                    }
                    _outletManagementService.UpdateAssignUser(assignUser);

                    _notificationService.SuccessNotification("Assign users has been updated successfully.");

                    //set to active tab
                    SaveSelectedTabName("assignUserTab", true);

                    if (!continueEditing)
                    {
                        return(RedirectToAction("Index"));
                    }

                    return(RedirectToAction("EditAssignUser", new { id = assignUser.Id }));
                }
                catch (Exception e)
                {
                    _notificationService.ErrorNotification(e.Message);
                }
            }

            model = await _managementModelFactory.PrepareAssignUserModel(model, assignUser);

            return(View(model));
        }