Beispiel #1
0
        /// <summary>
        /// 아티클을 저장한다.
        /// </summary>
        /// <param name="model"></param>
        public static int InsertArticle(ArticleModel model, HttpFileCollection fileCollection)
        {
            object trackbackUrl = model.TrackbackUrl.Length > 0 ? (object)model.TrackbackUrl : DBNull.Value;

            SqlParameter[] param =
            {
                CreateInParam("@CategoryID",     SqlDbType.Int,                  4, model.CategoryID),
                CreateInParam("@Title",          SqlDbType.VarChar,            255, model.Title),
                CreateInParam("@Content",        SqlDbType.Text,    Int32.MaxValue, model.Content),
                CreateInParam("@TrackbackUrl",   SqlDbType.VarChar,            255, trackbackUrl),
                CreateInParam("@PublicFlag",     SqlDbType.Bit,                  1, model.PublicFlag),
                CreateInParam("@PublicRss",      SqlDbType.Bit,                  1, model.PublicRss),
                CreateInParam("@AllowComment",   SqlDbType.Bit,                  1, model.AllowComment),
                CreateInParam("@AllowTrackback", SqlDbType.Bit,                  1, model.AllowTrackback),
                CreateReturnValue()
            };

            SqlCommand cmd = GetSpCommand("UBA_InsertArticle", param, IsolationLevel.ReadCommitted);

            try
            {
                cmd.ExecuteNonQuery();
                int seq = (int)cmd.Parameters["@ReturnValue"].Value;

                // 첨부파일 저장
                for (int i = 0; i < fileCollection.Count; i++)
                {
                    if (fileCollection[i].ContentLength <= 0)
                    {
                        continue;
                    }
                    string path = string.Format("{0}/{1}", REPOSITORY_ARTICLE, seq.ToString());
                    RepositoryManager.GetInstance().SaveAs(path, fileCollection[i]);

                    AttachFileModel fileModel = new AttachFileModel();
                    fileModel.ArticleNo = seq;
                    fileModel.FilePath  = path + "/" + Path.GetFileName(fileCollection[i].FileName);
                    fileModel.FileSize  = fileCollection[i].ContentLength;

                    InsertAttachFile(cmd, fileModel);

                    fileModel = null;
                }

                // 태그 저장
                if (!InsertTag(cmd, seq, model.Tag))
                {
                    throw new UmcDataException("Tag 저장 중 에러");
                }

                ReleaseCommandWithCommit(cmd);

                return(seq);
            }
            catch (Exception ex)
            {
                ReleaseCommandWithRollback(cmd);
                throw new UmcDataException("UBA_InsertArticle 프로시져 호출중 에러", ex);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 파일번호로 첨부파일을 가져온다.
        /// </summary>
        /// <param name="fileNo"></param>
        /// <returns></returns>
        public static AttachFileModel GetAttachFileByFileNo(int fileNo)
        {
            SqlParameter[] param =
            {
                CreateInParam("@FileNo", SqlDbType.Int, 4, fileNo)
            };

            SqlCommand    cmd    = GetRawCommand("SELECT * FROM AttachFile WHERE FileNo=@FileNo", param);
            SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

            if (!reader.Read())
            {
                return(new AttachFileModel());
            }

            AttachFileModel fileModel = new AttachFileModel((int)reader["FileNo"]);

            fileModel.ArticleNo  = (int)reader["ArticleNo"];
            fileModel.FilePath   = (string)reader["FilePath"];
            fileModel.FileSize   = (int)reader["FileSize"];
            fileModel.DownCount  = (int)reader["DownCount"];
            fileModel.InsertDate = (DateTime)reader["InsertDate"];

            return(fileModel);
        }
        public bool DeleteFileAttachment(AttachFileModel model)
        {
            try
            {
                using (var db = new PORTALEntities())
                {
                    var item = (from c in db.Attachments
                                where c.AttachId == model.AttachId
                                select c).FirstOrDefault();
                    db.Attachments.Remove(item);
                    db.SaveChanges();
                    //return true;
                }
                //kiem tra neu khong con file dinh kem nao nua thi cap nhat lai ben formtemplate
                if (GetList(model.MasterId, model.ModuleId).Any()) return true;

                using (var db = new PORTALEntities())
                {
                    var item = (from c in db.CmsFormTemplates
                        where c.Id == model.MasterId
                        select c).FirstOrDefault();
                    if(item == null)
                        return false;
                    item.IsAttachFile = false;
                    db.SaveChanges();
                    return true;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("FileAttacmentRepository DeleteFileAttachment: " + ex.Message + " Inner exception: " + ex.InnerException.Message);
                return false;
            }
        }
Beispiel #4
0
        private static void UpdateByIdTest()
        {
            var repo = new AttachFileRepository();

            var model = new AttachFileModel()
            {
                FileName = "Computer.jpg", FileSize = 2345, Id = 1
            };

            repo.UpdateById(model.FileName, model.FileSize, model.Id);
        }
Beispiel #5
0
        private static void AddTest()
        {
            var repo = new AttachFileRepository();

            //var model = new AttachFileModel() { UserId = 5, BoardId = 4, ArticleId = 1, FileName = "Photo.png", FileSize = 1234 };
            var model = new AttachFileModel()
            {
                UserId = 5, BoardId = 4, ArticleId = 1, FileName = "Photo.jpg", FileSize = 2345
            };

            repo.Add(model);
        }
Beispiel #6
0
        /// <summary>
        /// 첨부 파일 정보를 데이터베이스에 저장
        /// </summary>
        /// <param name="model">AttachFileModel 모델 클래스</param>
        public void Add(AttachFileModel model)
        {
            string sql = "AttachFilesAdd";

            var parameters = new DynamicParameters();

            parameters.Add("@UserId", value: model.UserId, dbType: DbType.Int32, direction: ParameterDirection.Input);
            parameters.Add("@BoardId", value: model.BoardId, dbType: DbType.Int32, direction: ParameterDirection.Input);
            parameters.Add("@ArticleId", value: model.ArticleId, dbType: DbType.Int32, direction: ParameterDirection.Input);
            parameters.Add("@FileName", value: model.FileName, dbType: DbType.String, direction: ParameterDirection.Input);
            parameters.Add("@FileSize", value: model.FileSize, dbType: DbType.Int32, direction: ParameterDirection.Input);

            db.Execute(sql, parameters, commandType: CommandType.StoredProcedure);
        }
Beispiel #7
0
        private static void InsertAttachFile(SqlCommand cmd, AttachFileModel model)
        {
            cmd.Parameters.Clear();

            cmd.CommandText = "UAA_InsertAttachFile";
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add("@ArticleNo", SqlDbType.Int);
            cmd.Parameters.Add("@FilePath", SqlDbType.VarChar, 255);
            cmd.Parameters.Add("@FileSize", SqlDbType.Int);

            cmd.Parameters["@ArticleNo"].Value = model.ArticleNo;
            cmd.Parameters["@FilePath"].Value  = model.FilePath;
            cmd.Parameters["@FileSize"].Value  = model.FileSize;

            cmd.ExecuteNonQuery();
        }
Beispiel #8
0
        private static void FillAttachFile(SqlDataReader reader, ArticleModel model)
        {
            if (!reader.NextResult())
            {
                return;
            }

            while (reader.Read())
            {
                AttachFileModel fileModel = new AttachFileModel((int)reader["FileNo"]);
                fileModel.ArticleNo  = (int)reader["ArticleNo"];
                fileModel.FilePath   = (string)reader["FilePath"];
                fileModel.FileSize   = (int)reader["FileSize"];
                fileModel.DownCount  = (int)reader["DownCount"];
                fileModel.InsertDate = (DateTime)reader["InsertDate"];

                model.AttachFile.Add(fileModel);

                fileModel = null;
            }
        }
        public ActionResult DeleteFile(AttachFileModel model)
        {
            if (model.AttachId != null)
            {
                if (!(new AttachmentRepository()).DeleteFileAttachment(model))
                {
                    return(Json(new { result = "ERROR" }));
                }
            }

            if (string.IsNullOrEmpty(model.FilePath))
            {
                return(Json(new { result = "ERROR" }));
            }

            var serverPath = Request.MapPath("~" + model.FilePath);

            if (System.IO.File.Exists(serverPath))
            {
                System.IO.File.Delete(serverPath);
            }
            return(Json(new { result = "OK" }));
        }