예제 #1
0
        public async Task <IActionResult> Edit(FullPortfolio fullPortfolio, IFormFileCollection files)
        {
            int    idCookie       = 0;
            string statusPassword = "";

            if (Request.Cookies.ContainsKey("IdUser") && Request.Cookies.ContainsKey("UserPassword"))
            {
                idCookie       = int.Parse(Request.Cookies["IdUser"]);
                statusPassword = Request.Cookies["UserPassword"];
            }

            if (statusPassword == "true" && idCookie > 0)
            {
                if (ModelState.IsValid)
                {
                    if (fullPortfolio.OnePortfolio != null)
                    {
                        fullPortfolio.OnePortfolio.IdUser = idCookie;
                    }
                    _context.Update(fullPortfolio.OnePortfolio);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    return(View(fullPortfolio));
                }


                ImgPortfolio img = new ImgPortfolio();

                foreach (var file in files)
                {
                    if (file != null)
                    {
                        byte[] imageData = null;

                        using (var fileStream = file.OpenReadStream())
                            using (var ms = new MemoryStream())
                            {
                                fileStream.CopyTo(ms);
                                imageData = ms.ToArray();
                            }


                        string type = file.ContentType;
                        img.IdUser      = idCookie;
                        img.IdPortfolio = fullPortfolio.OnePortfolio.IdPortfolio;
                        img.IdImg       = 0;
                        img.DataImg     = imageData;
                        img.TypeImg     = type;

                        _context.Add(img);
                    }
                    await _context.SaveChangesAsync();


                    var portfolio = _context.UserPortfolio.Find(fullPortfolio.OnePortfolio.IdPortfolio);
                    try
                    {
                        var imgMain = _context.ImgPortfolio.Find(portfolio.MainImg);
                    }
                    catch (NullReferenceException)
                    {
                        var findImg = _context.ImgPortfolio.Where(p => p.IdPortfolio == fullPortfolio.OnePortfolio.IdPortfolio).Max(p => p.IdImg);
                        if (findImg > 1)
                        {
                            portfolio.MainImg = findImg;
                            _context.Update(portfolio);
                            await _context.SaveChangesAsync();
                        }
                        else
                        {
                            portfolio.MainImg = 2;
                        }
                    }
                }
                return(RedirectToRoute(new
                {
                    controller = "UserPortfolio",
                    action = "Details",
                    id = fullPortfolio.OnePortfolio.IdPortfolio
                }));
            }
            else
            {
                return(Redirect("/UserAuthorization/Index"));
            }
        }
예제 #2
0
        public async Task <IActionResult> Create(UserPortfolio userPortfolio, IFormFileCollection files)
        {
            int    id             = 0;
            string statusPassword = "";

            if (Request.Cookies.ContainsKey("IdUser") && Request.Cookies.ContainsKey("UserPassword"))
            {
                id             = int.Parse(Request.Cookies["IdUser"]);
                statusPassword = Request.Cookies["UserPassword"];
            }

            if (statusPassword == "true" && id > 0)
            {
                if (ModelState.IsValid)
                {
                    userPortfolio.DatePortfolio = DateTime.Now;
                    userPortfolio.IdUser        = id;
                    _context.Add(userPortfolio);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    return(View(userPortfolio));
                }

                ImgPortfolio img = new ImgPortfolio();

                int count = 0;
                count = _context.UserPortfolio.Max(p => p.IdPortfolio);

                foreach (var file in files)
                {
                    if (file != null)
                    {
                        byte[] imageData = null;

                        using (var fileStream = file.OpenReadStream())
                            using (var ms = new MemoryStream())
                            {
                                fileStream.CopyTo(ms);
                                imageData = ms.ToArray();
                            }

                        string type = file.ContentType;
                        img.IdPortfolio = count;
                        img.IdImg       = 0;
                        img.DataImg     = imageData;
                        img.IdUser      = id;
                        img.TypeImg     = type;

                        _context.Add(img);
                    }
                    await _context.SaveChangesAsync();

                    int lastIdImg     = _context.ImgPortfolio.Max(p => p.IdImg);
                    int lastPortfolio = _context.UserPortfolio.Max(p => p.IdPortfolio);
                    var portfolio     = _context.UserPortfolio.Find(lastPortfolio);
                    portfolio.MainImg = lastIdImg;
                    _context.Update(portfolio);
                    await _context.SaveChangesAsync();
                }
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(Redirect("/UserAuthorization/Index"));
            }
        }