Разработка интерфейса социальной сети "Ученые Украины"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

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>