コード例 #1
0
        public async Task <IActionResult> AddAsync([FromBody] Notice model)
        {
            // model.Id = 0
            var tmpModel = new Notice();

            tmpModel.Name     = model.Name;
            tmpModel.Title    = model.Title;
            tmpModel.Content  = model.Content;
            tmpModel.ParentId = model.ParentId;
            tmpModel.Created  = DateTime.Now;

            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                var newModel = await _repository.AddAsync(tmpModel);

                if (newModel == null)
                {
                    return(BadRequest());
                }
                //return Ok(newModel); // 200 OK
                var uri = Url.Link("GetNoticeById", new { id = newModel.Id });
                return(Created(uri, newModel)); // 201 Created
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                return(BadRequest());
            }
        }
コード例 #2
0
        public async Task <IActionResult> AddAsync([FromBody] BoardNotices model)
        {
            model.Created = DateTime.Now;

            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                var newModel = await _repository.AddAsync(model);

                if (newModel == null)
                {
                    return(BadRequest());
                }

                //return Ok(newModel);    // 200 OK
                var uri = Url.Link("GetBoardNoticeById", new { id = newModel.Id });
                return(Created(uri, newModel));      // 201 Created
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                return(BadRequest());
            }
        }
コード例 #3
0
        protected async void CreateOrEditClick()
        {
            #region  일 업로드 관련 추가

            var file     = selectedFiles.FirstOrDefault();
            var fileName = "";
            int fileSize = 0;

            if (file != null)
            {
                //file.Name = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}{file.Name}";
                fileName = file.Name;
                fileSize = Convert.ToInt32(file.Size);
                //await FileUploadServiceReference.UploadAsync(file);

                //[A] 바이트 형태
                //var ms = new MemoryStream();
                //await file.Data.CopyToAsync(ms);    // 파일 데이터를 메모리스트림으로 변환
                //// upload 하기전 memorystream을 byte 배열로 다시변환
                //await FileStorageManager.UploadAsync(ms.ToArray(), file.Name, "", true);

                //[B] Stream형태
                //string folderPath = Path.Combine(WebHostEnvironment.WebRootPath, "files");
                await FileStorageManager.UploadAsync(file.Data, file.Name, "", true);

                Model.FileName = fileName;
                Model.FileSize = fileSize;
            }

            #endregion

            if (!int.TryParse(parentId, out int newParentId))
            {
                newParentId = 0;
            }
            Model.ParentId = newParentId;
            //Model.ParentKey = Model.ParentKey;


            if (Model.Id == 0)
            {
                // Create
                await NoticeRepositoryAsyncReference.AddAsync(Model);

                CreateCallback?.Invoke();  // -> EditCallback
            }
            else
            {
                // Edit
                await NoticeRepositoryAsyncReference.EditAsync(Model);

                await EditCallback.InvokeAsync(true);
            }
            //IsShow = false;
        }
コード例 #4
0
        protected async void CreateOrEditClick()
        {
            #region  일 업로드 관련 추가

            var file     = selectedFiles.FirstOrDefault();
            var fileName = "";
            int fileSize = 0;

            if (file != null)
            {
                //file.Name = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}{file.Name}";
                fileName = file.Name;
                fileSize = Convert.ToInt32(file.Size);
                await FileUploadServiceReference.UploadAsync(file);

                Model.FileName = fileName;
                Model.FileSize = fileSize;
            }

            #endregion

            if (!int.TryParse(parentId, out int newParentId))
            {
                newParentId = 0;
            }
            Model.ParentId = newParentId;


            if (Model.Id == 0)
            {
                // Create
                await NoticeRepositoryAsyncReference.AddAsync(Model);

                CreateCallback?.Invoke();  // -> EditCallback
            }
            else
            {
                // Edit
                await NoticeRepositoryAsyncReference.EditAsync(Model);

                await EditCallback.InvokeAsync(true);
            }
            //IsShow = false;
        }
コード例 #5
0
        public async Task <ActionResult> Create(NoticeViewModel form, CancellationToken cancellationToken)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(form));
                }

                var file = form.ImageFile.OpenReadStream();

                MemoryStream fileMemoryStream = null;

                if (MimetypesToConvert.Contains(form.ImageFile.ContentType))
                {
                    fileMemoryStream = file.ToWebpMemoryStream();
                }
                else
                {
                    fileMemoryStream = await file.ToMemoryStreamAsync()
                                       .ConfigureAwait(false);
                }

                var filename = $"Images/Notice/{Guid.NewGuid()}.webp";

                await _noticeRepository.FileUploadAsync(filename, fileMemoryStream, "image/webp", cancellationToken)
                .ConfigureAwait(false);

                await fileMemoryStream.DisposeAsync()
                .ConfigureAwait(false);

                form.Image = filename;

                await _noticeRepository.AddAsync(form, cancellationToken)
                .ConfigureAwait(false);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }