⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 businessmanager.cs

📁 ASP.NET简洁论坛源代码 这是一个简单的论坛
💻 CS
字号:
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Data.SqlClient;
using NetFocus.Web.Core.Providers;
using System.IO;
using System.Drawing.Imaging;
using System.Drawing;
using System.Drawing.Drawing2D;
using NetFocus.Web.Core;

namespace NetFocus.Web.Applications.Forum
{
    public class BusinessManager
    {
        #region Thread

        public static Thread GetThread(EntityRequest request)
        {
            return Entities.GetEntity(request) as Thread;
        }
        public static EntityList GetThreadList(EntityRequest request)
        {
            return Entities.GetEntities(request);
        }
        public static ErrorStatus CreateThread(Thread thread)
        {
            return Entities.CreateEntity(thread);
        }
        public static void UpdateThread(Thread thread)
        {
            Entities.UpdateEntity(thread);
        }
        public static void DeleteThread(int threadId)
        {
            Entities.DeleteEntity(threadId);
        }

        #endregion

        #region Post

        public static ErrorStatus CreatePost(Post post)
        {
            return Entities.CreateEntity(post);
        }
        public static Post GetPost(EntityRequest request)
        {
            return Entities.GetEntity(request) as Post;
        }
        public static EntityList GetPostList(EntityRequest request)
        {
            EntityList posts = Entities.GetEntities(request);
            for (int i = 0; i < posts.Count; i++)
            {
                (posts[i] as Post).PostIndex = i + 1;
            }
            return posts;
        }
        public static void UpdatePost(Post post)
        {
            Entities.UpdateEntity(post);
        }
        public static void DeletePost(int postId)
        {
            Entities.DeleteEntity(postId);
        }

        #endregion

        #region Section

        public static ErrorStatus CreateSection(Section section)
        {
            return Entities.CreateEntity(section);
        }
        public static Section GetSection(int sectionId)
        {
            return Entities.GetEntity(RequestBuilder.BuildSectionRequest(sectionId)) as Section;
        }
        public static EntityList GetSectionList(EntityRequest request)
        {
            return Entities.GetEntities(request);
        }
        public static void UpdateSection(Section section)
        {
            Entities.UpdateEntity(section);
        }
        public static void DeleteSection(int sectionId)
        {
            DeleteSectionThreadsAndPosts(sectionId);
            Entities.DeleteEntity(sectionId);
        }

        public static void DeleteSectionThreadsAndPosts(int sectionId)
        {
            string str = "delete from tb_entities where entitytype=@EntityType and intfield1 = @SectionId";
            DataProvider provider = DataProvider.Instance;
            SqlCommand command = null;

            command = provider.CreateCommand(str);
            provider.AddParameter(command, "@EntityType", EntityType.Post, SqlDbType.Int);
            provider.AddParameter(command, "@SectionId", sectionId, SqlDbType.Int);
            provider.ExecuteCommandNonQuery(command);

            command = provider.CreateCommand(str);
            provider.AddParameter(command, "@EntityType", EntityType.ForumThread, SqlDbType.Int);
            provider.AddParameter(command, "@SectionId", sectionId, SqlDbType.Int);
            provider.ExecuteCommandNonQuery(command);
        }

        #endregion

        #region Group

        public static ErrorStatus CreateGroup(Group group)
        {
            return Entities.CreateEntity(group);
        }
        public static Group GetGroup(int groupId)
        {
            return Entities.GetEntity(RequestBuilder.BuildGroupRequest(groupId)) as Group;
        }
        public static EntityList GetGroupList(EntityRequest request)
        {
            return Entities.GetEntities(request);
        }
        public static void UpdateGroup(Group group)
        {
            Entities.UpdateEntity(group);
        }
        public static void DeleteGroup(int groupId)
        {
            EntityList sections = BusinessManager.GetSectionList(RequestBuilder.BuildSectionListRequest(groupId));
            foreach (Entity section in sections)
            {
                DeleteSection(section.EntityId);
            }
            Entities.DeleteEntity(groupId);
        }

