📄 businessmanager.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 + -