示例#1
0
        public IActionResult Edit(Guid id, PortfolioViewModel model)
        {
            if (ModelState.IsValid)
            {
                PortfolioItem portf = _portfolio.Entity.GetById(id);
                portf.ProjectName = model.ProjectName;
                portf.Description = model.Description;

                string uniqueFileName = null;
                if (model.File != null)
                {
                    string extFile = Path.GetExtension(model.File.FileName);
                    if (extFile != ".jpg" && extFile != ".png")
                    {
                        ModelState.AddModelError("", "Invalid File Format");
                        return(View(model));
                    }
                    uniqueFileName = CreateFilePhotoPortfolio(model);
                    //wwwroot/assets/img/portfolio/nom.png
                    if (portf.ImageUrl != null)
                    {
                        string oldPhotoPortfolio = Path.Combine(_hosting.WebRootPath, @"assets\img\portfolio", portf.ImageUrl);
                        System.IO.File.Delete(oldPhotoPortfolio);
                    }

                    portf.ImageUrl = uniqueFileName;

                    _portfolio.Entity.Update(portf);
                    _portfolio.Save();
                }

                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
        // GET: Portfolio
        public ActionResult Index()
        {
            var result = new PortfolioViewModel();

            using (TouchContext db = new TouchContext())
            {
                var projects = db.Projects.Include("Category").Include("ProjectImages").ToList();
                result.Projects = new List <HomeProjectViewModel>();
                foreach (var project in projects)
                {
                    var temp = new HomeProjectViewModel();
                    temp.Id       = project.Id;
                    temp.Name     = project.Name;
                    temp.Category = project.Category.Name;
                    if (project.SubCategoryId != null && project.SubCategoryId > 0)
                    {
                        temp.SubCategory = db.SubCategories.SingleOrDefault(e => e.Id == project.SubCategoryId.Value).Name;
                    }
                    if (project.ProjectImages.Any())
                    {
                        temp.FileName = project.ProjectImages.FirstOrDefault().FileName;
                    }
                    result.Projects.Add(temp);
                }
                result.Categories    = db.Categories.Include("Subcategories").ToList();
                result.SubCategories = db.SubCategories.ToList();
            }
            return(View(result));
        }
示例#3
0
        public async Task <PortfolioViewModel> UpdateUserAsync(PortfolioViewModel userModel)
        {
            var oldUser = await GetByEmailAsync(userModel.Email);

            var user = _mapper.Map <Artist>(userModel);

            user.Id = oldUser.Id;

            user.Followers = oldUser.Followers;

            if (userModel.Password == null)
            {
                user.Password = oldUser.Password;
            }
            if (userModel.Avatar == null)
            {
                user.Avatar = oldUser.Avatar;
            }

            var builder = Builders <Artist> .Filter;
            var filter  = builder.Eq(el => el.Email, userModel.Email);
            var options = new FindOneAndUpdateOptions <Post>();

            options.ReturnDocument = ReturnDocument.After;

            await _context.Artists.ReplaceOneAsync(filter, user);

            UpdateFriendsUserInfo(user);
            UpdatePostsUserInfo(user);
            UpdateCommentsUserInfo(user);

            return(userModel);
        }
示例#4
0
        public IActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var portfolioItem = _portfolio.Entity.GetById(id);

            if (portfolioItem == null)
            {
                return(NotFound());
            }

            PortfolioViewModel portfolioViewModel = new PortfolioViewModel
            {
                Id          = portfolioItem.Id,
                ProjectName = portfolioItem.ProjectName,
                Description = portfolioItem.Description,
                ImageUrl    = portfolioItem.ImageUrl,
                UrlGitHub   = portfolioItem.UrlGitHub,
                UrlView     = portfolioItem.UrlView,
            };

            return(View(portfolioViewModel));
        }
        public async Task <IActionResult> Index()
        { //todo: разнести все из индекста по секциям
            var investors = await dbContext.Investors.ToListAsync();

            var assets = dbContext.Assets.ToList();

            CalculateAveragePrices(assets);

            var totalInvested = investors.Sum(i => i.AmountInvested);

            var sum = assets.Sum(a => a.Price * a.Quantity);

            var totalShares = investors.Sum(investor => investor.SharesReceived);

            CalculateNavPercents(out var nav1WValue, out var nav1MValue, out var nav3MValue);

            //SetChart();
            //  GenerateLineChart();

            _viewModel = new PortfolioViewModel
            {
                Assets = assets.OrderByDescending(a => a.ShortName == "USD").ThenByDescending(a => a.ShortName == "BTC")
                         .ThenByDescending(a => (a.Price * a.Quantity) / sum).ToList(),
                AssetsUnderManagement = sum,
                Acquisition           = totalInvested,
                TotalInvested         = totalInvested,
                NetAssetValue         = sum / totalShares,
                Nav1W  = nav1WValue,
                Nav1M  = nav1MValue,
                Nav3M  = nav3MValue,
                HasBtc = assets.Exists(item => item.ShortName == "BTC")
            };

            return(View(_viewModel));
        }
示例#6
0
        public PortfolioViewModel PostPortfolio(PortfolioViewModel portfolioVM)
        {
            var DuplicatePorfo = _context.Portfolios.Where(x => x.PortfoName == portfolioVM.PortfoName).FirstOrDefault();

            if (DuplicatePorfo != null)
            {
                throw new ArgumentException("Duplicate Portfolio");
            }
            else
            {
                try
                {
                    _context.Portfolios.Add(new Portfolio()
                    {
                        PortfoName = portfolioVM.PortfoName,
                        IdCategory = portfolioVM.IdCategory,
                        ImageByte  = portfolioVM.ImageByte,
                        ImagePath  = portfolioVM.ImagePath,
                        ImageTitle = portfolioVM.ImageTitle
                    });

                    _context.SaveChanges();

                    return(portfolioVM);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
示例#7
0
        public IActionResult Index()
        {
            var model = new PortfolioViewModel(cryptoDataModel.GetAll());

            return(View(model));
            //return Content("supp my guy");
        }
        public async Task <IActionResult> Index(string sortOrder)
        {
            var currentUser = await _userManager.GetUserAsync(User);

            if (currentUser == null)
            {
                return(Challenge());
            }

            ViewData["DateSortParm"]             = sortOrder == "Date" ? "date_desc" : "Date";
            ViewData["TotalValueSortParm"]       = sortOrder == "TotalValue" ? "totalvalue_desc" : "TotalValue";
            ViewData["DayGainSortParm"]          = sortOrder == "DayGain" ? "daygain_desc" : "DayGain";
            ViewData["DayGainPercentSortParm"]   = sortOrder == "DayGainPercent" ? "daygainpercent_desc" : "DayGainPercent";
            ViewData["TotalGainSortParm"]        = sortOrder == "TotalGain" ? "totalgain_desc" : "TotalGain";
            ViewData["TotalGainPercentSortParm"] = sortOrder == "TotalGainPercent" ? "totalgainpercent_desc" : "TotalGainPercent";

            var portfolioSnapshots = await _portfolioService.GetPortfolioSnapshotsAsync(currentUser, sortOrder);

            var model = new PortfolioViewModel()
            {
                PortfolioSnapshots = portfolioSnapshots
            };

            return(View(model));
        }
示例#9
0
        public IActionResult Create(PortfolioViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = "inter.jpg";
                if (model.File != null)
                {
                    string extFile = Path.GetExtension(model.File.FileName);
                    if (extFile != ".jpg" && extFile != ".png")
                    {
                        ModelState.AddModelError("", "Invalid File Format");
                        return(View(model));
                    }
                    uniqueFileName = CreateFilePhotoPortfolio(model);
                }

                PortfolioItem portfolioItem = new PortfolioItem
                {
                    ProjectName = model.ProjectName,
                    Description = model.Description,
                    ImageUrl    = uniqueFileName
                };

                _portfolio.Entity.Insert(portfolioItem);
                _portfolio.Save();
                return(RedirectToAction(nameof(Index)));
            }

            return(View(model));
        }
示例#10
0
        protected virtual async void OnAddButtonClicked(object sender, EventArgs e)
        {
            PortfolioViewModel viewModel = (PortfolioViewModel)this.BindingContext;
            int?index = await this.DisplaySelectionBox(
                "Add Instrument",
                "Interest Rate Swap (IRS)", "Cross Currency Swap", "Equity Swap"
                );

            if (index == null)
            {
                return;
            }

            string instrumentType;

            switch (index)
            {
            case 0:
                instrumentType = "IRS";
                break;

            case 1:
                instrumentType = "CCS";
                break;

            case 2:
                instrumentType = "Equity Swap";
                break;

            default:
                throw new NotSupportedException();
            }

            await viewModel.AddInstrument(instrumentType);
        }
        public IActionResult Create(PortfolioViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.File != null)
                {
                    string uploads  = Path.Combine(_hosting.WebRootPath, @"img\portfolio");
                    string fullpath = Path.Combine(uploads, model.File.FileName);
                    model.File.CopyTo(new FileStream(fullpath, FileMode.Create));

                    PortfolioItems portfolioItems = new PortfolioItems
                    {
                        ProjectName = model.ProjectName,
                        Description = model.Description,
                        ImageUrl    = model.File.FileName
                    };
                    _portfolio.Entity.Insert(portfolioItems);
                    _portfolio.Save();
                }
                else
                {
                    PortfolioItems portfolioItems = new PortfolioItems
                    {
                        ProjectName = model.ProjectName,
                        Description = model.Description,
                        ImageUrl    = "Avatar.jpg"
                    };
                    _portfolio.Entity.Insert(portfolioItems);
                    _portfolio.Save();
                }

                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
示例#12
0
        public ActionResult Portfolio()
        {
            var model = new PortfolioViewModel();

            model.Projects = _dataContext.Projects
                             .AsNoTracking()
                             .Select(x => new
            {
                Project = x,
                Types   = x.Types,
            })
                             .OrderBy(x => x.Project.Title)
                             .ToList()
                             .Select(x =>
            {
                x.Project.Types = x.Types.ToList();
                return(x.Project);
            })
                             .ToList();

            model.ProjectTypes = model.Projects
                                 .SelectMany(x => x.Types)
                                 .GroupBy(x => x.Id)
                                 .Select(x => x.First())
                                 .OrderBy(x => x.Title)
                                 .ToList();

            return(View(model));
        }
        public async Task <IActionResult> Create(PortfolioViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            if (!_fileManager.ValidateUploadedFile(viewModel.PortfolioThumbnailFile, UploadFileType.Image, 4, ModelState))
            {
                return(View(viewModel));
            }

            string fileName = await _fileManager.UploadFileAsync(viewModel.PortfolioThumbnailFile, new List <string> {
                "images", "portfolio", "thumb"
            });

            var portfolio = _mapper.Map <PortfolioViewModel, Portfolio>(viewModel);

            portfolio.PortfolioThumbnail = fileName;
            portfolio.PortfolioCategory  = string.Join(",", viewModel.PortfolioCategoryList);

            await _mediator.Send(new AddNewPortfolioCommand { Portfolio = portfolio });

            TempData["PonrtfolioMessage"] = "پورتفولیو با موفقیت ثبت شد.";
            return(RedirectToAction("ManagePortfolio"));
        }
        public async Task <IActionResult> Create(PortfolioViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.File != null)
                {
                    string uploads  = Path.Combine(_hosting.WebRootPath, @"img\portfolio");
                    string fullPath = Path.Combine(uploads, model.File.FileName);
                    model.File.CopyTo(new FileStream(fullPath, FileMode.Create));
                }

                PortfolioItem portfolioItem = new PortfolioItem
                {
                    ProjectName = model.ProjectName,
                    Description = model.Description,
                    ImageUrl    = model.File.FileName
                };

                _portfolio.Entity.Create(portfolioItem);
                _portfolio.Save();
                return(RedirectToAction(nameof(Index)));
            }

            return(View(model));
        }
示例#15
0
        public IActionResult Index(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }

            PortfolioViewModel portfolioViewModel = HttpContext.Session.GetObjectFromJson <PortfolioViewModel>("selected_port_viewmodel");

            if (portfolioViewModel == null)
            {
                Portfolio portfolio = _context.Portfolio.Include(p => p.PortfolioAssets).Single(m => m.ID == id);
                if ((portfolio == null) || (portfolioViewModel.ID != id))
                {
                    return(HttpNotFound());
                }
                Builder builder = new Builder(_context);
                PortfolioDomainModel portfolioDomainModel = builder.GetPortfolioDomainModel(portfolio);
                portfolioViewModel = builder.GetPortfolioViewModel(portfolioDomainModel);
                HttpContext.Session.SetObjectAsJson("selected_port_viewmodel", portfolioViewModel);
            }
            MonteCarloViewModel blankMonte = new MonteCarloViewModel();

            // blankMonte.PortfolioViewModel = portfolioViewModel;
            return(View(blankMonte));
        }
