public async Task <ActionResult> AddObservableAccountForObservableUser(ObservableAccountForObservableUserVM observablePage)
        {
            // Receive the observable user
            var observableUser = new ObservableUser();

            observableUser = await _repository.GetAsync <ObservableUser>(x => x.Username == observablePage.observableUserName);

            // Checking the presence of the target content we want to add to the database in the database
            var page = await _repository.GetAsync <ObservableUser>(x => x.Username == observablePage.TargetContentName);

            if (page != null)
            {
                // If such content exists, check the existence of the observable user in the list of its ActivityInitiators
                if (observableUser != null && page.ActivityInitiators.Contains(observableUser))
                {
                    return(RedirectToAction("Index", new { status = "repeat" }));
                }
                else
                {
                    /* If such observable user does not exist, add it to the collection of ActivityInitiators,
                     * update the data in the database and return a message about the successful operation.*/
                    page.ActivityInitiators.Add(observableUser);
                    await _repository.UpdateAsync <ObservableUser>(page);

                    observableUser.ObservableUsers.Add(page);
                    await _repository.UpdateAsync <ObservableUser>(observableUser);

                    return(RedirectToAction("Index", new { status = "success" }));
                }
            }

            // If such content is not in the database, then we initialize the new content
            page             = new ObservableUser();
            page.InstagramPK = _instaApi.GetPrimaryKeyByUsername(observablePage.TargetContentName);
            page.Username    = observablePage.TargetContentName;
            page.ActivityInitiators.Add(observableUser);

            // Trying to add a new content to the database
            if (!await _repository.CreateAsync <ObservableUser>(page))
            {
                return(RedirectToAction("Index", new { status = "bad" }));
            }

            // Update the data in the database
            observableUser.ObservableUsers.Add(page);
            await _repository.UpdateAsync <ObservableUser>(observableUser);

            // Return a message about the successful operation
            return(RedirectToAction("Index", new { status = "success" }));
        }
        public async Task <ActionResult> AddObservableAccountForObservableUser()
        {
            string instaPK     = _instaApi.GetCurrentUserPrimaryKey();
            var    currentUser = await _repository.GetAsync <ApplicationUser>(x => x.InstagramPK == instaPK);

            var observablePage = new ObservableAccountForObservableUserVM();

            foreach (var observableUser in currentUser.ObservableAccounts)
            {
                observablePage.ObservableUsers.Add(new SelectListItem
                {
                    Text  = observableUser.Username,
                    Value = observableUser.Username
                });
            }
            return(PartialView("_AddObservableAccountForObservableUser", observablePage));
        }