Beispiel #1
0
        public ActionResult Add()
        {
            var model = new FileModel();

            return JsonObject(true, string.Empty, new
            {
                html = PartialViewToString("_edit", model)
            });
        }
Beispiel #2
0
        public ActionResult Save(FileModel model)
        {
            if (model.IsNew && !CanAdd)
            {
                return GetAddDeniedResult();
            }

            if (!model.IsNew && !CanUpdate)
            {
                return GetUpdateDeniedResult();
            }

            if (!ModelState.IsValid)
            {
                return JsonObject(false, GetModelStateErrors());
            }

            #region file hanlder

            if (Request.Files.Count == 0 || string.IsNullOrWhiteSpace(Request.Files[0].FileName))
            {
                return JsonObject(false, Files.FileIsRequired);
            }

            if (!model.IsNew)
            {
                DeleteFile(model.OldPhysicName);
            }

            var file = Request.Files[0];

            var extension = Path.GetExtension(file.FileName).ToStr();

            if (SiteUtils.IsDangerousFile(file.FileName))
            {
                return JsonObject(false, BackendMessage.FileTypeIsInvalid);
            }

            if (!string.IsNullOrWhiteSpace(model.OldPhysicName))
            {
                DeleteFile(model.OldPhysicName);
            }

            model.PhysicName = Guid.NewGuid() + extension;

            var filePath = PhysicalDataFilePath(model.PhysicName, DataChildFolder.Files);
            file.SaveAs(filePath);

            #endregion

            var entity = model.Map<FileModel, Data.DataContract.FileDC.File>();
            if (entity.IsNew)
            {
                entity.InitId();
            }

            entity.Name = entity.Name.ToStr().Trim();
            entity.CreatedBy = CurrentUserId;
            entity.CreatedDate = DateTime.UtcNow;

            var request = new SaveRequest
            {
                Entity = entity
            };

            var res = ServiceHelper.File.ExecuteDispose(s => s.SaveFile(request));

            if (res.Success)
            {
                SendNotification(NotifyType.Success, Files.UploadFileSuccess);
                return JsonObject(true, string.Empty);
            }

            return JsonObject(false, res.Messages.FirstOrDefault().GetServiceMessageRes());
        }