コード例 #1
0
        /// <summary>
        /// Adds the restricted shares.
        /// </summary>
        /// <param name="shareholderId">The shareholder identifier.</param>
        /// <param name="restricted">The restricted.</param>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        public async Task AddRestrictedShares(Guid shareholderId, long restricted,
                                              CompanyAddOptionPoolToShareholderModel model)
        {
            Guid shareAccountId;
            var  query = _shareAccountRepository.GetManyAsNoTracking(x =>
                                                                     x.ShareholderId == shareholderId &&
                                                                     x.ShareTypeCode.ToLower().Contains(RefShareTypeCode.Restricted)).FirstOrDefault();

            if (query == null)
            {
                var account = new ShareAccount
                {
                    ShareAmount   = restricted,
                    ShareholderId = shareholderId,
                    ShareTypeCode = RefShareTypeCode.Restricted
                };
                var inserted = _shareAccountRepository.Insert(account).Entity;
                shareAccountId = inserted.ShareAccountId;
            }
            else
            {
                query.ShareAmount += restricted;
                _shareAccountRepository.Update(query);
                shareAccountId = query.ShareAccountId;
            }
            await _restrictedShareService.AddRetrictedShares(model.ConvertibleRatio, model.ConvertibleTime, shareAccountId);
        }
コード例 #2
0
        /// <summary>
        /// Creates the shares account.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        public async Task <ShareAccount> CreateSharesAccount(SharesAccountCreateModel model)
        {
            var sharesAccount = new ShareAccount
            {
                ShareAmount   = model.ShareAmount,
                ShareholderId = model.ShareholderId,
                ShareTypeCode = model.ShareTypeCode
            };
            var result = _shareAccountRepository.Insert(sharesAccount).Entity;
            await _unitOfWork.CommitAsync();

            return(result);
        }