コード例 #1
0
 public async Task BatchDelete([FromBody] int[] ids)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.BatchDeleteFundInvestorAsync(ids);
     }
 }
コード例 #2
0
        public async Task InvestorBatchUpload(int investorId)
        {
            using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
            {
                foreach (var file in Request.Form.Files)
                {
                    var fileExtension = Path.GetExtension(file.FileName).ToLower();
                    if (fileExtension != ".doc" && fileExtension != ".docx")
                    {
                        throw new ArgumentException($"Invalid file type {fileExtension}.");
                    }
                    var fundInvestor = new FundInvestor {
                        InvestorId = investorId
                    };
                    fundInvestor.Id = await dataAccess.CreateFundInvestorAsync(fundInvestor);

                    using (var readStream = file.OpenReadStream())
                    {
                        await dataAccess.UpdateFundInvestorSideLetterAsync(fundInvestor.Id, file.FileName, readStream);

                        await dataAccess.DeleteProvisionsByFundInvestorAsync(fundInvestor.Id);

                        var paragraphs = fileExtension == ".docx" ? DocumentHelper.ExtractDocxParagraphs(readStream) : DocumentHelper.ExtractDocParagraphs(readStream);
                        foreach (var paragraph in paragraphs.Where(paragraph => !string.IsNullOrWhiteSpace(paragraph)))
                        {
                            await dataAccess.CreateProvisionAsync(new Provision { FundInvestorId = fundInvestor.Id, Content = paragraph });
                        }
                    }
                }
            }
        }
コード例 #3
0
 public async Task <IEnumerable <FundInvestor> > GetListByInvestor(int investorId)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetFundInvestorsByInvestorAsync(investorId));
     }
 }
コード例 #4
0
        public async Task UploadSideLetter(int id)
        {
            using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
            {
                //save the document
                if (Request.Form.Files[0].Length > 0)
                {
                    var fileExtension = Path.GetExtension(Request.Form.Files[0].FileName).ToLower();
                    if (fileExtension != ".doc" && fileExtension != ".docx")
                    {
                        throw new ArgumentException($"Invalid file type {fileExtension}.");
                    }
                    using (var readStream = Request.Form.Files[0].OpenReadStream())
                    {
                        await dataAccess.UpdateFundInvestorSideLetterAsync(id, Request.Form.Files[0].FileName, readStream);

                        await dataAccess.DeleteProvisionsByFundInvestorAsync(id);

                        var paragraphs = fileExtension == ".docx" ? DocumentHelper.ExtractDocxParagraphs(readStream) : DocumentHelper.ExtractDocParagraphs(readStream);
                        foreach (var paragraph in paragraphs.Where(paragraph => !string.IsNullOrWhiteSpace(paragraph)))
                        {
                            await dataAccess.CreateProvisionAsync(new Provision { FundInvestorId = id, Content = paragraph });
                        }
                    }
                }
            }
        }
コード例 #5
0
        public async Task <ActionResult> BatchDownload([FromQuery] string ids)
        {
            using (var ms = new MemoryStream())
            {
                if (!string.IsNullOrWhiteSpace(ids))
                {
                    using (var archive = new ZipArchive(ms, ZipArchiveMode.Create, true))
                    {
                        using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
                        {
                            foreach (var id in ids.Split(','))
                            {
                                var sideLetter = await dataAccess.GetFundInvestorSideLetterAsync(Convert.ToInt32(id));

                                if (sideLetter?.Name != null && sideLetter.Content != null)
                                {
                                    var zipEntry = archive.CreateEntry(sideLetter.Name);
                                    using (var zipEntryStream = zipEntry.Open())
                                    {
                                        zipEntryStream.Write(sideLetter.Content);
                                    }
                                }
                            }
                        }
                    }
                }
                return(File(ms.ToArray(), "application/zip", "SideLetterArchive.zip"));
            }
        }
コード例 #6
0
 public async Task <IEnumerable <Provision> > GetListByFundInvestors([FromBody] List <int> fundInvestorIds)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetProvisionsByFundInvestorsAsync(fundInvestorIds));
     }
 }
コード例 #7
0
 public async Task RemoveSideLetter(int id)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.RemoveFundInvestorSideLetterAsync(id);
     }
 }
コード例 #8
0
 public async Task <Provision> Get(int id)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetProvisionAsync(id));
     }
 }
コード例 #9
0
 public async Task <IEnumerable <string> > SearchProvisionTypes(string query)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.SearchProvisionTypesAsync(query, 10));
     }
 }
コード例 #10
0
 public async Task DeleteByFundInvestor(int fundInvestorId)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.DeleteProvisionsByFundInvestorAsync(fundInvestorId);
     }
 }
コード例 #11
0
 public async Task <IEnumerable <Fund> > GetFavoriteFunds(int?limit = null)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetFavoriteFundsAsync(_user, limit));
     }
 }
コード例 #12
0
 public async Task <int> Post([FromBody] Fund fund)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.CreateFundAsync(fund));
     }
 }
コード例 #13
0
 public async Task <IEnumerable <string> > GetFilterContent([FromBody] FilterContentRequest filterContentRequest)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetFilterContentAsync(filterContentRequest));
     }
 }
コード例 #14
0
 public async Task <Investor> Get(int id)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetInvestorAsync(id, _user));
     }
 }
コード例 #15
0
 public async Task <IEnumerable <Investor> > Get()
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetInvestorsAsync(_user));
     }
 }
コード例 #16
0
 public async Task RemoveMfn(int id)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.RemoveMfnFromFundAsync(id);
     }
 }
コード例 #17
0
 public async Task UpdateIsFavorite(int id, bool value)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.UpdateInvestorIsFavorite(id, _user, value);
     }
 }
コード例 #18
0
 public async Task UpdateLastAccessed(int id)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.UpdateInvestorLastAccessedDate(id, _user);
     }
 }
コード例 #19
0
 public async Task <IEnumerable <Investor> > GetRecentInvestors(int?limit = null)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetRecentInvestorsAsync(_user, limit));
     }
 }
コード例 #20
0
 public async Task Put([FromBody] Fund fund)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.UpdateFundAsync(fund);
     }
 }
コード例 #21
0
 public async Task Put([FromBody] SearchSettings settings)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.UpdateSearchSettingsAsync(settings);
     }
 }
コード例 #22
0
 public async Task <int> Post([FromBody] Investor investor)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.CreateInvestorAsync(investor));
     }
 }
コード例 #23
0
 public async Task <IEnumerable <Investor> > Search(string query)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetInvestorsAsync(_user, query, null, 10));
     }
 }
コード例 #24
0
 public async Task <SearchSettings> Get()
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         return(await dataAccess.GetSearchSettingsAsync());
     }
 }
コード例 #25
0
 public async Task Delete(int id)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.DeleteInvestorAsync(id);
     }
 }
コード例 #26
0
 public async Task Put([FromBody] Investor investor)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         await dataAccess.UpdateInvestorAsync(investor);
     }
 }
コード例 #27
0
 public async Task <IEnumerable <Provision> > GetProvisionResults([FromBody] SearchRequest searchRequestModel)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         searchRequestModel.UserName = _user;
         return(await dataAccess.SearchProvisionsAsync(searchRequestModel));
     }
 }
コード例 #28
0
 public async Task <SearchResults> StandardSearch([FromBody] SearchRequest searchRequestModel)
 {
     using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
     {
         searchRequestModel.UserName = _user;
         return(await dataAccess.GetResultsAsync(searchRequestModel));
     }
 }
コード例 #29
0
        public async Task <ActionResult> DownloadMfn(int fundId)
        {
            using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
            {
                var document = await dataAccess.GetFundMfnAsync(fundId);

                return(File(document.Content, System.Net.Mime.MediaTypeNames.Application.Octet, document.Name));
            }
        }
コード例 #30
0
        public async Task <int> CreateAndFavorite([FromBody] Investor investor)
        {
            using (var dataAccess = new MasterSideLetterDataAccess(_connectionStrings.MasterSideLetterDb))
            {
                var id = await dataAccess.CreateInvestorAsync(investor);

                await dataAccess.UpdateInvestorIsFavorite(id, _user, true);

                return(id);
            }
        }