示例#16
0
        protected virtual void OnDeleteButtonClicked(object sender, EventArgs e)
        {
            MenuItem           mi        = (MenuItem)sender;
            PortfolioViewModel viewModel = (PortfolioViewModel)this.BindingContext;

            viewModel.RemoveInstrumentCommand.Execute(mi.CommandParameter);
        }
示例#17
0
        public IActionResult Post([FromBody] PortfolioViewModel model)
        {
            var portfolio = new Portfolio(model.Name);

            _portfolioRepository.Add(portfolio);
            return(Ok(_portfolioRepository.GetPortfolio(portfolio.Id)));
        }
示例#18
0
        public async Task <ActionResult> Details(int?id)
        {
            PortfolioViewModel portfolioViewModel = HttpContext.Session.GetObjectFromJson <PortfolioViewModel>("selected_port_viewmodel");

            if (id == null)
            {
                return(HttpNotFound());
            }
            if ((portfolioViewModel == null) || (portfolioViewModel.ID != id))
            {
                Portfolio portfolio = await _context.Portfolio.Include(p => p.PortfolioAssets).SingleAsync(m => m.ID == id);

                if (portfolio == null)
                {
                    return(HttpNotFound());
                }
                Builder builder = new Builder(_context);
                PortfolioDomainModel portfolioDomainModel = builder.GetPortfolioDomainModel(portfolio);
                portfolioViewModel = builder.GetPortfolioViewModel(portfolioDomainModel);
                HttpContext.Session.SetObjectAsJson("selected_port_viewmodel", portfolioViewModel);
            }
            if (portfolioViewModel.Stocks.Count() < 1)
            {
                return(RedirectToAction("AddStock", new { id = id }));
            }
            return(View(portfolioViewModel));
        }
