Разработка интерфейса социальной сети "Ученые Украины"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
set;}string Subject {get; set;}string Body {get; set;}DateTime ReceiptDate {get; set;}string FromUser {get; set;}string ToUser {get; set;}bool Readed {get; set;}MessageDetails()
{}MessageDetails (int messageID, string subject, string body,receiptDate, string fromUser, string toUser, bool readed)
{. MessageID = messageID;. Subject = subject;. Body = body;. ReceiptDate = receiptDate;. FromUser = fromUser;. ToUser = toUser;
this. Readed = readed;}}
Так же был реализован класс, который инкапсулирует весь код доступа к данным и специфичные для конкретной базы детали, также позволяет задавать строки подключения к базе данных в файле конфигураций web.config:
public class Messagesstring MainDBConnectionString;Messages()
{. MainDBConnectionString = WebConfigurationManager. ConnectionStrings [MainDBConnectionString].ConnectionString;
}Messages (string ConnectionString)
{
this. MainDBConnectionString = ConnectionString;
}
Каждый метод использует один и тот же тщательный подход, полагаясь исключительно на хранимые процедуры для взаимодействия с базой. Вот как будет выглядеть код вставки записи:
public void InsertMassege (string subject, string body, DateTime receiptDate, string fromUser, string toUser, bool readed)
{(SqlConnection conn = new SqlConnection(MainDBConnectionString))
{cmd = new SqlCommand (Message_AddMessage, conn);. CommandType = CommandType. StoredProcedure;. Parameters. Add (new SqlParameter (@Subject, SqlDbType.NVarChar, 256));. Parameters [@Subject].Value = subject;. Parameters. Add (new SqlParameter (@Body, SqlDbType.NText, 1073741823));. Parameters [@Body].Value = body;. Parameters. Add (new SqlParameter (@ReceiptDate, SqlDbType. DateTime, 8));. Parameters [@ReceiptDate].Value = receiptDate;. Parameters. Add (new SqlParameter (@FromUser, SqlDbType.NVarChar, 128));. Parameters [@FromUser].Value = fromUser;. Parameters. Add (new SqlParameter (@ToUser, SqlDbType.NVarChar, 128));. Parameters [@ToUser].Value = toUser;. Parameters. Add (new SqlParameter (@Readed, SqlDbType. Bit, 1));. Parameters [@Readed].Value = readed;
conn. Open();. ExecuteNonQuery();
}
Хранимые процедуры находятся в базе данных, ниже представлена процедура, которую использует метод вставки записи:
ALTER PROCEDURE Groups_InsertGroup
(
@GroupID int,
@GroupName nvarchar(256),
@GroupTheme nvarchar(512),
@GroupBody ntext,
@GroupLeader nvarchar(256))INTO Groups (GroupID, GroupName, GroupTheme, GroupBody, GroupLeader) values (@GroupID,@GroupName,
@GroupTheme,@GroupBody,@GroupLeader);INTO GroupMembers (GroupID, UserName) values (@GroupID,@GroupLeader)
На рисунке 3.7 изображено, как пользователь может просматривать список своих сообщений, серым цветом подсвечиваются тема прочитанных сообщений, черным не прочитанных.
Рисунок 3.7 - Сообщения
Выбрав сообщение, можно увидеть имя и фамилию пользователя, от которого пришло сообщение, тему и тело сообщения, так же можно сразу же ответить, интерфейс изображен на рисунке 3.8.
Рисунок 3.8 - Отправка сообщений
3.4 Реализация интерфейса объединения в группы
Для реализации возможности создание, добавления и общения внутри групп, было реализовано четыре класса: GroupDetails - отображает значение таблицы Groups в базе данных, Group - реализует доступ к базе данных, добавление, редактирование, удаление, GroupCommentDetails - отображает значения таблицы GroupComment в базе данных, GroupComment, подобно классу Group, реализует доступ к базе данных, редактирование и удаление.
На рисунке 3.9 изображен список групп, название, тема группы, тело группы и лидер группы, по нажатию на название группы можно зайти в группу, оставить комментарии, интерфейс изображен на рисунке 3.10, если вы лидер, то можно пригласить в группу других пользователей или удалить группу, интерфейс изображен на рисунке 3.11.
Рисунок 3.9 - Группы
Рисунок 3.10 - Интерфейс группы
Рисунок 3.11 - Добавление группы
На рисунке 3.12 изображен интерфейс управления группой, можно пригласить пользователя, после нажатия на кнопку Invite, пользователь увидит список доступных пользователей для добавления в группу, список пользователей изображен на рисунке 3.13
Рисунок 3.12 - Интерфейс управления группой
Рисунок 3.13 - Список пользователей
3.5 Программный модуль реализации объявлений о событиях
События реализованы аналогично группам, за исключением что было добавлено поле даты события. На рис. 3.14 изображен список доступных событий, 3.15 - добавление события, 3.16 - интерфейс события.
Рисунок 3.14 - Список событий
Рисунок 3.15 - Добавление события
Рисунок 3.16 - Интерфейс события
3.6 Реализация интерфейса добавления друзей
Возможность добавление друга реализована с помощью одного класса Friends и таблицы в базе данных MainDb. Friends, куда записываеться логин пользователя, и логин пользователя - друга. На рис. 3.17 показан список пользователь, которые являются друзьями текущего пользователя.
Рисунок 3.17 - Список друзей
По выбору одного из друзей, пользователь перейдет на страницу друга, увидит подробную информацию, как на рис. 3.18.
Рисунок 3.18 - Информация пользователя
Также, у пользователя есть возможность, воспользовавшись интерфейсом на рис. 3.19, убрать пользователя из друзей, написать сообщение, пригласить в группу или подписать на событие.
Рисунок 3.19 - Интерфейс друга
3.7 Программная реализация поиска
Для реализации поиска создан класс Search с методами, возвращающими данные, в которых отвечают запросу, методы написаны с помощью интегрированного языка запросов (LINQ), один из методов представлен ниже:
public List SearchUser (string value)
{();Users = Membership. GetAllUsers();(MembershipUser user in Users)
{. Add (new UserProfile (user. UserName));
}query = from user in usersProfileuser. FirstName. ToLower().Contains(value) || user. LastName. ToLower().Contains(value)user; query. ToList();
}
Поиск видеться по критериям, таким как: по статьям, по пользователям, по событиям и по группам, что показано на рисунке 3.20.
Рисунок 3.20 - П?/p>