        #endregion

        #region User Avatar

        public static void UpdateUserAvatar(ForumUser user, HttpPostedFile postedFile)
        {
            if (user == null || postedFile == null || postedFile.InputStream == null)
            {
                return;
            }

            Avatar avatar = new Avatar(ResizeImage(postedFile.InputStream, 150, 150));

            user.AvatarFileName = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf("\\") + 1);
            user.AvatarContent = avatar.Content;
            user.AvatarLength = avatar.Length;

            Users.Update(user);
        }
        public static void UpdateUserAvatar(ForumUser user, Stream stream)
        {
            if (user == null || stream == null)
            {
                return;
            }

            Avatar avatar = new Avatar(ResizeImage(stream, 150, 150));

            user.AvatarFileName = null;
            user.AvatarContent = avatar.Content;
            user.AvatarLength = avatar.Length;

            Users.Update(user);
        }
        public static void DeleteUserAvatar(ForumUser user)
        {
            user.AvatarFileName = null;
            user.AvatarContent = null;
            user.AvatarLength = 0;

            Users.Update(user);
        }
        public static void SetUserDefaultAvatar(ForumUser user)
        {
            string file = WebContext.Current.HttpContext.Server.MapPath("~/utility/anonymous.gif");
            if (!File.Exists(file))
            {
                return;
            }
            Stream stream = GetAnonymousUserAvatarStream(file, 150, 150);
            if (stream != null)
            {
                UpdateUserAvatar(user, stream);
            }
        }

        public static MemoryStream GetAnonymousUserAvatarStream(string file, int height, int width)
        {
            MemoryStream returnStream = new MemoryStream();
            Image image = Image.FromFile(file);
            Size newSize = Globals.GetNewSize(width, height, image.Width, image.Height);
            Bitmap outBitmap = new Bitmap(newSize.Width, newSize.Height);
            Graphics g = Graphics.FromImage(outBitmap);

            g.CompositingQuality = CompositingQuality.HighQuality;
            g.SmoothingMode = SmoothingMode.HighQuality;
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;
            g.DrawImage(image, new Rectangle(0, 0, newSize.Width, newSize.Height), new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);

            g.Dispose();

            EncoderParameters encoderParams = new EncoderParameters();
            long[] quality = new long[1];

            quality[0] = 100;

            EncoderParameter encoderParameter = new EncoderParameter(Encoder.Quality, quality);

            encoderParams.Param[0] = encoderParameter;

            ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();

            ImageCodecInfo jpegICI = null;

            for (int i = 0; i < arrayICI.Length; i++)
            {
                if (arrayICI[i].FormatDescription.Equals("JPEG"))
                {
                    jpegICI = arrayICI[i];
                    break;
                }
            }

            if (jpegICI != null)
            {
                outBitmap.Save(returnStream, jpegICI, encoderParams);
            }
            else
            {
                outBitmap.Save(returnStream, image.RawFormat);
            }

            return returnStream;

        }
        private static MemoryStream ResizeImage(Stream stream, int height, int width)
        {
            MemoryStream returnStream = new MemoryStream();
            Image image = Image.FromStream(stream);
            Size newSize = Globals.GetNewSize(width, height, image.Width, image.Height);
            Bitmap outBitmap = new Bitmap(newSize.Width, newSize.Height);
            Graphics g = Graphics.FromImage(outBitmap);

            g.CompositingQuality = CompositingQuality.HighQuality;
            g.SmoothingMode = SmoothingMode.HighQuality;
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;
            g.DrawImage(image, new Rectangle(0, 0, newSize.Width, newSize.Height), new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);

            g.Dispose();

            outBitmap.Save(returnStream, image.RawFormat);

            return returnStream;

        }

        #endregion
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -