public async Task <IActionResult> UploadPhoto(UserFileViewModel userViewModel)
        {
            if (ModelState.IsValid)
            {
                var formFile = userViewModel.Photo;
                if (formFile == null || formFile.Length == 0)
                {
                    ModelState.AddModelError("", "Uploaded file is empty or null.");
                    return(View(viewName: "Index"));
                }

                var uploadsRootFolder = Path.Combine(_environment.WebRootPath, "uploads");
                if (!Directory.Exists(uploadsRootFolder))
                {
                    Directory.CreateDirectory(uploadsRootFolder);
                }

                var filePath = Path.Combine(uploadsRootFolder, formFile.FileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    await formFile.CopyToAsync(fileStream).ConfigureAwait(false);
                }

                RedirectToAction("Index");
            }
            return(View(viewName: "Index"));
        }
Пример #2
0
        //

        public ActionResult FilesReadAll([DataSourceRequest] DataSourceRequest request)
        {
            var db = new DetergentsEntities();

            try
            {
                var result   = db.UserFiles;
                var fileList = new List <UserFileViewModel>();
                foreach (var item in result)
                {
                    var userFile = new UserFileViewModel()
                    {
                        Id            = item.fileID,
                        Name          = item.fileName,
                        productID     = item.productID,
                        sheetTypeName = item.SheetType.sheetTypeName,
                        sheetTypeID   = item.sheetTypeID,
                        adminApproved = item.adminApproved
                    };

                    var fileListName = db.UserFiles
                                       .Where(file => file.productID == item.productID).ToList();

                    if (fileListName != null)
                    {
                        userFile.listOfFiles = new List <UserFile>();

                        foreach (var file in fileListName)
                        {
                            var userFiles = new UserFile
                            {
                                fileName = file.fileName,
                                fileID   = file.fileID,

                                SheetType = new SheetType
                                {
                                    sheetTypeID   = file.SheetType.sheetTypeID,
                                    sheetTypeName = file.SheetType.sheetTypeName
                                }
                            };
                            userFiles.SheetType.sheetTypeName = file.SheetType.sheetTypeName;

                            userFile.listOfFiles.Add(userFiles);
                        }
                    }

                    fileList.Add(userFile);
                }

                return(Json(fileList.ToTreeDataSourceResult(request), JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Пример #3
0
        public async Task <IActionResult> UploadPhoto(UserFileViewModel userViewModel)
        {
            if (ModelState.IsValid)
            {
                var formFile = userViewModel.Photo;
                if (!await _uploadFileService.SavePostedFileAsync(formFile, destinationDirectoryName: "images", allowOverwrite: false))
                {
                    ModelState.AddModelError("", "Uploaded file is null or empty.");
                    return(View(viewName: "Index"));
                }

                RedirectToAction("Index");
            }
            return(View(viewName: "Index"));
        }
Пример #4
0
        public async Task <IActionResult> UploadPhoto(UserFileViewModel userViewModel)
        {
            if (ModelState.IsValid)
            {
                var formFile = userViewModel.Photo;
                var(isSaved, savedFilePath) = await _uploadFileService.SavePostedFileAsync(formFile, allowOverwrite : false, "images", "nestedfolder", "nestedfolder2");

                if (!isSaved)
                {
                    ModelState.AddModelError("", "Uploaded file is null or empty.");
                    return(View(viewName: "Index"));
                }

                RedirectToAction("Index");
            }
            return(View(viewName: "Index"));
        }
Пример #5
0
        public ActionResult AdminFileUpdate([DataSourceRequest] DataSourceRequest request,
                                            UserFileViewModel userFile)
        {
            if (ModelState.IsValid)
            {
                var sheetType  = db.SheetTypes.Find(userFile.sheetTypeID);
                var sheetTypes = db.SheetTypes.ToList();


                var entity = db.UserFiles.Find(userFile.Id);
                if (entity != null)
                {
                    if (entity.oldFile == false && db.Products.Find(entity.productID).Equals(userFile.productID))
                    {
                        entity.oldFile = true;
                    }
                    else
                    {
                        entity.fileID        = userFile.Id;
                        entity.fileName      = userFile.Name;
                        entity.productID     = userFile.productID;
                        entity.vendorID      = userFile.vendorID;
                        entity.SheetType     = sheetType;
                        entity.adminApproved = userFile.adminApproved;
                    }


                    try
                    {
                        //    var existingProduct = db.Products.Find(product.productID);
                        db.Entry(entity).State = EntityState.Modified;
                        db.SaveChanges();
                        return(Json(new[] { userFile }.ToDataSourceResult(request, ModelState)));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        throw;
                    }
                }
            }

            return(Json(new[] { userFile }.ToDataSourceResult(request, ModelState)));
        }
Пример #6
0
        public async Task <IActionResult> Register([FromBody] UserFileViewModel user)
        {
            if (!(await _authorizationService.AuthorizeAsync(this.User, (user.Roles, new string[] { }), Authorization.Policies.AssignAllowedRolesPolicy)).Succeeded)
            {
                return(new ChallengeResult());
            }


            if (ModelState.IsValid)
            {
                if (user == null)
                {
                    return(BadRequest($"{nameof(user)} cannot be null"));
                }


                ApplicationUser appUser = _mapper.Map <ApplicationUser>(user);

                var result = await _accountManager.CreateUserAsync(appUser, user.Roles, user.NewPassword);

                foreach (var up in user.ProjectIds)
                {
                    _appcontext.UserProjectXrefs.Add(new UserProjectXref
                    {
                        UserId    = appUser.Id,
                        ProjectId = up,
                    });
                }
                if (result.Succeeded)
                {
                    foreach (var req in user.FileRepositories)
                    {
                        if (req.FileName != null)
                        {
                            string ModuleName = "Users";
                            var    now        = DateTime.Now;
                            var    yearName   = now.ToString("yyyy");
                            var    monthName  = now.Month.ToString("d2");
                            var    dayName    = now.ToString("dd");

                            FileUploadService repo = new FileUploadService();

                            string FolderLocation = _config.Value.FileRepositoryFolder;


                            string ServerRootPath = _config.Value.ServerRootPath;

                            string Location = ServerRootPath + @"\" + FolderLocation + @"\" + yearName + @"\" + monthName + @"\" + dayName + @"\" + ModuleName;

                            byte[] FileBytes = Convert.FromBase64String(req.FileName);

                            req.FileName = repo.UploadFile(FileBytes, req.FileExtention, Location);

                            req.FileLocation = Path.Combine(yearName, monthName, dayName, ModuleName);

                            FileRepository file = new FileRepository();
                            {
                                file.UserId        = appUser.Id;
                                file.FileName      = req.FileName;
                                file.FileLocation  = req.FileLocation;
                                file.FileExtention = req.FileExtention;
                                file.DocumentType  = req.DocumentTypeId;
                                file.CreatedBy     = req.CreatedBy;
                                file.CreatedDate   = DateTime.Now;
                                file.UpdatedBy     = req.UpdatedBy;
                                file.UpdatedDate   = DateTime.Now;
                            }
                            _appcontext.FileRepositories.Add(file);
                        }
                    }
                    _appcontext.SaveChanges();
                    await SendVerificationEmail(appUser);

                    UserViewModel userVM = await GetUserViewModelHelper(appUser.Id);

                    return(CreatedAtAction(GetUserByIdActionName, new { id = userVM.Id }, userVM));
                }

                AddError(result.Errors);
            }

            return(BadRequest(ModelState));
        }
Пример #7
0
        public async Task <IActionResult> UpdateUsers(string id, [FromBody] UserFileViewModel user)
        {
            ApplicationUser appUser = await _accountManager.GetUserByIdAsync(id);

            string[] currentRoles = appUser != null ? (await _accountManager.GetUserRolesAsync(appUser)).ToArray() : null;

            var manageUsersPolicy = _authorizationService.AuthorizeAsync(this.User, id, AccountManagementOperations.Update);
            var assignRolePolicy  = _authorizationService.AuthorizeAsync(this.User, (user.Roles, currentRoles), Authorization.Policies.AssignAllowedRolesPolicy);


            if ((await Task.WhenAll(manageUsersPolicy, assignRolePolicy)).Any(r => !r.Succeeded))
            {
                return(new ChallengeResult());
            }


            if (ModelState.IsValid)
            {
                if (user == null)
                {
                    return(BadRequest($"{nameof(user)} cannot be null"));
                }

                if (!string.IsNullOrWhiteSpace(user.Id) && id != user.Id)
                {
                    return(BadRequest("Conflicting user id in parameter and model data"));
                }

                if (appUser == null)
                {
                    return(NotFound(id));
                }

                bool isPasswordChanged       = !string.IsNullOrWhiteSpace(user.NewPassword);
                bool isUserNameChanged       = !appUser.UserName.Equals(user.UserName, StringComparison.OrdinalIgnoreCase);
                bool isConfirmedEmailChanged = !appUser.Email.Equals(user.Email, StringComparison.OrdinalIgnoreCase) && appUser.EmailConfirmed;

                if (Utilities.GetUserId(this.User) == id)
                {
                    if (string.IsNullOrWhiteSpace(user.CurrentPassword))
                    {
                        if (isPasswordChanged)
                        {
                            AddError("Current password is required when changing your own password", "Password");
                        }

                        if (isUserNameChanged)
                        {
                            AddError("Current password is required when changing your own username", "Username");
                        }

                        if (isConfirmedEmailChanged)
                        {
                            AddError("Current password is required when changing your own email address", "Email");
                        }
                    }
                    else if (isPasswordChanged || isUserNameChanged || isConfirmedEmailChanged)
                    {
                        if (!await _accountManager.CheckPasswordAsync(appUser, user.CurrentPassword))
                        {
                            AddError("The username/password couple is invalid.");
                        }
                    }
                }

                if (ModelState.IsValid)
                {
                    _mapper.Map <UserFileViewModel, ApplicationUser>(user, appUser);
                    appUser.EmailConfirmed = isConfirmedEmailChanged ? false : appUser.EmailConfirmed;

                    var result = await _accountManager.UpdateUserAsync(appUser, user.Roles);

                    var projectList = _appcontext.UserProjectXrefs.Where(x => x.UserId == appUser.Id).ToList();
                    _appcontext.UserProjectXrefs.RemoveRange(projectList);
                    _appcontext.SaveChanges();
                    foreach (var up in user.ProjectIds)
                    {
                        _appcontext.UserProjectXrefs.Add(new UserProjectXref
                        {
                            UserId    = appUser.Id,
                            ProjectId = up,
                        });
                    }
                    if (result.Succeeded)
                    {
                        foreach (var req in user.FileRepositories)
                        {
                            if (req.FileName != null)
                            {
                                string ModuleName = "Users";
                                var    now        = DateTime.Now;
                                var    yearName   = now.ToString("yyyy");
                                var    monthName  = now.Month.ToString("d2");
                                var    dayName    = now.ToString("dd");

                                FileUploadService repo = new FileUploadService();

                                // string FolderLocation = _config.Value.FileRepositoryFolder;
                                string FolderLocation = "FileRepository";
                                string ServerRootPath = _config.Value.ServerRootPath;

                                string Location = ServerRootPath + @"\" + FolderLocation + @"\" + yearName + @"\" + monthName + @"\" + dayName + @"\" + ModuleName;

                                byte[] FileBytes = Convert.FromBase64String(req.FileName);

                                req.FileName = repo.UploadFile(FileBytes, req.FileExtention, Location);

                                req.FileLocation = Path.Combine(yearName, monthName, dayName, ModuleName);

                                FileRepository file = new FileRepository();
                                {
                                    file.UserId        = appUser.Id;
                                    file.FileName      = req.FileName;
                                    file.FileLocation  = req.FileLocation;
                                    file.FileExtention = req.FileExtention;
                                    file.DocumentType  = req.DocumentTypeId;
                                    file.CreatedBy     = req.CreatedBy;
                                    file.CreatedDate   = DateTime.Now;
                                    file.UpdatedBy     = req.UpdatedBy;
                                    file.UpdatedDate   = DateTime.Now;
                                }
                                _appcontext.FileRepositories.Add(file);
                            }
                        }
                        _appcontext.SaveChanges();
                        if (isConfirmedEmailChanged)
                        {
                            await SendVerificationEmail(appUser);
                        }

                        if (isPasswordChanged)
                        {
                            if (!string.IsNullOrWhiteSpace(user.CurrentPassword))
                            {
                                result = await _accountManager.UpdatePasswordAsync(appUser, user.CurrentPassword, user.NewPassword);
                            }
                            else
                            {
                                result = await _accountManager.ResetPasswordAsync(appUser, user.NewPassword);
                            }
                        }

                        if (result.Succeeded)
                        {
                            return(NoContent());
                        }
                    }

                    AddError(result.Errors);
                }
            }

            return(BadRequest(ModelState));
        }
Пример #8
0
 private void RemoveFile(UserFileViewModel file)
 {
     InProgress = true;
     HttpWebRequest webRequest = (HttpWebRequest)WebRequestCreator.ClientHttp.Create(new Uri(file.Url));
     webRequest.Method = "DELETE";
     webRequest.BeginGetResponse(EndDeteleFileResponse, webRequest);
 }
Пример #9
0
 private UserFileViewModel ConvertToUserFile(XElement blob)
 {
     UserFileViewModel file = new UserFileViewModel();
     file.FileName = blob.Element("Name").Value;
     file.Url = blob.Element("Url").Value + _containerSharedSignature;
     var metadata = blob.Element("Metadata");
     if (metadata != null)
     {
         file.Author = metadata.Element("author").Value;
     }
     return file;
 }
Пример #10
0
 private bool CanRemoveFile(UserFileViewModel file)
 {
     return file != null;
 }
Пример #11
0
        public ActionResult FilesDestroyAdmin([DataSourceRequest] DataSourceRequest request, UserFileViewModel file)
        {
            try
            {
                if (file != null)
                {
                    db.UserFiles.Remove(db.UserFiles.FirstOrDefault(f => f.vendorID == file.vendorID));

                    db.SaveChanges();
                }

                return(Json(new[] { file }.ToDataSourceResult(request, ModelState)));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }