Пример #1
0
 public ActionResult DownloadFile(string fileId, string fileName)
 {
     try
     {
         using (var db = new KiaGalleryFileContext())
         {
             var file = db.File.Single(x => x.Id == fileId && x.FileName == fileName);
             return(File(file.Data, file.MimeType, file.FileName));
         }
     }
     catch (Exception ex)
     {
         Core.SaveException(ex);
         return(null);
     }
 }
Пример #2
0
        public JsonResult Save(MarquisFileViewModel model)
        {
            Response response;

            try
            {
                if (model.branchId == 0)
                {
                    response = new Response()
                    {
                        status = 500, message = "انتخاب شعبه مورد نظر اجباری است."
                    };
                }
                //else if (string.IsNullOrEmpty(model.persianDate) || DateUtility.GetDateTime(model.persianDate) == null)
                //{
                //    response = new Response() { status = 500, message = "تاریخ وارد شده صحیح نیست." };
                //}
                else if (Request.Files.Count == 0 || Request.Files.Count % 2 != 0)
                {
                    response = new Response()
                    {
                        status = 500, message = "تعداد فایل های وارد شده صحیح نیست."
                    };
                }
                else if (Request.Files.AllKeys.Count(x => !x.ToLower().StartsWith("dt") || !x.ToLower().StartsWith("img")) == 0)
                {
                    response = new Response()
                    {
                        status = 500, message = "نام فایل های وارد شده صحیح نیست."
                    };
                }
                else
                {
                    var currentUser = GetAuthenticatedUser();

                    var file = new MarquisFile()
                    {
                        BranchId     = model.branchId,
                        Date         = DateTime.Today, //DateUtility.GetDateTime(model.persianDate).Value,
                        Description  = model.description,
                        CreateUserId = currentUser.Id,
                        ModifyUserId = currentUser.Id,
                        CreateDate   = DateTime.Now,
                        ModifyDate   = DateTime.Now,
                        Ip           = Request.UserHostAddress
                    };

                    List <MarquisFileDetail> detailList = new List <MarquisFileDetail>();

                    var files = Request.Files
                                .Cast <string>()
                                .Select(k => Request.Files[k])
                                .ToArray();

                    for (int i = 0; i < Request.Files.Count; i++)
                    {
                        HttpPostedFileBase item = Request.Files[i];

                        byte[] fileData = null;
                        using (var binaryReader = new BinaryReader(item.InputStream))
                        {
                            fileData = binaryReader.ReadBytes(item.ContentLength);
                        }
                        using (var db = new KiaGalleryFileContext())
                        {
                            var fileEntity = new Model.FileContext.Entity.File()
                            {
                                Id           = StringUtility.RandomString(32),
                                FileName     = item.FileName,
                                Extention    = Path.GetExtension(item.FileName),
                                MimeType     = MimeMapping.GetMimeMapping(item.FileName),
                                Length       = fileData.Length,
                                Data         = fileData,
                                StatusId     = FileStatus.Verify.Id,
                                CreateUserId = currentUser.Id,
                                CreateDate   = DateTime.Now,
                                CreateIp     = Request.UserHostAddress
                            };

                            db.File.Add(fileEntity);
                            db.SaveChanges();

                            detailList.Add(new MarquisFileDetail()
                            {
                                MarquisFile = file, FileId = fileEntity.Id, FileName = fileEntity.FileName
                            });
                        };
                    }

                    using (var db = new KiaGalleryContext())
                    {
                        db.MarquisFile.Add(file);
                        db.MarquisFileDetail.AddRange(detailList);

                        db.SaveChanges();
                    }
                    response = new Response()
                    {
                        status = 200, message = "اطلاعات با موفقیت ذخیره شد."
                    };
                }
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }