Example #1
0
        public ViewResult AddFile()
        {
            var addFileModel = new AddFileModel
            {
                Profiles = _profileRepository.GetProfileForUser(_sessionHelper.CurrentUser.Id)
            };

            return(View(addFileModel));
        }
Example #2
0
        public JsonResult AddFile()
        {
            var addFileModel = new AddFileModel
            {
                Profiles = _profileRepository.GetProfileForUser(_sessionHelper.CurrentUser.Id)
            };

            return(Json(addFileModel, JsonRequestBehavior.AllowGet));
        }
Example #3
0
        public IActionResult AddFile([FromBody] AddFileModel model)
        {
            var timing = userService.AddFile(model);

            if (timing == 0)
            {
                return(BadRequest(new { Message = "Something went wrong." }));
            }
            return(Ok(new { SecondsElapsed = timing }));
        }
 public ActionResult UploadFile(AddFileModel model)
 {
     if (Request.Files.Count > 0)
     {
         try
         {
             HttpFileCollectionBase files = Request.Files;
             for (int i = 0; i < files.Count; i++)
             {
                 HttpPostedFileBase file          = files[i];
                 string             fname         = file.FileName;
                 string             fileName      = Path.GetFileName(fname);
                 string             fileExtension = Path.GetExtension(fileName).ToLower();
                 int          fileSize            = file.ContentLength;
                 Stream       stream       = file.InputStream;
                 BinaryReader binaryReader = new BinaryReader(stream);
                 byte[]       bytes        = binaryReader.ReadBytes((int)stream.Length);
                 FileDTO      fileDTO      = new FileDTO();
                 fileDTO.fileData    = bytes;
                 fileDTO.user        = model.user_id;
                 fileDTO.name        = model.name;
                 fileDTO.description = model.description;
                 fileDTO.fileName    = fileName;
                 fileDTO.fileType    = file.ContentType;
                 if (userProvider.putFile(fileDTO).Result)
                 {
                     return(new HttpStatusCodeResult(200, "El archivo se cargo con éxito"));
                 }
             }
             return(new HttpStatusCodeResult(404, "Error, el archivo no se puede cargar"));
         }
         catch (Exception ex)
         {
             return(new HttpStatusCodeResult(404, "Error, el archivo no se puede cargar"));
         }
     }
     else
     {
         return(new HttpStatusCodeResult(404, "Error, No se selecciono ningun archivo"));
     }
 }
Example #5
0
        public async Task <IActionResult> Put(AddFileModel model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest("Model is missing"));
                }

                if (model.File == null || model.File.Length == 0)
                {
                    return(BadRequest("File is missing"));
                }

                var path = $"{_configuration["StoragePath"]}/{Guid.NewGuid():D}.bin";

                await using (var fileStream = System.IO.File.Create(path))
                {
                    await model.File.CopyToAsync(fileStream);
                }

                await _storageContext.StoredFiles.AddAsync(new StoredFile
                {
                    Id        = model.Id,
                    Path      = path,
                    CreatedAt = DateTime.UtcNow
                });

                await _storageContext.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception ex)
            {
                _logger.Error(ex, ex.Message);
                return(BadRequest(ex.Message));
            }
        }
Example #6
0
        public double AddFile(AddFileModel model)
        {
            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();

            User ownerUser = context.Users.First(user => user.UserId == model.Owner);
            File file      = new File
            {
                FileId    = model.Id,
                FileName  = model.Name,
                Size      = model.Size,
                Copies    = model.Chunks.Max(chunk => chunk.MirrorIndex),
                OwnerUser = ownerUser
            };

            context.Files.Add(file);
            context.SaveChanges();

            File insertedFile = context.Files.First(_file => _file.FileId == file.FileId);

            model.Users.ForEach(user =>
            {
                Permission permission = new Permission
                {
                    PermissionId = Guid.NewGuid(),
                    User         = context.Users.First(_user => _user.UserId == user),
                    File         = insertedFile
                };

                context.Permissions.Add(permission);
                context.SaveChanges();
            });


            AccessLog accessLog = new AccessLog
            {
                LogId      = Guid.NewGuid(),
                LastAccess = DateTime.Now,
                File       = insertedFile,
                User       = context.Users.First(user => user.UserId == model.Owner)
            };

            context.AccessLogs.Add(accessLog);
            context.SaveChanges();

            FileVersion fileVersion = new FileVersion
            {
                FileVersionId = Guid.NewGuid(),
                File          = insertedFile,
                FileDateTime  = DateTime.Now
            };

            context.FileVersions.Add(fileVersion);
            context.SaveChanges();

            FileVersion insertedFileVersion = context.FileVersions.First(_fileVersion => _fileVersion.FileVersionId == fileVersion.FileVersionId);

            model.Chunks.ForEach(chunk =>
            {
                Disk disk           = context.Disks.First(disk => disk.DiskId == chunk.DiskId);
                FileChunk fileChunk = new FileChunk
                {
                    FileChunkId   = chunk.ChunkId,
                    FileChunkSize = chunk.Size,
                    FileVersion   = insertedFileVersion,
                    Disk          = disk,
                    FileIndex     = chunk.FileIndex,
                    MirrorIndex   = chunk.MirrorIndex
                };

                context.FileChunks.Add(fileChunk);
                context.SaveChanges();
            });

            stopWatch.Stop();
            return(stopWatch.Elapsed.TotalSeconds);
        }
