예제 #1
0
        public bool ChangeAvatar(int id, HttpPostedFile uploadedFile)
        {
            FileManager.File file = new FileManager.File(uploadedFile);
            var isImage           = file.FilterExtension(new List <string>()
            {
                ".jpeg", ".jpg", ".png", ".tif", ".tiff"
            });

            if (isImage)
            {
                file.Rename();
                var isChanged = _accountRepository.ChangeAvatar(id, file.FullName);
                if (isChanged)
                {
                    file.Save(HttpContext.Current.Server.MapPath("~/Uploads"));
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
예제 #2
0
        public bool AddFile(int id, FileManager.File file)
        {
            var dbNote = db.NOTEs.Find(id);

            if (dbNote != null)
            {
                //create a file
                var    newFile      = new FILE();
                string targetFolder = HttpContext.Current.Server.MapPath("~/Uploads");
                file.Rename();
                file.Save(targetFolder);
                newFile.FileName = file.FullName;
                var size = ByteSize.FromBytes(file.ContentLengthBytes);
                newFile.FileSize      = Convert.ToInt32(size.MegaBytes);
                newFile.FileStorePath = Path.Combine(targetFolder, file.FullName);
                //link file
                newFile.NOTE_ID = dbNote.ID;
                db.FILEs.Add(newFile);
                db.SaveChanges();
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #3
0
        public (ByteArrayContent file, string mimeType, string fileName) GetFile(string fileName)
        {
            string targetFolder = HttpContext.Current.Server.MapPath("~/Uploads");
            var    f            = new FileManager.File();

            f.FileName  = Path.GetFileNameWithoutExtension(fileName);
            f.Extension = Path.GetExtension(fileName);

            var isExist = File.Exists(Path.Combine(targetFolder, fileName));

            byte[] content = null;
            if (isExist)
            {
                using (FileStream fs = File.Open(Path.Combine(targetFolder, fileName), FileMode.Open))
                {
                    content = new byte[fs.Length];
                    fs.Read(content, 0, (int)fs.Length);
                }
                var mimeType = MimeMapping.MimeUtility.GetMimeMapping(fileName);
                return(new ByteArrayContent(content), mimeType, fileName);
            }
            else
            {
                return(null, null, null);
            }
        }
예제 #4
0
        public HttpResponseMessage MultipleFilesUpload()
        {
            var            response     = new HttpResponseMessage();
            ResponseFormat responseData = new ResponseFormat();

            string targetFolder = HttpContext.Current.Server.MapPath("~/Uploads");
            string content      = HttpContext.Current.Request.Form["content"];

            if (HttpContext.Current.Request.Files.Count > 0)
            {
                var allFiles = HttpContext.Current.Request.Files;
                responseData         = ResponseFormat.Success;
                responseData.message = content;
                foreach (string fileName in allFiles)
                {
                    HttpPostedFile uploadedFile = allFiles[fileName];
                    responseData.message += " " + uploadedFile.FileName;
                    FileManager.File file = new FileManager.File(uploadedFile);
                    file.Rename();
                    file.Save(HttpContext.Current.Server.MapPath("~/Uploads"));
                }
            }
            response.StatusCode = HttpStatusCode.OK;
            //responseData.data = $"data:{a};base64,{img}";
            var json = JsonConvert.SerializeObject(responseData);

            response.Content = new StringContent(json, Encoding.UTF8, "application/json");
            return(response);
        }
예제 #5
0
        public FILE Create(FileManager.File file)
        {
            var    newFile      = new FILE();
            string targetFolder = HttpContext.Current.Server.MapPath("~/Uploads");

            file.Rename();
            file.Save(targetFolder);
            newFile.FileName = file.FullName;
            var size = ByteSize.FromBytes(file.ContentLengthBytes);

            newFile.FileSize      = Convert.ToInt32(size.KiloBytes);
            newFile.FileStorePath = Path.Combine(targetFolder, file.FullName);
            db.FILEs.Add(newFile);
            db.SaveChanges();
            return(newFile);
        }
예제 #6
0
        public HttpResponseMessage CreateNote([FromUri] int id)
        {
            var                  response     = new HttpResponseMessage();
            ResponseFormat       responseData = new ResponseFormat();
            IEnumerable <string> headerValues;

            if (Request.Headers.TryGetValues("Authorization", out headerValues))
            {
                string jwt = headerValues.FirstOrDefault();
                AuthorizationService _authorizationService = new AuthorizationService().SetPerm((int)EnumPermissions.NOTE_CREATE);
                //validate jwt
                var payload = JwtTokenManager.ValidateJwtToken(jwt);

                if (payload.ContainsKey("error"))
                {
                    if ((string)payload["error"] == ErrorMessages.TOKEN_EXPIRED)
                    {
                        response.StatusCode  = HttpStatusCode.Unauthorized;
                        responseData         = ResponseFormat.Fail;
                        responseData.message = ErrorMessages.TOKEN_EXPIRED;
                    }
                    if ((string)payload["error"] == ErrorMessages.TOKEN_INVALID)
                    {
                        response.StatusCode  = HttpStatusCode.Unauthorized;
                        responseData         = ResponseFormat.Fail;
                        responseData.message = ErrorMessages.TOKEN_INVALID;
                    }
                }
                else
                {
                    var userId       = Convert.ToInt32(payload["id"]);
                    var isAuthorized = _authorizationService.Authorize(userId);
                    if (isAuthorized)
                    {
                        string noteBody = HttpContext.Current.Request.Form["body"];
                        if (!string.IsNullOrEmpty(noteBody))
                        {
                            //create a note
                            NoteApiModel apiModel = new NoteApiModel();
                            apiModel.body      = noteBody;
                            apiModel.createdBy = new UserLinkApiModel()
                            {
                                id = userId
                            };
                            apiModel.account = id;
                            var createdNote = _noteService.Create(apiModel);

                            //create files and link them to note
                            if (HttpContext.Current.Request.Files.Count > 0)
                            {
                                var allFiles = HttpContext.Current.Request.Files;
                                foreach (string fileName in allFiles)
                                {
                                    HttpPostedFile   uploadedFile = allFiles[fileName];
                                    FileManager.File file         = new FileManager.File(uploadedFile);
                                    _noteService.AddFile(createdNote, file);
                                }
                            }
                            response.StatusCode  = HttpStatusCode.OK;
                            responseData         = ResponseFormat.Success;
                            responseData.message = SuccessMessages.NOTE_ADDED;
                        }
                        else
                        {
                            response.StatusCode  = HttpStatusCode.BadRequest;
                            responseData         = ResponseFormat.Fail;
                            responseData.message = ErrorMessages.NOTE_EMPTY;
                        }
                    }
                    else
                    {
                        response.StatusCode  = HttpStatusCode.Forbidden;
                        responseData         = ResponseFormat.Fail;
                        responseData.message = ErrorMessages.UNAUTHORIZED;
                    }
                }
            }
            else
            {
                response.StatusCode  = HttpStatusCode.Unauthorized;
                responseData         = ResponseFormat.Fail;
                responseData.message = ErrorMessages.UNAUTHORIZED;
            }
            var json = JsonConvert.SerializeObject(responseData);

            response.Content = new StringContent(json, Encoding.UTF8, "application/json");
            return(response);
        }