예제 #1
0
        public void SetUp()
        {
            _accounts = new Accounts();
            _profile  = new ConversionProfile();

            _existingFtpAccount           = new FtpAccount();
            _existingFtpAccount.AccountId = "ftpAccountID";

            _existingSmtpAccount           = new SmtpAccount();
            _existingSmtpAccount.AccountId = "smtpAccountID";

            _existingHttpAccount           = new HttpAccount();
            _existingHttpAccount.AccountId = "httpAccountID";

            _existingDropboxAccount           = new DropboxAccount();
            _existingDropboxAccount.AccountId = "dropboxAccountID";

            _existingTimeServerAccount           = new TimeServerAccount();
            _existingTimeServerAccount.AccountId = "timeserverAccountID";

            _accounts.FtpAccounts.Add(_existingFtpAccount);
            _accounts.SmtpAccounts.Add(_existingSmtpAccount);
            _accounts.HttpAccounts.Add(_existingHttpAccount);
            _accounts.DropboxAccounts.Add(_existingDropboxAccount);
            _accounts.TimeServerAccounts.Add(_existingTimeServerAccount);
        }
예제 #2
0
        public override void Execute(object parameter)
        {
            _currentAccount = parameter as DropboxAccount;
            if (_currentAccount == null)
            {
                return;
            }

            _usedInProfilesList = _profiles.Where(p => p.DropboxSettings.AccountId.Equals(_currentAccount.AccountId)).ToList();

            var title = Translation.RemoveDropboxAccount;

            var messageSb = new StringBuilder();

            messageSb.AppendLine(_currentAccount.AccountInfo);
            messageSb.AppendLine(Translation.SureYouWantToDeleteAccount);

            if (_usedInProfilesList.Count > 0)
            {
                messageSb.AppendLine();
                messageSb.AppendLine(Translation.GetAccountIsUsedInFollowingMessage(_usedInProfilesList.Count));
                messageSb.AppendLine();
                foreach (var profile in _usedInProfilesList)
                {
                    messageSb.AppendLine(profile.Name);
                }
                messageSb.AppendLine();
                messageSb.AppendLine(Translation.GetDropboxGetsDisabledMessage(_usedInProfilesList.Count));
            }
            var message     = messageSb.ToString();
            var icon        = _usedInProfilesList.Count > 0 ? MessageIcon.Warning : MessageIcon.Question;
            var interaction = new MessageInteraction(message, title, MessageOptions.YesNo, icon);

            _interactionRequest.Raise(interaction, DeleteAccountCallback);
        }
예제 #3
0
        public void SetAccessTokenAndUserInfo(Uri eUri)
        {
            // if url doesnt start with redirecturl that means that current url for recieveing token isn't reach yet
            if (eUri.ToString().StartsWith(_dropboxData.RedirectUri, StringComparison.OrdinalIgnoreCase) == false)
            {
                return;
            }

            try
            {
                var accessToken       = _dropboxService.ParseAccessToken(eUri);
                var currentUserInfo   = _dropboxService.GetDropUserInfo(accessToken);
                var newDropboxAccount = new DropboxAccount
                {
                    AccessToken = currentUserInfo.AccessToken,
                    AccountInfo = currentUserInfo.AccountInfo,
                    AccountId   = currentUserInfo.AccountId
                };
                Interaction.DropboxAccount = newDropboxAccount;
                Interaction.Result         = DropboxAccountInteractionResult.Success;
            }
            catch (ArgumentException)
            {
                Interaction.Result = DropboxAccountInteractionResult.AccesTokenParsingError;
                _logger.Warn("Cannot parse dropbox access token. New Account can't be created.");
            }
            catch (Exception e)
            {
                Interaction.Result = DropboxAccountInteractionResult.Error;
                _logger.Warn($"Unexpected exception during determination of dropbox token.{Environment.NewLine}{e}");
            }

            FinishInteraction();
        }
