Пример #1
0
        /// <summary>
        /// Adds a new article
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public BlogArticle AddNewArticle(Dictionary<String, Object> data)
        {
            BlogArticle blogArticle;
            Int32 articleId, userId;
            String title = (data["title"]).ToString();
            String description = (data["description"]).ToString();
            String articleData = (data["data"]).ToString();
            String userName = (data["userName"]).ToString();
            DateTime createDate = Convert.ToDateTime(data["createDate"]);
            blogArticle = new BlogArticle
            {
                Title = title,
                Description = description,
                Data = articleData,
                CreateDate = createDate,
                UserName = userName
            };
            using (TransactionScope scope = new TransactionScope())
            {
                SqlCommand command = GetCommand(OperationType.AddNewArticle);
                command.Parameters.Add(GetParameter("@title", title, DbType.String));
                command.Parameters.Add(GetParameter("@description", description, DbType.String));
                command.Parameters.Add(GetParameter("@data", articleData, DbType.String));
                command.Parameters.Add(GetParameter("@createDate", createDate, DbType.DateTime));

                //get our new article's id now
                articleId = Convert.ToInt32(command.ExecuteScalar());
                CloseConnection(command.Connection);
                blogArticle.ID = articleId;

                //now lets get the user id
                command = GetCommand(OperationType.GetUserIdByUserName);
                command.Parameters.Add(GetParameter("@userName", userName, DbType.String));
                userId = Convert.ToInt32(command.ExecuteScalar());
                CloseConnection(command.Connection);
                blogArticle.UserID = userId;

                //new add a new record into the Article-User relationship table
                command = GetCommand(OperationType.AddArticleUserRelation);
                command.Parameters.Add(GetParameter("@userId", userId, DbType.Int32));
                command.Parameters.Add(GetParameter("@articleId", articleId, DbType.Int32));
                command.ExecuteNonQuery();

                //we got this far so this means everything is good to go
                CloseConnection(command.Connection);

                //add the new article Id to the data dictionary
                data.Add("articleId", articleId);

                //now lets update the tags
                blogArticle.Tags = SetArticleTags(data);

                //Finally complete the transaction
                scope.Complete();
            }

            return blogArticle;
        }
Пример #2
0
        /// <summary>
        /// Get the article data by the article id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public BlogArticle GetArticle(Int32 id)
        {
            BlogArticle article = new BlogArticle();
            operationParams.Clear();
            operationParams.Add("id", id);
            article = dataController.ExecuteOperation(OperationType.ReadArticleById, operationParams) as BlogArticle;

            return article;
        }
Пример #3
0
        /// <summary>
        /// Adds a new article
        /// </summary>
        /// <param name="article"></param>
        /// <returns></returns>
        public BlogArticle AddNewArticle(BlogArticle article)
        {
            BlogArticle blogArticle;
            if (article == null)
                throw new ArgumentNullException("article");
            operationParams.Clear();
            operationParams.Add("title", article.Title);
            operationParams.Add("description", article.Description);
            operationParams.Add("data", article.Data);
            operationParams.Add("createDate", DateTime.Now);
            operationParams.Add("userName", article.UserName);
            operationParams.Add("tags", article.Tags);

            blogArticle = dataController.ExecuteOperation(OperationType.AddNewArticle, operationParams) as BlogArticle;
            return blogArticle;
        }
Пример #4
0
        /// <summary>
        /// Updates the specified article 
        /// </summary>
        /// <param name="article"></param>
        /// <returns></returns>
        public Int32 UpdateArticle(BlogArticle article)
        {
            Int32 retVal;

            operationParams.Clear();
            operationParams.Add("articleId", article.ID);
            operationParams.Add("title", article.Title);
            operationParams.Add("description", article.Description);
            operationParams.Add("data", article.Data);
            operationParams.Add("tags", article.Tags);

            retVal = Convert.ToInt32(dataController.ExecuteOperation(OperationType.UpdateArticleById, operationParams));
            return retVal;
        }
Пример #5
0
        /// <summary>
        /// Read article by its ID
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public BlogArticle ReadArticleById(Dictionary<String, Object> data)
        {
            BlogArticle articleModel;
            SqlDataReader dataReader;
            BlogArticle returnData = new BlogArticle();
            SqlCommand command = GetCommand(OperationType.ReadArticleById);
            Int32 id = Convert.ToInt32(data["id"]);

            command.Parameters.Add(GetParameter("@articleId", id, DbType.Int32));
            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                articleModel = GetBlogArticle((Int32)dataReader["ID"],
                                Convert.ToInt32(dataReader["UserId"]),
                                dataReader["UserName"].ToString(),
                                dataReader["Article_Title"].ToString(),
                                dataReader["Article_Description"].ToString(),
                                dataReader["Article_Data"].ToString(),
                                Convert.ToDateTime(dataReader["Create_Date"]),
                                String.Join(",", GetArticleTags(id).ToArray()));

                returnData = articleModel;
            }
            CloseConnection(command.Connection);
            return returnData;
        }
 /// <summary>
 /// Updates an article
 /// </summary>
 /// <param name="article"></param>
 public void PutArticle(BlogArticle article)
 {
     blogArticleRepository.UpdateArticle(article);
 }
 /// <summary>
 /// Adds a new article
 /// </summary>
 /// <param name="article"></param>
 public BlogArticle PostArticle(BlogArticle article)
 {
     return blogArticleRepository.AddNewArticle(article);
 }