Exemple #1
0
        private ResponseDto ProcessProfileData(HttpRequest httpRequest, int userType)
        {
            ChangeProfilePhotoRequest request = new ChangeProfilePhotoRequest();
            ResponseDto    resp          = null;
            UploadServices upImage       = new UploadServices();
            var            statusMessage = upImage.UploadProfilePicture(httpRequest, userType);

            if (statusMessage.ContainsKey("success"))
            {
                request.profile_image = statusMessage["message"].ToString();
                request.user_id       = statusMessage["user_id"].ToInt();
                request.auth_token    = statusMessage["auth_token"].ToString();
                resp = _userServices.ChangeProfilePhoto(request);
            }
            else
            {
                resp              = new ResponseDto();
                resp.code         = 0;
                resp.has_resource = 0;
                resp.message      = statusMessage["message"].ToString();
            }

            return(resp);
        }
 public UploadController(UploadServices uploadServices)
 {
     _uploadServices = uploadServices;
 }
        public ActionResult Edit([Bind(Include = "Id,Name,LocationId,OwnerId")] FileEntity fileEntity)
        {
            if (fileEntity != null && ModelState.IsValid)
            {
                var oldFile = this.Data.Files.GetById(fileEntity.Id);
                TempData["ErrorFound"] = true;

                if (fileEntity.Name.Trim().Length == 0)
                {
                    TempData["Message"] = "Bad file name!";
                    return(RedirectToAction("Edit", new { id = fileEntity.Id }));
                }

                var oldOwnerUser = oldFile.Owner;
                var oldOwner     = oldFile.Owner.UserName;
                var oldLocation  = oldFile.LocationId == -1 ?
                                   "User directory"  :
                                   this.Data.Files.GetById(oldFile.LocationId).Name;
                var oldName = oldFile.Name;

                var newOwner = this.Data.Users.All().Where(u => u.Id == fileEntity.OwnerId).FirstOrDefault();

                // Validate new user is valid user
                if (newOwner == null)
                {
                    TempData["Message"] = "User with that Id: " + fileEntity.OwnerId + " does not exist!";
                    return(RedirectToAction("Edit", new { id = fileEntity.Id }));
                }

                if (fileEntity.LocationId != -1)
                {
                    var             newFileLocation = newOwner.Files.Where(f => f.Id == fileEntity.LocationId).FirstOrDefault();
                    DirectoryEntity newDir          = null;

                    if (newFileLocation != null)
                    {
                        newDir = newFileLocation as DirectoryEntity;
                    }

                    if (newFileLocation == null || newDir == null)
                    {
                        TempData["Message"] = "User " + newOwner.UserName + " does not have directory with id: " + fileEntity.OwnerId;
                        return(RedirectToAction("Edit", new { id = fileEntity.Id }));
                    }
                }

                var binFile = oldFile as BinaryFile;

                if (binFile == null)
                {
                    var nestedFiles = UploadServices.DFSNestedElementFinder(oldOwnerUser, fileEntity.Id);

                    // Validate that new dir is not inner to our current dir
                    foreach (var item in nestedFiles)
                    {
                        if (item.Id == fileEntity.LocationId)
                        {
                            TempData["Message"] = "Can not desplace the current directory to it's own inner directory";
                            return(RedirectToAction("Edit", new { id = fileEntity.Id }));
                        }
                    }

                    foreach (var item in nestedFiles)
                    {
                        var currentFile = oldOwnerUser.Files.Where(f => f.Id == item.Id).FirstOrDefault();
                        this.Data.Context.Entry(currentFile).State = EntityState.Modified;
                        currentFile.OwnerId = fileEntity.OwnerId;
                        currentFile.Owner   = newOwner;
                        newOwner.Files.Add(currentFile);
                    }
                }
                else
                {
                    oldFile.Name       = fileEntity.Name;
                    oldFile.LocationId = fileEntity.LocationId;
                    oldFile.OwnerId    = fileEntity.OwnerId;
                    oldFile.Owner      = newOwner;
                }

                this.Data.Context.Entry(oldFile).State = EntityState.Modified;
                this.Data.Context.SaveChanges();

                TempData["ErrorFound"] = false;
                TempData["Message"]    = "File " + fileEntity.Name + " (" + oldFile.Name + ") edited.";
                return(RedirectToAction("Index", new { id = fileEntity.LocationId == -1 ? fileEntity.OwnerId : fileEntity.LocationId.ToString() }));
            }

            TempData["Message"] = "Unknown error!";
            return(RedirectToAction("Index"));
        }