예제 #4
0
 /// <getAdsDetailsbyId>
 /// get ads details by Ads Guid.
 /// </summary>
 /// <param name="adsid">Id of the Ads(Guid)</param>
 /// <returns>Return Unique object of Ads</returns>
 public DropboxAccount getDropboxAccountDetailsbyId(Guid Gid)
 {
     //Creates a database connection and opens up a session
     using (NHibernate.ISession session = SessionFactory.GetNewSession())
     {
         //After Session creation, start Transaction.
         using (NHibernate.ITransaction transaction = session.BeginTransaction())
         {
             try
             {
                 // Proceed the action to get data by query.
                 // Where we set the parameter
                 // And return unique result of Ad
                 NHibernate.IQuery query = session.CreateQuery("from DropboxAccount where UserId=:Userid");
                 query.SetParameter("Userid", Gid);
                 DropboxAccount _DropboxAccount = query.UniqueResult <DropboxAccount>();
                 return(_DropboxAccount);
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.StackTrace);
                 return(null);
             }
         } // End using transaction
     }     // End using session
 }
        public void ChangeAccountsCollection_TriggersRaiseCanExecuteChanged()
        {
            var newAccount = new DropboxAccount();

            _dropboxAccounts.Add(newAccount);
            var wasRaised = false;

            _dropboxAccountRemoveCommand.CanExecuteChanged += (sender, args) => wasRaised = true;
            _dropboxAccounts.Remove(newAccount);
            Assert.IsTrue(wasRaised);
        }
예제 #6
0
        public void GetDropboxAccount_DropboxAccountsNotEmpty_GetDropboxAccountCalledWithEmptyString_ReturnsNull()
        {
            var dropboxAccountWithEmptyID = new DropboxAccount();

            dropboxAccountWithEmptyID.AccountId = ""; //this should never happen and is set in this test to avoid ugly errors ...
            _accounts.DropboxAccounts.Add(dropboxAccountWithEmptyID);
            _profile.DropboxSettings.AccountId = "";  //... in case the AccountID is empty

            var fetchedDropboxAccount = _accounts.GetDropboxAccount(_profile);

            Assert.IsNull(fetchedDropboxAccount);
        }
예제 #7
0
        public void AddAccount_LatestAccountIsCurrentItemInView()
        {
            var collectionView = CollectionViewSource.GetDefaultView(_dropboxAccounts);

            //add new Account (what the AddCommand would do)
            var newAccount = new DropboxAccount();

            _dropboxAccounts.Add(newAccount);

            _viewModel.AddDropboxAccountCommand.Execute(null);

            Assert.AreSame(newAccount, collectionView.CurrentItem, "Newest Account is not selected Item");
        }
        public void RemoveDropboxUser_CanExecuteChangedGetsCalled()
        {
            var account = new DropboxAccount {
                AccountId = "1"
            };

            _dropboxActionViewModel.DropboxAccounts.Add(account);
            bool wasCalled = false;

            _dropboxActionViewModel.RemoveDropboxAccountCommand.CanExecuteChanged += (sender, args) => wasCalled = true;
            _dropboxActionViewModel.CurrentProfile.DropboxSettings.AccountId       = account.AccountId;
            _dropboxActionViewModel.RemoveDropboxAccountCommand.Execute(null);
            Assert.IsTrue(wasCalled);
        }
예제 #9
0
 /// <Add>
 /// Add a new admin in DataBase.
 /// </summary>
 /// <param name="user">Set Values in a Admin Class Property and Pass the Object of Admin Class (SocioBoard.Domain.Admin).</param>
 public void Add(DropboxAccount _DropboxAccount)
 {
     //Creates a database connection and opens up a session
     using (NHibernate.ISession session = SessionFactory.GetNewSession())
     {
         //After Session creation, start and open Transaction.
         using (NHibernate.ITransaction transaction = session.BeginTransaction())
         {
             //Proceed action to save data.
             session.Save(_DropboxAccount);
             transaction.Commit();
         } //End Using trasaction
     }     //End Using session
 }
        public void SetUp()
        {
            _interactionRequest = new UnitTestInteractionRequest();
            _translation        = new DropboxTranslation();

            _dropboxAccounts = new ObservableCollection <DropboxAccount>();

            _usedAccount             = new DropboxAccount();
            _usedAccount.AccountId   = nameof(_usedAccount);
            _usedAccount.AccountInfo = "AI1";
            _usedAccount.AccessToken = "AT1";
            _dropboxAccounts.Add(_usedAccount);

            _unusedAccount             = new DropboxAccount();
            _unusedAccount.AccountId   = nameof(_unusedAccount);
            _unusedAccount.AccountInfo = "AI2";
            _unusedAccount.AccessToken = "AT2";
            _dropboxAccounts.Add(_unusedAccount);

            _profilesProvider = Substitute.For <ICurrentSettings <ObservableCollection <ConversionProfile> > >();
            _profiles         = new ObservableCollection <ConversionProfile>();

            _profileWithDropboxActionEnabled      = new ConversionProfile();
            _profileWithDropboxActionEnabled.Name = nameof(_profileWithDropboxActionEnabled);
            _profileWithDropboxActionEnabled.DropboxSettings.Enabled   = true;
            _profileWithDropboxActionEnabled.DropboxSettings.AccountId = _usedAccount.AccountId;
            _profiles.Add(_profileWithDropboxActionEnabled);

            _profileWithDropboxActionDisabled      = new ConversionProfile();
            _profileWithDropboxActionDisabled.Name = nameof(_profileWithDropboxActionDisabled);
            _profileWithDropboxActionDisabled.DropboxSettings.Enabled   = false;
            _profileWithDropboxActionDisabled.DropboxSettings.AccountId = _usedAccount.AccountId;
            _profiles.Add(_profileWithDropboxActionDisabled);

            var settings = new PdfCreatorSettings();

            settings.ApplicationSettings.Accounts.DropboxAccounts = _dropboxAccounts;
            settings.ConversionProfiles = _profiles;
            _accountsProvider           = Substitute.For <ICurrentSettings <Accounts> >();
            _accountsProvider.Settings.Returns(settings.ApplicationSettings.Accounts);
            _profilesProvider.Settings.Returns(_profiles);

            var translationUpdater = new TranslationUpdater(new TranslationFactory(), new ThreadManager());

            _dropboxService = Substitute.For <IDropboxService>();

            _dropboxAccountRemoveCommand = new DropboxAccountRemoveCommand(_interactionRequest, _accountsProvider, _profilesProvider, _dropboxService, translationUpdater);
        }
예제 #11
0
        public void AddAccount_UserAppliesInteraction_UnknownErrorOccurs__AccountsRemainUntouched()
        {
            var newAccount = new DropboxAccount();

            _interactionInvoker.Invoke(Arg.Do <DropboxAccountInteraction>(i =>
            {
                i.Result         = DropboxAccountInteractionResult.Error;
                i.DropboxAccount = newAccount;
            }));
            var wasCalled = false;

            _dropboxAccounts.CollectionChanged += (sender, args) => { wasCalled = true; };

            _dropboxAccountAddCommand.Execute(null);

            Assert.IsFalse(wasCalled);
        }
예제 #12
0
        public void SetUp()
        {
            _profile = new ConversionProfile();
            _profile.DropboxSettings.Enabled   = true;
            _profile.DropboxSettings.AccountId = _accountId;

            _dropboxService = Substitute.For <IDropboxService>();

            _dropboxAccount             = new DropboxAccount();
            _dropboxAccount.AccountId   = _accountId;
            _dropboxAccount.AccessToken = _accessToken;

            _accounts = new Accounts();
            _accounts.DropboxAccounts.Add(_dropboxAccount);

            _dropboxAction = new DropboxAction(_dropboxService);
        }
예제 #13
0
        public ActionResult DropBox()
        {
            Api.Dropbox.Dropbox _Dropbox = new Api.Dropbox.Dropbox();
            Api.DropboxAccount.DropboxAccount _DropboxAccount = new Api.DropboxAccount.DropboxAccount();
            Domain.Socioboard.Domain.User     objUser         = (Domain.Socioboard.Domain.User)Session["User"];
            DropboxAccount _UserDetails = Newtonsoft.Json.JsonConvert.DeserializeObject <DropboxAccount>(_DropboxAccount.GetDropboxAccountDetailsByUserId(objUser.Id.ToString()));

            if (_UserDetails != null)
            {
                var _DropboxImageLast = Newtonsoft.Json.JsonConvert.DeserializeObject <List <string> >(_Dropbox.GetUserDropBoxData(objUser.Id.ToString()));

                return(PartialView("_DropBoxImagePartial", _DropboxImageLast));
            }
            else
            {
                string _DropboxredirectUri = _Dropbox.GetDropboxRedirectUrl(ConfigurationManager.AppSettings["DBX_Appkey"], ConfigurationManager.AppSettings["DBX_redirect_uri"]);
                return(Content(_DropboxredirectUri));
            }
        }
예제 #14
0
        public void AddAccount_UserAppliesInteraction_UnknownErrorOccurs_InteractionRequestRaisesCorrespondingInteraction()
        {
            var newAccount = new DropboxAccount();

            _interactionInvoker.Invoke(Arg.Do <DropboxAccountInteraction>(i =>
            {
                i.Result         = DropboxAccountInteractionResult.Error;
                i.DropboxAccount = newAccount;
            }));

            _dropboxAccountAddCommand.Execute(null);

            var messageInteraction = _interactionRequest.AssertWasRaised <MessageInteraction>();

            Assert.AreEqual(messageInteraction.Text, _translation.DropboxAccountCreationErrorMessage);
            Assert.AreEqual(messageInteraction.Title, _translation.AddDropboxAccount);
            Assert.AreEqual(messageInteraction.Buttons, MessageOptions.OK);
            Assert.AreEqual(messageInteraction.Icon, MessageIcon.Warning);
        }
        public override async void Execute(object parameter)
        {
            var newAccount = new DropboxAccount();

            try
            {
                var userInfo = await _dropboxUserInfoManager.GetDropboxUserInfo();

                if (userInfo.AccessToken != null)
                {
                    newAccount.AccountId   = userInfo.AccountId;
                    newAccount.AccessToken = userInfo.AccessToken;
                    newAccount.AccountInfo = userInfo.AccountInfo;
                }
            }
            catch (DropboxAccessDeniedException)
            {
                IsDone?.Invoke(this, new MacroCommandIsDoneEventArgs(ResponseStatus.Cancel));
                return;
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "An error occured trying to add Dropbox account.");
                var errorMessageInteraction = new MessageInteraction(Translation.DropboxAccountCreationErrorMessage, Translation.AddDropboxAccount, MessageOptions.OK, MessageIcon.Warning);
                _interactionRequest.Raise(errorMessageInteraction, IsDoneWithErrorCallback);
                return;
            }

            var accountWithSameId = _accountsProvider.Settings.DropboxAccounts.FirstOrDefault(a => a.AccountId == newAccount.AccountId);

            if (accountWithSameId != null)
            {
                _accountsProvider.Settings.DropboxAccounts.Remove(accountWithSameId);
            }

            _accountsProvider.Settings.DropboxAccounts.Add(newAccount);

            IsDone?.Invoke(this, new MacroCommandIsDoneEventArgs(ResponseStatus.Success));
        }
예제 #16
0
        public void AddAccount_UserAppliesInteraction_NewAccountHasExistingID_NewAccountReplacesOldAccountInAccountsList()
        {
            const string existingID = "ExistingID";
            var          oldAccount = new DropboxAccount {
                AccountId = existingID
            };

            _dropboxAccounts.Add(oldAccount);

            var newAccount = new DropboxAccount {
                AccountId = existingID
            };

            _interactionInvoker.Invoke(Arg.Do <DropboxAccountInteraction>(i =>
            {
                i.Result         = DropboxAccountInteractionResult.Success; //User applies
                i.DropboxAccount = newAccount;
            }));

            _dropboxAccountAddCommand.Execute(null);

            Assert.AreEqual(1, _dropboxAccounts.Count);
            Assert.AreSame(newAccount, _dropboxAccounts.First());
        }
예제 #17
0
        public string GetUserDropBoxData(string UserId)
        {

            List<string> _Images = new List<string>();
            Api.Socioboard.Services.DropboxAccount _DropboxAccount = new DropboxAccount();

            Domain.Socioboard.Domain.DropboxAccount _DropboxUserAccount = new Domain.Socioboard.Domain.DropboxAccount();

            _DropboxUserAccount = Newtonsoft.Json.JsonConvert.DeserializeObject<Domain.Socioboard.Domain.DropboxAccount>(_DropboxAccount.GetDropboxAccountDetailsByUserId(UserId));

            //string _Images = string.Empty;
            oAuthToken _oAuthToken = new oAuthToken();
            _oAuthToken.ConsumerKey = ConfigurationManager.AppSettings["DBX_Appkey"];
            _oAuthToken.ConsumerSecret = ConfigurationManager.AppSettings["DBX_Appsecret"];
            _oAuthToken.Token = _DropboxUserAccount.OauthToken;
            _oAuthToken.TokenSecret = _DropboxUserAccount.OauthTokenSecret;
            //GET USER DASHBOARD
            string _User_DBX_Home = GlobussDropboxLib.Dropbox.Core.Metadata.Metadata.GetDropBoxFolder(ref _oAuthToken, _DropboxUserAccount.AccessToken);

            //CONVERT IN JSON OBJECT
            var _OBJ_HOME = Newtonsoft.Json.Linq.JObject.Parse(_User_DBX_Home);

            //GET FOLDER AND FILES FROM USER HOME 
            foreach (var _OBJ_HOME_item in _OBJ_HOME["contents"])
            {//GET DROPBOX DASHBOARD DATA.

                string is_dir = string.Empty;

                if (_OBJ_HOME_item["is_dir"].ToString() == "true")
                    is_dir = _OBJ_HOME_item["is_dir"].ToString();
                else
                    is_dir = "false";

                string rev = _OBJ_HOME_item["rev"].ToString();
                string path = _OBJ_HOME_item["path"].ToString();
                string icon = _OBJ_HOME_item["icon"].ToString();


                //GET FILES FROM FOLDER 
                if (!string.IsNullOrEmpty(path) && !path.Contains(".pdf") && !path.Contains(".jpg"))//GET FOLDER FROM DROPBOX DASHBOARD.
                {//WHEN FOLDER
                    string _User_DBX_Folder_File = GlobussDropboxLib.Dropbox.Core.Metadata.Metadata.GetDropBoxFiles(ref _oAuthToken, _DropboxUserAccount.AccessToken, "dropbox", path.Replace("/", string.Empty));
                    //CONVERT IN JSON OBJECT
                    var _OBJ_HOME_FOLDER = Newtonsoft.Json.Linq.JObject.Parse(_User_DBX_Folder_File);

                    //GET FOLDER AND FILES FROM USER HOME 
                    foreach (var _OBJ_HOME_FOLDER_item in _OBJ_HOME_FOLDER["contents"])
                    {//GET IMAGE FROM FOLDER.
                        string Filepath = _OBJ_HOME_FOLDER_item["path"].ToString();
                        string _User_DBX_File_Media = GlobussDropboxLib.Dropbox.Core.Media.Media.GetDropBoxDirectlink(ref _oAuthToken, _DropboxUserAccount.AccessToken, Filepath);
                        string _LinkUrl = Newtonsoft.Json.Linq.JObject.Parse(_User_DBX_File_Media)["url"].ToString();

                        if (_LinkUrl.Contains(".jpg") || _LinkUrl.Contains(".png"))
                        {
                            //_Images += "<div class=\"span2\"><div class=\"checkbox check\">"
                            //        + "<input type=\"checkbox\"></div><img id=\"Img1\" src=\"" + _LinkUrl + "\" alt=\"\" style=\"height: 50px;\"></div>";

                            _Images.Add(_LinkUrl);
                        }

                    }//END FOREACH
                }//END IF
                else if (!string.IsNullOrEmpty(path) && !path.Contains(".pdf") && path.Contains(".jpg")) //GET PIC FILE WHEN ITS ADDED ON HOME NOT IN FOLDER.
                { //WHEN PHOTO ON DROPBOX DASHBOARD.
                    string _User_DBX_File_Media = GlobussDropboxLib.Dropbox.Core.Media.Media.GetDropBoxDirectlink(ref _oAuthToken, _DropboxUserAccount.AccessToken, path);
                    string _LinkUrl = Newtonsoft.Json.Linq.JObject.Parse(_User_DBX_File_Media)["url"].ToString();
                    //_Images += "<div class=\"span2\"><div class=\"checkbox check\">"
                    //        + "<input type=\"checkbox\">  </div><img id=\"Img1\" src=\"" + _LinkUrl + "\" alt=\"\" style=\"height: 50px;\"></div>";

                    _Images.Add(_LinkUrl);


                }//END ELSE IF
                else
                {

                }//END ELSE
            }//END FOREACH

            //Response.Write(_Images);
            //return _User_DBX_Home;
            return Newtonsoft.Json.JsonConvert.SerializeObject(_Images);
        }