Exemplo n.º 1
0
        public async Task <IHttpActionResult> PutEventBoardFile(int id, EventBoardFile eventBoardFile)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != eventBoardFile.EvnetBoardFileNo)
            {
                return(BadRequest());
            }

            db.Entry(eventBoardFile).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EventBoardFileExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemplo n.º 2
0
        public async Task <IHttpActionResult> GetEventBoardFile(int id)
        {
            EventBoardFile eventBoardFile = await db.EventBoardFiles.FindAsync(id);

            if (eventBoardFile == null)
            {
                return(NotFound());
            }

            return(Ok(eventBoardFile));
        }
Exemplo n.º 3
0
        public async Task <IHttpActionResult> PostEventBoardFile(EventBoardFile eventBoardFile)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.EventBoardFiles.Add(eventBoardFile);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = eventBoardFile.EvnetBoardFileNo }, eventBoardFile));
        }
Exemplo n.º 4
0
        public async Task <IHttpActionResult> DeleteEventBoardFile(int id)
        {
            EventBoardFile eventBoardFile = await db.EventBoardFiles.FindAsync(id);

            if (eventBoardFile == null)
            {
                return(NotFound());
            }

            db.EventBoardFiles.Remove(eventBoardFile);
            await db.SaveChangesAsync();

            return(Ok(eventBoardFile));
        }
        public async Task <IHttpActionResult> PutEventBoard(int id)
        {
            PetterResultType <EventBoard> petterResultType = new PetterResultType <EventBoard>();
            List <EventBoard>             eventBoards      = new List <EventBoard>();
            List <EventBoardFile>         eventBoardFiles  = new List <EventBoardFile>();

            //EventBoardFile eventBoardFile = new Models.EventBoardFile();
            //EventBoard eventBoard = new EventBoard();

            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            EventBoard eventBoard = await db.EventBoards.FindAsync(id);

            if (eventBoard == null)
            {
                return(NotFound());
            }

            if (Request.Content.IsMimeMultipartContent())
            {
                string folder = HostingEnvironment.MapPath(UploadPath.EventBoardPath);
                Utilities.CreateDirectory(folder);

                var provider = await Request.Content.ReadAsMultipartAsync();

                foreach (var content in provider.Contents)
                {
                    string fieldName = content.Headers.ContentDisposition.Name.Trim('"');
                    if (!string.IsNullOrEmpty(content.Headers.ContentDisposition.FileName))
                    {
                        EventBoardFile eventBoardFile = new EventBoardFile();
                        var            file           = await content.ReadAsByteArrayAsync();

                        string fileName = Utilities.additionFileName(content.Headers.ContentDisposition.FileName.Trim('"'));

                        if (!FileExtension.EventBoardExtensions.Any(x => x.Equals(Path.GetExtension(fileName.ToLower()), StringComparison.OrdinalIgnoreCase)))
                        {
                            petterResultType.IsSuccessful = false;
                            petterResultType.JsonDataSet  = null;
                            petterResultType.ErrorMessage = ResultErrorMessage.FileTypeError;
                            return(Ok(petterResultType));
                        }

                        string fullPath = Path.Combine(folder, fileName);
                        File.WriteAllBytes(fullPath, file);
                        string thumbnamil = Path.GetFileNameWithoutExtension(fileName) + "_thumbnail" + Path.GetExtension(fileName);

                        Utilities.ResizeImage(fullPath, thumbnamil, FileSize.EventBoardWidth, FileSize.EventBoardHeight, ImageFormat.Png);

                        // 이벤트게시판 대표 이미지
                        if (fieldName == FieldName.EventFieldName)
                        {
                            eventBoard.FileName = fileName;
                            eventBoard.FilePath = UploadPath.EventBoardPath.Replace("~", "");
                        }

                        eventBoardFile.EventBoardNo = eventBoard.EventBoardNo;
                        eventBoardFile.FileName     = fileName;
                        eventBoardFile.FilePath     = UploadPath.EventBoardPath.Replace("~", "");

                        eventBoardFiles.Add(eventBoardFile);
                    }
                    else
                    {
                        string str = await content.ReadAsStringAsync();

                        string item = HttpUtility.UrlDecode(str);

                        #region switch case
                        switch (fieldName)
                        {
                        case "MemberNo":
                            eventBoard.MemberNo = int.Parse(item);
                            break;

                        case "Title":
                            eventBoard.Title = item;
                            break;

                        case "Content":
                            eventBoard.Content = item;
                            break;

                        default:
                            break;
                        }
                        #endregion switch case
                    }
                }

                eventBoard.StateFlag    = StateFlags.Use;
                eventBoard.DateModified = DateTime.Now;

                // 이벤트게시판 등록
                db.Entry(eventBoard).State = EntityState.Modified;
                try
                {
                    await db.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    throw;
                }

                // 이벤트게시판 파일 등록
                db.EventBoardFiles.AddRange(eventBoardFiles);
                int num1 = await this.db.SaveChangesAsync();

                eventBoards.Add(eventBoard);
                petterResultType.IsSuccessful = true;
                petterResultType.JsonDataSet  = eventBoards;
            }
            else
            {
                petterResultType.IsSuccessful = false;
                petterResultType.JsonDataSet  = null;
            }

            return(Ok(petterResultType));
        }