public ApiContext GetAuthorizedContext(PelicanContext pelicanContext,
                                               Guid companyFileId)
        {
            var keyService = new OAuthKeyService(this);

            var configuration = new ApiConfiguration(pelicanContext.ClientKey,
                                                     pelicanContext.ClientSecret,
                                                     pelicanContext.RedirectUrl);

            // get companyfiles
            var cfService = new CompanyFileService(configuration,
                                                   null,
                                                   keyService);
            var companyFiles = cfService.GetRange();

            // select
            var companyFile = companyFiles.FirstOrDefault(_ => _.Id == companyFileId);

            // fetch accounts
            var credentials = new CompanyFileCredentials("Administrator",
                                                         "");

            return(new ApiContext
            {
                ApiConfiguration = configuration,
                CompanyFileCredentials = credentials,
                KeyService = keyService,
                CompanyFile = companyFile,
            });
        }
 public void SetUp()
 {
     _configuration = Substitute.For <IApiConfiguration>();
     _webFactory    = new TestWebRequestFactory();
     _service       = new CompanyFileService(_configuration, _webFactory);
     _configuration.ApiBaseUrl.Returns(ApiRequestHandler.ApiRequestUri.AbsoluteUri);
 }
Beispiel #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // Load all files from cloud and local simultaneously
            lblCode.Text = SessionManager.Code;
            var cfsCloud = new CompanyFileService(SessionManager.MyConfiguration, null, SessionManager.MyOAuthKeyService);

            CompanyFile[] a = cfsCloud.GetRange();
            CompanyFiles         = a;
            GridView1.DataSource = a;
            GridView1.DataBind();
        }
Beispiel #4
0
        public ActionResult List()
        {
            var files = CompanyFileService.GetAll().Where(f => f.UserID == User.UserID ||
                                                          f.CompanyID == User.CompanyID)
                        .OrderByDescending(x => x.Id)
                        .ToList();

            return(BaseView(Views.CompanyFile.List, new CompanyFileListVM {
                Files = files, User = User
            }));
        }
Beispiel #5
0
        public ActionResult Edit(CompanyFileVM model)
        {
            if (model.CompanyFile == null)
            {
                model.CompanyFile = new CompanyFile();
            }
            model.UploadFile = CompanyFiles.GetUploadFile(Request.Files[0]);
            if (!FluentValidate(model))
            {
                return(RedirectBack());
            }


            CompanyFile companyFile = null;

            if (model.CompanyFile.Name.IsEmpty())
            {
                model.CompanyFile.Name = model.UploadFile.Name;
            }
            if (model.IsNew)
            {
                companyFile             = model.CompanyFile;
                companyFile.UserID      = User.UserID;
                companyFile.SysFileName = model.UploadFile.Name;
                CompanyFileService.InsertAndSubmit(companyFile);
            }
            else
            {
                var userFileId = model.CompanyFile.Id;
                companyFile = CompanyFileService.GetByPK(userFileId);
                if (companyFile.UserID != User.UserID)
                {
                    throw new NotOwnerException("File");
                }
                companyFile.Update(model.CompanyFile, x => x.Name, x => x.CompanyID);

                if (!model.UploadFile.IsEmpty)
                {
                    companyFile.SysFileName = model.UploadFile.Name;
                }


                CompanyFileService.SubmitChanges();
            }

            if (!model.UploadFile.IsEmpty)
            {
                CompanyFiles.DeleteFile(companyFile.Id);
                var hpf = Request.Files[0];
                hpf.SaveAs(CompanyFiles.GetUserFileSys(companyFile.Id, model.UploadFile.Name));
            }

            return(RedirectToAction(() => List()));
        }
Beispiel #6
0
        public ActionResult Files(int id)
        {
            var files = CompanyFileService.GetAll(x => x.CompanyID == id).ToList();
            var name  = CompanyService.GetValues(id, x => x.CompanyName);
            var model = new OrgFileListVM {
                CompanyFiles = files,
                CompanyName  = name
            };

            return(BaseViewWithModel(new OrgFileListView(), model));
        }
Beispiel #7
0
        public ActionResult Delete(int fileID)
        {
            var file = CompanyFileService.GetByPK(fileID);

            if (file.UserID != User.UserID)
            {
                throw new NotOwnerException("File");
            }
            CompanyFileService.DeleteAndSubmit(file);
            CompanyFiles.DeleteFile(file.Id);
            return(RedirectBack());
        }
Beispiel #8
0
        internal CompanyFileWithResources Login(CompanyFile companyFile, string userId, string password)
        {
            var _login = new LoginContext {
                Username = userId, Password = password
            };

            var _service = new CompanyFileService(APIConfiguration, null, KeyService);

            CompanyFileResource = _service.Get(companyFile, _login);
            CompanyCredential   = new CompanyFileCredentials(userId, password);
            return(CompanyFileResource);
        }
Beispiel #9
0
        public static void ListFiles()
        {
            var configuration = new ApiConfiguration("http://localhost:8080/accountright");
            var cfService     = new CompanyFileService(configuration);
            var companyFiles  = cfService.GetRange();
            var companyFile   =
                companyFiles.FirstOrDefault(x => new Version(x.ProductVersion) >= new Version("2015.3"));
            var credentials    = new CompanyFileCredentials("Administrator", "");
            var accountService = new AccountService(configuration);
            var accounts       = accountService.GetRange(companyFile, null, credentials);

            MessageBox.Show($"{accounts.Count} accounts");
        }
Beispiel #10
0
        //http://codereview.stackexchange.com/questions/42652/chaining-tasks-with-async-await
        public t.Task <CompanyFile[]> GetCompanyFiles(ApiConfiguration configuration, IOAuthKeyService authKeyService)
        {
            var tcs = new t.TaskCompletionSource <CompanyFile[]>();

            t.Task.Run(
                async() =>
            {
                var cfsCloud = new CompanyFileService(configuration, null, authKeyService);
                var files    = await cfsCloud.GetRangeAsync();
                tcs.SetResult(files);
            });
            return(tcs.Task);
        }
Beispiel #11
0
        public ActionResult Edit(int fileID)
        {
            var file = CompanyFileService.GetByPK(fileID);

            if (file.UserID != User.UserID)
            {
                throw new PermissionException("file edit");
            }
            var model = new CompanyFileVM {
                CompanyFile = file,
                User        = User
            };

            InitModel(model);
            return(BaseView(Views.CompanyFile.Edit, model));
        }
Beispiel #12
0
 public void FetchFile(IApiConfiguration configurationCloud, IWebRequestFactory webRequestFactory, IOAuthKeyService keyService, string inFilename)
 {
     try
     {
         ServiceLogger.Log("In fetch File");
         FileName           = inFilename;
         ConfigurationCloud = configurationCloud;
         MyOAuthKeyService  = keyService;
         var cfsCloud = new CompanyFileService(configurationCloud, null, keyService);
         cfsCloud.GetRange(OnComplete, OnError);
     }
     catch (Exception ex)
     {
         ServiceLogger.LogException("Exception in FetchFile", ex);
     }
 }
Beispiel #13
0
        /// <summary>
        /// Event that is called when the form loads
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <remarks></remarks>
        private void CompanyFilesLoad(object sender, EventArgs e)
        {
            try
            {
                ShowSpinner();

                //If developer key  enable (see above) and set useCVloud to true the following section manages OAuth token and accessing cloud service
                if (UseCloud)
                {
                    _configurationCloud = new ApiConfiguration(DeveloperKey, DeveloperSecret, "http://desktop");
                    _oAuthKeyService    = new OAuthKeyService();

                    //Get tokens if not stored
                    if (_oAuthKeyService.OAuthResponse == null)
                    {
                        var oauthService = new OAuthService(_configurationCloud);
                        _oAuthKeyService.OAuthResponse =
                            oauthService.GetTokens(OAuthLogin.GetAuthorizationCode(_configurationCloud));
                    }

                    // Load all files from cloud and local simultaneously
                    var cfsCloud = new CompanyFileService(_configurationCloud, null, _oAuthKeyService);
                    cfsCloud.GetRange(OnComplete, OnError);
                }

                _configurationLocal = new ApiConfiguration(LocalApiUrl);
                var cfsLocal = new CompanyFileService(_configurationLocal);
                cfsLocal.GetRange(OnComplete, OnError);

                //' The following two lines can be called to run synchronously rather than async
                //_companyFiles = cfs.GetRange()
                //dgvCompanyFiles.DataSource = _companyFiles
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }