Пример #1
0
        public async Task <OperationResult> CreatePortfolio(string name, int userId)
        {
            var portfolio = new Core.Entities.Finance.Portfolio()
            {
                Name   = name,
                UserId = userId
            };

            var containsSameNamePortfolio =
                await _financeData.EfContext.Portfolios.AnyAsync(p => p.Name == name && p.UserId == userId);

            if (containsSameNamePortfolio)
            {
                return(new OperationResult()
                {
                    IsSuccess = false,
                    Message = "Порфель с таким именем у Вас уже существует"
                });
            }

            await _financeData.EfContext.Portfolios.AddAsync(portfolio);

            await _financeData.EfContext.SaveChangesAsync();

            return(new OperationResult()
            {
                IsSuccess = true,
                Message = $"Портфель {name} создан успешно"
            });
        }
Пример #2
0
        private OperationResult CommonValidate(int portfolioId, int userId,
                                               Core.Entities.Finance.Portfolio portfolio)
        {
            var validationResult = CommonValidate <int>(portfolioId, userId, portfolio);

            if (validationResult == null)
            {
                return(null);
            }

            return(new OperationResult()
            {
                Message = validationResult.Message,
                IsSuccess = validationResult.IsSuccess
            });
        }
Пример #3
0
        private OperationResult <TResult> CommonValidate <TResult>(int portfolioId, int userId,
                                                                   Core.Entities.Finance.Portfolio portfolio)
        {
            if (portfolio == null)
            {
                return(new OperationResult <TResult>()
                {
                    IsSuccess = false,
                    Message = $"Портфель с id={portfolioId} не найден"
                });
            }

            if (portfolio.UserId != userId)
            {
                return(new OperationResult <TResult>()
                {
                    IsSuccess = false,
                    Message = $"Портфель с id={portfolioId} вам не принадлежит"
                });
            }

            return(null);
        }
Пример #4
0
        private static bool CommonValidate(int price, int amount, AssetType assetType,
                                           Core.Entities.Finance.Portfolio portfolio, out string message)
        {
            if (assetType == null)
            {
                message = "Тип актива не найден";
                return(false);
            }

            if (portfolio == null)
            {
                message = "Портфель не найден";
                return(false);
            }

            if (price < 0 || amount <= 0)
            {
                message = "Некорректные данные";
                return(false);
            }

            message = "";
            return(true);
        }