示例#19
0
        public JsonResult GetPortfolio()
        {
            int userId = UserContext.Instance.UserId;

            if (userId != 0)
            {
                PortfolioViewModel             viewModel = new PortfolioViewModel();
                List <PortfolioStockViewModel> folio     = new List <PortfolioStockViewModel>();
                var portfolioRecords = _core.GetPortfolio().Where(p => p.UserId == userId);
                var stocks           = _core.GetStocks().Where(s => portfolioRecords.Select(p => p.StockId).Contains(s.ID));
                foreach (var portfolio in portfolioRecords)
                {
                    var stock = stocks.Where(s => s.ID == portfolio.StockId).FirstOrDefault();
                    PortfolioStockViewModel v = new PortfolioStockViewModel()
                    {
                        Price    = stock.LastPrice,
                        Quantity = portfolio.Quantity,
                        Symbol   = stock.Symbol
                    };
                    viewModel.Folio.Add(v);
                }
                viewModel.FolioValue = _core.GetPortfolioValue(userId);
                viewModel.UserCash   = _core.GetUserCash(userId);
                return(Json(viewModel, JsonRequestBehavior.AllowGet));
            }
            return(Json(new HttpStatusCodeResult(System.Net.HttpStatusCode.InternalServerError, "You need to be signed in to use this page"), JsonRequestBehavior.AllowGet));
        }