Example #7
0
        public ActionResult AddFile(AddFileModel model)
        {
            //check if model state is valid
            if (ModelState.IsValid)
            {
                //get uploaded file filename
                var filename = Path.GetFileName(model.uploadFile.FileName);
                //get uploaded file path
                var path = Path.Combine(Server.MapPath("~/App_Data/Uploads"), filename);
                //determine the uploaded file extension
                var extension = Path.GetExtension(model.uploadFile.FileName);
                //check if the file uploaded is a valid extension
                if (System.IO.File.Exists(path))
                {
                    TempData["Message"]      = "Uploaded file already exists";
                    TempData["classStyle"]   = "warning";
                    model.uploadFile         = null;
                    ViewBag.Category_ID      = new SelectList(db.Document_Category, "Category_ID", "Category_Name");
                    ViewBag.Document_Type_ID = new SelectList(db.Document_Type, "Document_Type_ID", "Document_Type_Name");
                    return(View(model));
                }
                else
                {
                    var validExtension = db.Document_Extension.Where(m => m.Extension_Type.Equals(extension)).FirstOrDefault();
                    if (validExtension != null)
                    {
                        //create a new instance of a document_repository object
                        Document_Repository a = new Document_Repository();
                        //add details of the file to a document_repository object
                        a.Document_Name         = model.Document_Name;
                        a.Description           = model.Description;
                        a.Category_ID           = model.Category_ID;
                        a.Document_Type_ID      = model.Document_Type_ID;
                        a.Directory_Path        = path;
                        a.Document_Extension_ID = validExtension.Document_Extension_ID;
                        a.Document_Status       = "Active";
                        db.Document_Repository.Add(a);
                        db.SaveChanges();

                        var sessionLog = db.Person_Session_Log.Where(p => p.Person_ID == User.Identity.Name).OrderByDescending(p => p.Login_DateTime).FirstOrDefault();

                        Document_Access_Log ac = new Document_Access_Log();
                        ac.Access_DateTime = DateTime.Now;
                        ac.Document_Seq    = a.Document_Seq;
                        ac.Session_ID      = sessionLog.Session_ID;

                        db.Document_Access_Log.Add(ac);
                        db.SaveChanges();

                        //record action
                        global.addAudit("Repository", "Repository: Add File", "Create", User.Identity.Name);

                        //save file to server
                        model.uploadFile.SaveAs(path);
                        TempData["Message"]    = "File successfully uploaded";
                        TempData["classStyle"] = "success";
                        return(RedirectToAction("ViewFile"));
                    }
                    else
                    {
                        ViewBag.Category_ID      = new SelectList(db.Document_Category, "Category_ID", "Category_Name");
                        ViewBag.Document_Type_ID = new SelectList(db.Document_Type, "Document_Type_ID", "Document_Type_Name");
                        return(View());
                    }
                }
            }
            ViewBag.Category_ID      = new SelectList(db.Document_Category, "Category_ID", "Category_Name");
            ViewBag.Document_Type_ID = new SelectList(db.Document_Type, "Document_Type_ID", "Document_Type_Name");
            return(View());
        }
Example #8
0
 public AddFileModel AddFileToGroup(AddFileModel file)
 {
     throw new NotImplementedException();
 }
Example #9
0
 public AddFileModel AddFile(AddFileModel file)
 {
     return(file);
 }