Exemplo n.º 1
0
        public ActionResult Index(Medium model, HttpPostedFileBase file, string submit)
        {
            var listSource = new List <KeyValuePair <string, string> >()
            {
                new KeyValuePair <string, string>("SAT", "SAT"),
                new KeyValuePair <string, string>("IELTS", "IELTS"),
                //new KeyValuePair<string, string>("SAT","SAT"),
            };

            ViewBag.ListSource = new SelectList(listSource, "Key", "Value");
            var medias = _mediaRepo.GetAll().OrderByDescending(t => t.CreatedDate);

            if (ModelState.IsValidField("DisplayName"))
            {
                string file_name = string.Empty, file_src = string.Empty;
                if (submit == "Hủy")
                {
                    return(RedirectToAction("Index"));
                }
                else if (submit == "Thêm")
                {
                    //for (int i = 0; i < Request.Files.Count; i++)
                    //{
                    var _file = Request.Files[0];

                    if (_file != null && _file.ContentLength > 0)
                    {
                        if (_file.ContentLength > 2000000)
                        {
                            ModelState.AddModelError("DisplayName", "Tên tài liệu không được để trống");
                            ViewBag.ErrorMessage = "Dung lượng file quá giới hạn";

                            ViewBag.Medias = medias;
                            return(View(model));
                        }
                        var fileName = Path.GetFileName(_file.FileName);
                        file_name = fileName.Replace(Path.GetExtension(fileName), string.Empty) + DateTime.Now.Ticks + Path.GetExtension(fileName);
                        if (_file.ContentType.Contains("image"))
                        {
                            model.Type = 1;
                            file_src   = Path.Combine(Server.MapPath("~/photo/post/"), file_name);
                            model.Name = file_name;
                            model.Link = "/photo/post/" + file_name;
                        }
                        else
                        {
                            model.Type = 2;
                            file_src   = Path.Combine(Utils.Instance.CreateFolderIfNeeded(Server.MapPath("~/Uploads/")), file_name);
                            model.Name = file_name;
                            model.Link = "/Uploads/" + file_name;
                        }


                        try
                        {
                            _file.SaveAs(file_src);
                        }
                        catch (Exception)
                        {
                            ModelState.AddModelError("SavePath", "Không thể lưu file!");
                            ViewBag.ErrorMessage = "Không thể lưu file!";

                            ViewBag.Medias = medias;
                            return(View(model));
                        }
                        //break;
                    }
                    //}

                    model.IsDeleted   = false;
                    model.CreatedBy   = User.UserId;
                    model.CreatedDate = DateTime.Now;
                    _mediaRepo.InsertAndSubmit(model);
                }
                else
                {
                    var entity = _mediaRepo.GetById(model.Id);
                    var _file  = Request.Files[0];
                    if (_file != null && _file.ContentLength > 0)
                    {
                        if (_file.ContentLength > 2000000)
                        {
                            ModelState.AddModelError("DisplayName", "Tên tài liệu không được để trống");
                            ViewBag.ErrorMessage = "Dung lượng file quá giới hạn";

                            ViewBag.Medias = medias;
                            return(View(model));
                        }
                        var fileName = Path.GetFileName(_file.FileName);
                        file_name = fileName.Replace(Path.GetExtension(fileName), string.Empty) + DateTime.Now.Ticks + Path.GetExtension(fileName);
                        if (_file.ContentType.Contains("image"))
                        {
                            model.Type = 1;
                            file_src   = Path.Combine(Server.MapPath("~/photo/post/"), file_name);
                            model.Name = file_name;
                            model.Link = "/photo/post/" + file_name;
                        }
                        else
                        {
                            model.Type = 2;
                            file_src   = Path.Combine(Utils.Instance.CreateFolderIfNeeded(Server.MapPath("~/Uploads/")), file_name);
                            model.Name = file_name;
                            model.Link = "/Uploads/" + file_name;
                        }


                        try
                        {
                            _file.SaveAs(file_src);
                        }
                        catch (Exception)
                        {
                            ModelState.AddModelError("SavePath", "Không thể lưu file!");
                            ViewBag.ErrorMessage = "Không thể lưu file!";

                            ViewBag.Medias = medias;
                            return(View(model));
                        }

                        entity = model.MapUpdateWithStatus <Medium>(User.UserId, entity);

                        entity.ModifiedDate = model.ModifiedDate = DateTime.Now;
                        entity.ModifiedBy   = User.UserId;
                        _mediaRepo.Update(entity);
                        _mediaRepo.SaveChanges();
                    }
                    else
                    {
                        entity.DisplayName = model.DisplayName;
                        entity.FileSource  = model.FileSource;
                        //entity.Type = model.Type;
                        entity.ModifiedDate = model.ModifiedDate = DateTime.Now;
                        entity.ModifiedBy   = User.UserId;
                        _mediaRepo.Update(entity);
                        _mediaRepo.SaveChanges();
                    }
                }



                //var mediaModel = new IEE.Infrastructure.Media();
                //mediaModel.Name = model.Name;
                //mediaModel.Link = model.Link;
                //mediaModel.IsDeleted = model.IsDeleted;
                //mediaModel.CreatedBy = model.CreatedBy;
                //mediaModel.CreatedDate = model.CreatedDate;

                //using (var db= new IEE.Infrastructure.nhieevwp_webEntities())
                //{
                //    db.Media.Add(mediaModel);
                //    db.SaveChanges();
                //}



                return(RedirectToAction("Index"));
            }
            ModelState.AddModelError("DisplayName", "Tên tài liệu không được để trống");
            ViewBag.ErrorMessage = "Tên tài liệu không được để trống";

            ViewBag.Medias = medias;
            return(View(model));
        }