示例#20
0
        private PortfolioViewModel GetViewModel(PortfolioDataModel dataModel)
        {
            var viewModel = new PortfolioViewModel()
            {
                Id                  = dataModel.Id,
                FirstName           = dataModel.FirstName,
                LastName            = dataModel.LastName,
                PhoneNumber         = dataModel.PhoneNumber,
                Email               = dataModel.Email,
                Age                 = dataModel.Age,
                EducationHighSchool = dataModel.EducationHighSchool,
                EducationCollege    = dataModel.EducationCollege,
                Experience          = dataModel.Experience,
                ExperienceYears     = dataModel.ExperienceYears,
                AboutMe             = dataModel.AboutMe,
                Services            = dataModel.Services,
                Facebook            = dataModel.Facebook,
                Twitter             = dataModel.Twitter,
            };


            Image img  = Image.FromFile(dataModel.ImageLocation);
            var   barr = ImageToByteArray(img);

            viewModel.Image = Convert.ToBase64String(barr);

            return(viewModel);
        }
示例#21
0
#pragma warning disable CS1998 // Cette méthode async n'a pas d'opérateur 'await' et elle s'exécutera de façon synchrone
        public async Task <IActionResult> Create(PortfolioViewModel model)
#pragma warning restore CS1998 // Cette méthode async n'a pas d'opérateur 'await' et elle s'exécutera de façon synchrone
        {
            if (ModelState.IsValid)
            {
                if (model.File != null)
                {
                    string uploads  = Path.Combine(_hosting.WebRootPath, @"img\portfolio");
                    string fullPath = Path.Combine(uploads, model.File.FileName);
                    model.File.CopyTo(new FileStream(fullPath, FileMode.Create));
                }

                PortfolioItem portfolioItem = new PortfolioItem
                {
                    Name        = model.Name,
                    Description = model.Description,
                    ImageUrl    = model.File.FileName
                };

                _portfolio.Entity.Insert(portfolioItem);
                _portfolio.Save();
                return(RedirectToAction(nameof(Index)));
            }

            return(View(model));
        }
示例#22
0
        public PortfolioViewModel GetPortfolioViewModel(PortfolioDomainModel portfolioDomainModel)
        {
            string expectedReturn;

            if (((portfolioDomainModel.ExpectedReturn) * 100M).ToString().Length > 3)
            {
                expectedReturn = ((portfolioDomainModel.ExpectedReturn) * 100M).ToString().Substring(0, 4);
            }
            else
            {
                expectedReturn = ((portfolioDomainModel.ExpectedReturn) * 100M).ToString();
            }

            PortfolioViewModel portfolioViewModel = new PortfolioViewModel {
                ID                   = portfolioDomainModel.ID,
                Name                 = portfolioDomainModel.Name,
                DateCreated          = portfolioDomainModel.DateCreated,
                ExpectedReturnString = string.Format("{0}%", expectedReturn),
                ExpectedReturnDouble = (double)portfolioDomainModel.ExpectedReturn,
                Variance             = portfolioDomainModel.Variance,
                DollarValue          = portfolioDomainModel.DollarValue
            };

            portfolioViewModel.Stocks = (GetStockViewModels(portfolioDomainModel.Stocks));
            return(portfolioViewModel);
        }
示例#23
0
        public PortfolioPage()
        {
            InitializeComponent();

            var portfolioViewModel = new PortfolioViewModel();

            portfolioListView.ItemsSource = portfolioViewModel.PortfolioList;
        }
        public ActionResult _ManagePortfolio(PortfolioViewModel viewModel)
        {
            var data = portfolioService.ManagePortfolio(viewModel);

            return(new JsonResult {
                Data = data
            });
        }
        public ActionResult Index()
        {
            var viewModel = new PortfolioViewModel();

            viewModel     = portfolioService.GetPortfolioViewModel();
            ViewBag.Title = viewModel.PortfolioConfig.WebsiteTitle;
            return(View(viewModel));
        }
示例#26
0
        public PortfolioPage()
        {
            InitializeComponent();
            BindingContext = new PortfolioViewModel();

            // Center the text of the titleview
            NavBarLayout.Children.Add(NavBarTitle, new Rectangle(0.5, 0.5, 0.9, 1), AbsoluteLayoutFlags.All);
        }
示例#27
0
        public PortfolioViewModel GetFullPortfolio(User user, int id)
        {
            PortfolioViewModel vm = new PortfolioViewModel();

            //vm = cPortHandler.GetFullPortfolio(id, user.Currency.CurrencyId, user.Licence.Stocks.Select(t => t.id).ToList());
            vm = cPortHandler.openPortfolio(id, user.Currency.CurrencyId, user.Licence.Stocks.Select(t => t.id).ToList());
            return(vm);
        }//GetFullPortfolio
示例#28
0
        protected virtual void OnListItemTapped(object sender, ItemTappedEventArgs e)
        {
            PortfolioViewModel viewModel = (PortfolioViewModel)this.BindingContext;

            viewModel.EditInstrumentCommand.Execute(e.Item);
            ListView list = sender as ListView;

            list.SelectedItem = null;
        }
示例#29
0
        public PortfolioViewModel MapPortfolioToViewModel(IPortfolio portfolio)
        {
            var viewModel = new PortfolioViewModel();

            viewModel.Statistics           = _statisticMapper.MapStatisticToViewModel(portfolio.Statistics);
            viewModel.Histogram            = portfolio.Histogram;
            viewModel.SuccessProbabilities = portfolio.SuccessProbabilities;
            return(viewModel);
        }
示例#30
0
        //  [Authorize] // add access_token in header "Authorization": "Bearer " + access_token
        public async Task <ActionResult <PortfolioViewModel> > Update(PortfolioViewModel data)
        {
            var portfolio = _mapper.Map <PortfolioDTO>(data);


            var updatePortfolioDto = await _portfolioService.UpdatePortfolioData(portfolio);

            return(_mapper.Map <PortfolioViewModel>(updatePortfolioDto));
        }