Разработка CMS системы на основе технологии ASP.NET

Проект программного продукта, представляющего собой веб-приложение в виде системы управления веб-контентом и предназначенного для быстрого создания простых сайтов. Функциональные требования в рамках языка UML. Разработка визуальных интерфейсов системы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 11.07.2012
Размер файла 5,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

руб.;

Амортизационные отчисления в год рассчитываются по формуле (9.11):

,

(9.11)

где - затраты на амортизационные отчисления;

- стоимость персонального компьютера ( руб.);

- процент отчисления на амортизацию.

Процент отчисления на амортизацию рассчитывается согласно методике, отраженной в статье 259.1 НК РФ. Согласно постановлению правительства РФ от 1 января 2002 под № 1 «О классификации основных средств, включаемых в амортизационные группы», срок использования основных средств составляет от 2 до 3 лет. В рамках дипломного проекта установим срок полезного использования 2 года.

Определим процент отчисления на амортизацию:

.

Произведем расчет амортизационных отчислений по формуле (9.11)

руб./год.

Прочие расходы составляют 5 % от общей суммы затрат. Они рассчитываются по формуле (9.12):

.

(9.12)

По формуле (9.12) находим:

руб./год.

Зная все данные, подсчитаем стоимость одного часа машинного времени по формуле (9.9):

руб.

Рассчитаем себестоимость программного продукта по формуле (9.8):

руб.

Цена программного продукта рассчитывается по формуле (9.13):

,

(9.13)

Где

- цена программного продукта;

- себестоимость программного продукта;

- рентабельность программного продукта.

Рентабельность программного продукта примем:

По формуле (9.13) находим:

руб.

Цена программного продукта с учетом НДС рассчитывается по формуле (9.14):

,

(10.14)

где - цена программного продукта с НДС;

- цена программного продукта;

- составляет 18% от цены программного продукта согласно статье 164 из 21 главы НК РФ.

По формуле (9.14) вычисляется цена программного продукта с учетом НДС:

руб.

Итого стоимость данного программного продукта на рынке будет 155269,36 руб.

Однако оценить экономический эффект данного программного продукта в денежном эквиваленте достаточно трудно. Чтобы оценить эффект данного программного продукта, обратимся к его достоинствам.

Ключевым достоинством системы является отсутствие базы данных. Для небольших сайтов это является лучшим решением. Основные преимущества такого подхода в том, что исключаются проблемы функционирования сайта при сбоях сервера базы данных на веб-сервере, и в более простой настройке самой CMS-системы. Кроме того, это значительно упрощает процесс переноса сайта с локального сервера на хостинг в Интернете.

Одним из главных достоинств разработанной системы является удобный и интуитивно понятный интерфейс. Это позволяет быстро освоиться в системе и затратить максимально короткое время на разработку сайта с помощью нее.

Еще одним из основных достоинств системы является встроенный текстовый редактор статей. В редактор включены основные возможности форматирования текста, такие как задание стиля шрифта, размер шрифта и основные функции форматирования начертания: жирный, курсив, подчеркнутый. Эта возможность позволяет создавать более интересное оформление текста на странице.

Функция гибкой настройки шаблонов оформления страниц будет полезна для пользователей CMS, знакомых с CSS. Это позволяет изменять шаблон оформления страницы по своему желанию.

Возможность добавления нескольких пользователей в систему позволяет вести командную разработку сайта.

Заключение

В рамках дипломного проекта был разработан программный продукт, представляющий собой веб-приложение в виде системы управления веб-контентом и предназначенный для быстрого создания простых сайтов за короткий срок. Было пройдено несколько этапов, на каждом из которых получены результаты:

1. Была рассмотрена предметная область и существующие CMS системы в классе lite.

2. Были сформулированы функциональные требования в рамках языка UML. Это позволило перед началом разработки четко задать разграничение доступных действий авторизованных и неавторизованных пользователей.

3. Проведено проектирование общей архитектуры приложения на основе технологии ASP.NET и архитектурного шаблона MVC.

4. Проведено прототипирование визуальных интерфейсов системы, в процессе чего был продуман максимально простой и удобный пользовательский интерфейс.

5. Успешно проведена апробация на проекте создания сайта автомастерской. Был создан рабочий сайт с красивым дизайном, содержащий на страницах статьи и изображения.

В результате проделанной работы, я получила опыт создания веб-приложений на основе технологии .NET (C#) и ASP.NET MVC 3 Framework.

Библиография

1. Полубояров В. В. Введение в технологии создания веб-узлов. - М.: БИНОМ, 2009. - с. 24

2. Сайт проекта FreeBSD [Электронный ресурс] URL: http://www.freebsd.org/ (дата обращения 04.03.2011)

3. Сайт проекта Debian [Электронный ресурс] URL: http://www.debian.org (дата обращения 04.03.2011)

4. Сайт Windows Server [Электронный ресурс] URL: http://www.microsoft.com/windowsserver2008/ru/ru/default.aspx (дата обращения 04.03.2011)

5. Сайт проекта Apache [Электронный ресурс] URL: http://www.apache.org/ (дата обращения 04.03.2011)

6. Сайт IIS [Электронный ресурс] URL: http://www.iis.net/ (дата обращения 04.03.2011)

7. MSDN Magazine [Электронный ресурс] URL:http://msdn.microsoft.com/ru-ru/magazine/ (дата обращения 04.03.2011)

8. Сайт ASP.NET [Электронный ресурс] URL: http://www.asp.net/ (дата обращения 05.03.2011)

9. MSDN [Электронный ресурс] URL: http://msdn.microsoft.com/en-us/library/aa286483.aspx (дата обращения 05.03.2011)

10. Сайт CGI [Электронный ресурс] URL: http://www.cgi.com/ (дата обращения 05.03.2011)

11. Официальный сайт Silverlight [Электронный ресурс] URL: http://www.silverlight.net/ (дата обращения 05.03.2011)

12. Официальный сайт Rumba CMS [Электронный ресурс] URL:

http://rumbacms.com (дата обращения 10.03.2011)

13. Сайт русскоязычной поддержки Rumba CMS [Электронный ресурс] URL: http://rumba.net.ru (дата обращения 10.03.2011)

14. Хостинг Народ от Яндекс [Электронный ресурс] URL: http://narod.yandex.ru/ (дата обращения 10.03.2011)

15. Официальный сайт MadeSimple CMS [Электронный ресурс] URL: http://www.cmsmadesimple.org (дата обращения 10.03.2011)

16. Сайт русскоязычной поддержки MadeSimple CMS [Электронный ресурс] URL: http://www.cmsmadesimple.ru/ (дата обращения 10.03.2011)

17. Сайт разработчиков Kandidat CMS [Электронный ресурс] URL: http://www.kan-studio.ru/ (дата обращения 12.03.2011)

18. Официальный сайт Zimplit CMS [Электронный ресурс]URL: http://www.zimplit.com/index.html (дата обращения 12.03.2011)

19. Официальный сайт GetSimple CMS [Электронный ресурс] URL: http://get-simple.info/ (дата обращения 12.03.2011)

20. Сайт русскоязычной поддержки GetSimple CMS [Электронный ресурс] URL: http://get-simple.info/ (дата обращения 12.03.2011)

21. Сайт Visual Studio [Электронный ресурс] URL: http://www.microsoft.com/visualstudio/ (дата обращения 29.03.2011)

22. Сайт MSDN о Visual C# [Электронный ресурс] URL: http://msdn.microsoft.com/ru-ru/vcsharp/default.aspx (дата обращения 29.03.2011)

23. Официальный сайт ASP.NET [Электронный ресурс] URL: http://www.asp.net/ (дата обращения 29.03.2011)

24. Сайт ASP.NET [Электронный ресурс] URL: http://www.asp.net/mvc/mvc3 (дата обращения 29.03.2011)

25. Роб Камерон, Дэйл Михалк ASP.NET 3.5, компоненты AJAX и серверные элементы управления для профессионалов = Pro ASP.NET 3.5 Server Controls with AJAX Components. -- М.: «Вильямс», 2009. -- с. 608

26. Страница Razor на сайте Microsoft [Электронный ресурс] URL: http://www.microsoft.com/web/category/razor (дата обращения 03.04.2011)

27. Тренинг ASP.NET MVC 3 [Электронный ресурс] URL: http://www.techdays.ru/videos/3307.html (дата обращения 3.04.2011)

28. Сайт Enode [Электронный ресурс] URL: http://www.enode.com/x/markup/tutorial/mvc.html (дата обращения 3.04.2011)

29. RSDN [Электронный ресурс] URL: http://www.rsdn.ru/ (дата обращения 3.04.2011)

30. Сайт Консорциума всемирной паутины [Электронный ресурс] URL: http://www.w3.org/ (дата обращения 3.04.2011)

31. Сайт ARGO UML [Электронный ресурс] URL: http://www.argouml.tigrus.org (дата обращения 7.04.2011)

32. Официальный сайт Expression Studio [Электронный ресурс] URL: http://www.microsoft.com/expression/ (дата обращения 25.04.2011)

33. Магдануров Г. И., Юнев В. А. ASP.NET MVC Framework . - СПб.: БХВ-Петербург, 2010 - c. 20

34. Сайт шаблонов CSS [Электронный ресурс] URL: http://free-flash-templates.com (дата обращения 25.05.2011)

Приложение А

Наиболее употребляемые текстовые сокращения

СибГУТИ - Сибирский государственный университет телекоммуникаций и информатики

ПЗ - пояснительная записка

HTTP (HyperText Transfer Protocol) - протокол прикладного уровня передачи данных

Www (World Wide Web) - Всемирная паутина

CMS (Content Management System) - система управления контентом

HTML (HyperText Markup Language) - стандартный язык разметки документов во Всемирной паутине

CSS (Cascading Style Sheets) - каскадные таблицы стилей, формальный язык описания внешнего вида документа

URL (Uniform Resource Locator) - стандартизированный способ записи адреса ресурса в сети Интернет

UML (Unified Modeling Language) - унифицированный язык моделирования.

Приложение Б

Листинг исходного кода программного средства

Home (Index.cshtml)

@model XCMS.Models.MenuItemModel

@section Style{

<link href="@Url.Content(ViewBag.StylePath)" rel="stylesheet" type="text/css" media="screen" />

}

<div id="container">

<div id="header">

<div class="logo">

<h1>@ViewBag.Title</h1>

<h2>@ViewBag.Description</h2>

</div>

<div id="navcontainer">

<ul id="navlist">

@foreach (var @item in ViewBag.MenuList){

<li>@Html.ActionLink(

(string)item.name,

"Index",

"Home",

new{cat = item.cat},

null)

@{if (item.sub.Count > 0){

<ul>

@foreach (var @it in item.sub){

<li>@Html.ActionLink(

(string)it.name,

"Index",

"Home",

new{cat = it.cat},

null)

</li>

}

</ul>

}

}

</li>

}

</ul>

</div>

</div>

</div>

<div id="mainContent">

<h2>@ViewBag.PageName</h2>

@if (@ViewBag.Art.Count > 0){

foreach (var it in ViewBag.Art){

<p>

@if (@ViewBag.Art.Count > 1){

<h3>@it.name</h3>

}

@it.text

</p>

}}

</div>

HomeController.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using System.Xml.Linq;

using XCMS.Models;

using System.IO;

namespace XCMS.Controllers

{

public class HomeController : Controller

{

//

// GET: /Home/

publicstring title;

public List<string> text;

public List<StructDataModel> GetMainMenu(List<StructDataModel> data)

{

List<StructDataModel> MainMenuList =

data.FindAll(delegate(StructDataModel item)

{ return item.parrent.Equals("");});

return MainMenuList;

}

// Меню подраздела

public List<StructDataModel> GetSectionMenu(List<StructDataModel> data,string parrent)

{

List<StructDataModel> SectionMenu =

data.FindAll(delegate(StructDataModel item)

{ return item.parrent.Equals(parrent);});

return SectionMenu;

}

// получаем путь до главного файла

privatestring GetStylePath()

{

string path;

string fileName =

AppDomain.CurrentDomain.BaseDirectory +

"\\Data\\main.xml";

XDocument doc = XDocument.Load(fileName);

string styleName ="";

foreach (XElement el in doc.Root.Elements())

{

styleName =

el.Attribute("style").Value.ToString();

}

return (path =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Styles\\" +styleName +

"\\style.css");

}

privatestring GetSiteName()

{

string sitename = "no site name";

string fileName =

AppDomain.CurrentDomain.BaseDirectory +

"\\Data\\main.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

sitename =

el.Attribute("sitename").Value.ToString();

}

return sitename;

}

privatestring GetDescription()

{

string description = "";

string fileName =

AppDomain.CurrentDomain.BaseDirectory +

"\\Data\\main.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

description =

el.Attribute("description").Value.ToString();

}

return description;

}

private void GetMainPage()

{

string path =

AppDomain.CurrentDomain.BaseDirectory +

"\\Data\\mp.xml";

XDocument doc = XDocument.Load(path);

bool fl = true;

foreach (XElement el in doc.Root.Elements())

{

text.Clear();

if (fl)

{

title = el.Attribute("title").Value.ToString();

fl = false;

}

foreach (XElement element in el.Elements())

{

text.Add(element.Value);

}

}

}

// Получаем данные для страницы

private void GetChapter(string alias)

{

string filePath =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\" + alias+".xml";

if (System.IO.File.Exists(filePath))

{

XDocument doc = XDocument.Load(filePath);

bool fl = true;

foreach (XElement el in doc.Root.Elements())

{

if (fl)

{

title = el.Attribute("title").Value.ToString();

fl = false;

}

foreach (XElement element in el.Elements())

{

text.Add(element.Value);

}

}

}

else

{

//ViewBag.SectionMenu = "";

title = "White Page";

text.Clear();

}

}

// главный контрол

public ActionResult Index()

{

List<MenuItemModel> listOfItems = new List<MenuItemModel>();

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\struct.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

MenuItemModel temp = new MenuItemModel(el);

foreach (XElement elem in el.Elements())

{

MenuItemModel temp2 = new MenuItemModel(elem);

temp.sub.Add(temp2);

}

listOfItems.Add(temp);

}

ViewBag.MenuList = listOfItems;

// ViewBag.SubMenu = subList;

ViewBag.PageName = "";

ViewBag.StylePath = GetStylePath();

ViewBag.Title = GetSiteName();

ViewBag.Description = GetDescription();

// ввод страницы

List<ArticleModel> ArtStruct = new List<ArticleModel>();

if (Request["cat"] != null)

{

string CatfileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\cat.xml";

XDocument catdoc = XDocument.Load(CatfileName);

foreach (XElement el in catdoc.Root.Elements())

{

if (el.Attribute("name").Value.Equals(Request["cat"]))

{

ViewBag.PageName = Request["cat"];

foreach (XElement elem in el.Elements())

{

string artname = elem.Attribute("name").Value;

string artfileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\articles.xml";

XDocument artdoc = XDocument.Load(artfileName);

foreach (XElement elm in artdoc.Root.Elements())

{

if (artname.Equals(elm.Attribute("name").Value))

{

ArtStruct.Add(new ArticleModel{ name = elm.Attribute("name").Value, text = elm.Value});

break;

}

}

}

}

}

}

ViewBag.Art = ArtStruct;

//ViewBag.Text = text;

return View();

}

}

}

MenuItemModel.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using System.Xml.Linq;

namespace XCMS.Models

{

public class MenuItemModel

{

publicstring alias{ get; set;}

publicstring name{ get; set;}

publicstring cat{ get; set;}

public List<MenuItemModel> sub{ get; set;}

public MenuItemModel()

{

name = "";

alias = "";

cat = "";

sub = new List<MenuItemModel>();

}

public MenuItemModel(XElement xe)

{

name = xe.Attribute("name").Value;

alias = xe.Attribute("alias").Value;

cat = xe.Attribute("cat").Value;

sub = new List<MenuItemModel>();

}

}

}

MenuEditor.cshtml

@model XCMS.Models.MenuItemModel

@{

ViewBag.PageMenu = "selected";

Layout = "~/Views/Shared/_AdminLayout.cshtml";

ViewBag.Title = "MenuEditor";

}

<link href="@Url.Content("~/Content/adminstyle/menueditor.css")" rel="stylesheet" type="text/css" media="screen" />

<h2>Меню</h2>

<div id="content">

<div id="list5">

<table>

@foreach(XCMS.Models.MenuItemModel item in ViewBag.MenuList)

{

<tr class="outs">

<td>@item.name</td>

<td><div class="small button blue">

@Html.ActionLink(

"Переименовать",

"RenameMenu",

"Admin",

new{rename = item.name},

null)

</div></td>

<td><div class="small button red">

@Html.ActionLink(

"Удалить",

"DeleteItemMenu",

"Admin",

new{ del = item.name},

null)

</div>

</td>

</tr>

<tr>

<td>

@if (item.sub.Count > 0)

{

<ol>

@foreach (XCMS.Models.MenuItemModel item2 in item.sub)

{

<li>@item2.name</li>

}

</ol>

}

</td>

@if (item.sub.Count > 0)

{

<td>

@foreach (XCMS.Models.MenuItemModel item2 in item.sub){

<div class="small button blue">

@Html.ActionLink(

"Переименовать",

"RenameMenu",

"Admin",

new{ rename = item2.name},

null)

</div>

}

</td>

}

@if (item.sub.Count > 0)

{

<td>

@foreach (XCMS.Models.MenuItemModel item2 in item.sub){

<div class="small button red">

@Html.ActionLink(

"Удалить",

"DeleteItemMenu",

"Admin",

new{ del = item2.name},

null)

</div>

}

</td>

}

</tr>

}

<tr>

<td>

<div class="small button green">

@Html.ActionLink(

"Добавить",

"AddMenu",

"Admin",

null,

null)

</div>

</td>

</tr>

</table>

</div>

</div>

EditCat.cshtml

@{

ViewBag.Title = "Статьи раздела";

Layout = "~/Views/Shared/_AdminLayout.cshtml";

}

<link href="@Url.Content("~/Content/adminstyle/styles.css")" rel="stylesheet" type="text/css" media="screen" />

<h2>Настройка раздела @ViewBag.CatName</h2>

<br />

<div>

<h3 style="margin-left:30px">Связывание с элементом меню:</h3>

@using (Html.BeginForm("ConnectToMenu", "Admin", FormMethod.Post))

{

<input type="hidden" name="catname" value="@ViewBag.CatNam" />

<select name="itemattach" style="margin-left:20px">

@foreach (var item in ViewBag.MenuList)

{

<option value="@item.name">@item.name</option>

}

</select>

<input type="submit" value="ОК" />

}

</div>

<input type="hidden" id="selname" value="#" />

<div>

<h3 style="margin-left:30px">Основная статья</h3>

<p style="margin-left:30px">(будет отображена под логотипом)</p>

@using (Html.BeginForm("MainSheet", "Admin", FormMethod.Post))

{

<input type="hidden" name="catname" value="@ViewBag.CatNam" />

<select name="mainart" style="margin-left:20px">

@foreach (var item in ViewBag.Artlist)

{

<option value="@item">@item</option>

}

</select>

<input type="submit" value="ОК" />

}

</div>

<br />

<br />

<br />

<div>

<h3 style="margin-left:30px">Дополнительные статьи</h3>

<table>

<input type="hidden" name="catname" value="@ViewBag.CatNam" />

@foreach (var iten in ViewBag.Enabl)

{ <tr>

<td>@iten</td><td></td><td><input type=submit value="Удалить"></td>

</tr>

}

<tr>

@using (Html.BeginForm("AddToCat", "Admin", FormMethod.Post))

{

<td>

<input type="hidden" name="catname" value="@ViewBag.CatNam" />

<select name="add" style="margin-left:20px">

@foreach (var item in ViewBag.Artlist)

{

<option>@item</option>

}

</select></td><td><input type="submit" value="ОК" />

</td>}</div><td></td>

</tr>

<tr><td></td></tr>

</table>

</div>

MainTools.cshtml

@{

ViewBag.PageMainTools = "selected";

ViewBag.Title = "MainTools";

Layout = "~/Views/Shared/_AdminLayout.cshtml";

}

<link href="@Url.Content("~/Content/adminstyle/maintools.css")" rel="stylesheet" type="text/css" media="screen" />

<div id="sideLeft">

<div class="box">

<div class="innerBox">

<h3>Общие настройки</h3>

@using(Html.BeginForm("ChangeMains","Admin",FormMethod.Post))

{

<div>

<table border="0">

<tr>

<td>Название сайта:</td>

<td><input type="text" name="sitename" size="30" value="@ViewBag.SiteName" /></td>

</tr>

<tr>

<td class="atvo">Описание: </td>

<td><textarea cols="25" rows="3" name="descript">@ViewBag.Desc</textarea></td>

</tr>

<tr>

<td colspan="2" align="right">

<input type="submit" value="Сохранить" name="Save" />

</td>

</tr>

</table>

</div>

}

</div>

</div>

</div>

EditStyle.cshtml

@{

ViewBag.Title = "EditStyle";

Layout = "~/Views/Shared/_AdminLayout.cshtml";

}

<link href="@Url.Content("~/Content/adminstyle/styles.css")" rel="stylesheet" type="text/css" media="screen" />

<h2>Изменение стиля <strong>RC</strong></h2>

<div>

@using(Html.BeginForm("EditStyle","Admin",FormMethod.Post))

{

<input type="hidden" name="edit" value="@ViewBag.StyleName" />

<textarea rows="20" cols="100" name="cssstyle" id="cssstyle">

@ViewBag.StyleEdit

</textarea>

<br />

<div style="margin-left : 30px; margin-bottom: 10px">

<input type="submit" value="Сохранить" />

</div>

}

</div>

AddMenu.cshtml

@{

ViewBag.PageMainTools = "selected";

ViewBag.Title = "MainTools";

Layout = "~/Views/Shared/_AdminLayout.cshtml";

}

<link href="@Url.Content("~/Content/adminstyle/maintools.css")" rel="stylesheet" type="text/css" media="screen" />

<div id="sideLeft">

<div class="box">

<div class="innerBox">

<h3>Добавить элемент меню</h3>

@using(Html.BeginForm("AddMenuItem","Admin",FormMethod.Get))

{

<div>

<table border="0">

<tr>

<td>Название:</td>

<td><input type="text" name="menuitemname" size="30" /></td>

</tr>

<tr>

<td class="atvo">Родительский элемент: </td>

<td><select name="parrent">

<option value="">Нет</option>

@foreach (var it in ViewBag.Menu)

{

<option value="@it.name">@it.name</option>

}

</select></td>

</tr>

<tr>

<td colspan="2" align="right">

<input type="submit" value="Сохранить" name="Save" >

</td>

</tr>

</table>

</div>

}

</div>

</div>

</div>

AdminController.cshtml

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using System.IO;

using XCMS.Models;

using System.Xml.Linq;

using System.ComponentModel;

namespace XCMS.Controllers

{

public class AdminController : Controller

{

//

// GET: /Admin/

public ActionResult AddToCat()

{

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\cat.xml";

XDocument doc = XDocument.Load(fileName);

XElement art = new XElement("art",

new XAttribute("name", Request["add"])

);

foreach (XElement el in doc.Root.Elements())

{

string ttt = Request["catname"];

if (el.Attribute("name").Value.Equals(Request["catname"]))

{

el.Add(art);

break;

}}

doc.Save(fileName);

return RedirectToAction("EditCat");

}

public ActionResult ConnectToMenu()

{

string fileNamee =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\struct.xml";

XDocument doce = XDocument.Load(fileNamee);

foreach (XElement el in doce.Root.Elements())

{

if (el.Attribute("name").Value.Equals(Request["itemattach"]))

{

el.Attribute("cat").SetValue(Request["catname"]);

break;

}

foreach (XElement elem in el.Elements())

{

if (elem.Attribute("name").Value.Equals(Request["itemattach"]))

{

elem.Attribute("cat").SetValue(Request["catname"]);

break;

}

}

}

doce.Save(fileNamee);

return RedirectToAction("EditCat");

}

public ActionResult AddCat()

{

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\cat.xml";

XDocument doc = XDocument.Load(fileName);

XElement cat = new XElement("cat",

new XAttribute("name", Request["catname"]));

doc.Root.Add(cat);

doc.Save(fileName);

return RedirectToAction("Categories");

}

public ActionResult RenameMenu()

{

ViewBag.Change = "«"+Request["rename"]+"»";

ViewBag.Chan = Request["rename"];

return View();

}

public ActionResult AddMenuItem()

{

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\struct.xml";

XDocument doc = XDocument.Load(fileName);

XElement dat = new XElement("dat",

new XAttribute("name", Request["menuitemname"]),

new XAttribute("alias", ""),

new XAttribute("cat", Request["parrent"])

);

string ttt = Request["parrent"];

if (Request["parrent"].Equals(""))

doc.Root.Add(dat);

else

{

foreach (XElement el in doc.Root.Elements())

{

string str = el.Attribute("name").Value;

if (str == ttt)

{

el.Add(dat);

break;

}

}

}

doc.Save(fileName);

return RedirectToAction("MenuEditor");

}

public ActionResult AddMenu()

{

List<MenuItemModel> listOfItems = new List<MenuItemModel>();

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\struct.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

MenuItemModel temp = new MenuItemModel(el);

foreach (XElement elem in el.Elements())

{

MenuItemModel temp2 = new MenuItemModel(elem);

temp.sub.Add(temp2);

}

listOfItems.Add(temp);

}

ViewBag.Menu = listOfItems;

return View();

}

// главный контрол

public ActionResult Index()

{

return View();

//return RedirectToAction("Auth");

}

//

[HttpPost]

public ActionResult ChangeMains()

{

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\main.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

el.Attribute("sitename").SetValue(Request["sitename"]);

el.Attribute("description").SetValue(Request["descript"]);

}

doc.Save(fileName);

return RedirectToAction("Index");

}

// контрол "Смена стиля"

public ActionResult EditStyle(string editPath)

{

string path =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Styles\\" + Request["edit"] + "\\style.css";

if (Request["cssstyle"] != null)

{

StreamWriter write = new StreamWriter(new FileStream(path, FileMode.Open, FileAccess.Write));

write.Write(Request["cssstyle"]);

write.Close();

return RedirectToAction("Styles");

}

else

{

DirectoryInfo dir = new DirectoryInfo(path);

StreamReader read = new StreamReader(path);

ViewBag.StyleEdit = read.ReadToEnd();

read.Close();

}

ViewBag.StyleName = Request["edit"];

return View();

}

// Удаляем пункт меню

public ActionResult DeleteItemMenu()

{

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\struct.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

if (el.Attribute("name").Value.Equals(Request["del"]))

{

el.Remove();

break;

}

foreach (XElement elem in el.Elements())

{

if (elem.Attribute("name").Value.Equals(Request["del"]))

{

elem.Remove();

break;

}

}

}

doc.Save(fileName);

return RedirectToAction("MenuEditor");

}

// Редактируем элемент меню

[HttpGet]

public ActionResult EditMenuItem()

{

List<string> text = new List<string>();

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\struct.xml";

XDocument doc = XDocument.Load(fileName);

List<StructDataModel> listOfData = new List<StructDataModel>();

foreach(XElement el in doc.Root.Elements())

{

listOfData.Add(new StructDataModel{

id = int.Parse(el.Attribute("id").Value),

parrent = el.Attribute("parrent").Value,

alias = el.Attribute("alias").Value,

menuItem = el.Attribute("menu").Value,

dop = el.Attribute("dop").Value,

vetv = el.Attribute("vetv").Value});

}

ViewBag.ItemEdited = listOfData.Find(delegate(StructDataModel item)

{ return item.menuItem.Equals(Request["name"]);});

return View();

}

[HttpPost]

public ActionResult EditMenuItem(object r,string it)

{

List<string> text = new List<string>();

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\struct.xml";

XDocument doc = XDocument.Load(fileName);

List<string> listOfData = new List<string>();

foreach (XElement el in doc.Root.Elements())

{

if (el.Attribute("menu").Value.Equals(Request["MenuItemAddress"].ToString()))

el.Attribute("menu").SetValue(Request["MenuItemEdit"]);

}

doc.Save(fileName);

return RedirectToAction("MenuEditor");

}

// контрол "Редактирование пользователя"

public ActionResult Editusers()

{

return View();

}

// Получаем список стилей

public List<StylesModel> GetStyles()

{

// Возвращаем список стилей

string path =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Styles\\";

DirectoryInfo dir = new DirectoryInfo(path);

List<StylesModel> StylesList = new List<StylesModel>();

int ind = 0;

foreach (var item in dir.GetDirectories())

{

StylesList.Add(new StylesModel{

id = ind++, name = item.Name});

}

return StylesList;

}

// Удаляем стиль

public void RemoveStyle(string delPath)

{

string path =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Styles\\" + delPath+ "\\";

DirectoryInfo dir = new DirectoryInfo(path);

dir.Delete(true);

}

// Применяем стиль

public void UseStyle(string usePath)

{

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\main.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

el.Attribute("style").SetValue(usePath);

}

doc.Save(fileName);

}

// контрол Styles

public ActionResult Styles()

{

// Удаление стиля

if (Request["del"] != null)

RemoveStyle(Request["del"]);

// Применение стиля

if (Request["use"] != null)

UseStyle(Request["use"]);

List<StylesModel> styles = GetStyles();

ViewBag.Styles = styles;

return View();

}

// контрол MainTools

public ActionResult MainTools()

{

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\main.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

ViewBag.SiteName = el.Attribute("sitename").Value;

ViewBag.Desc = el.Attribute("description").Value;

}

return View();

}

// контрол MenuEditor

public ActionResult MenuEditor()

{

List<MenuItemModel> listOfItems = new List<MenuItemModel>();

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\struct.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

MenuItemModel temp = new MenuItemModel(el);

foreach (XElement elem in el.Elements())

{

MenuItemModel temp2 = new MenuItemModel(elem);

temp.sub.Add(temp2);

}

listOfItems.Add(temp);

}

ViewBag.MenuList = listOfItems;

return View();

}

// контрол Categories

public ActionResult Categories()

{

List<CategoryModel> catList = new List<CategoryModel>();

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\cat.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

CategoryModel temp = new CategoryModel(el);

foreach (XElement elem in el.Elements())

{

string temp2 = elem.ToString();

temp.articles.Add(temp2);

}

catList.Add(temp);

}

ViewBag.CatList = catList;

return View();

}

// контрол Articles

public ActionResult Articles()

{

List<string> artList = new List<string>();

string fileName =

AppDomain.CurrentDomain.BaseDirectory

+ "\\Data\\articles.xml";

XDocument doc = XDocument.Load(fileName);

foreach (XElement el in doc.Root.Elements())

{

artList.Add(el.Attribute("name").Value);

}

ViewBag.Artlist = artList;

return View();

}

}

}

1. Размещено на www.allbest.ru


Подобные документы

  • Современные тенденции разработки и принципы классификации web-сайтов. Сайт как средство развития бизнеса. Технологии, применяемые при разработке web-сайтов, системы управления контентом. Разработка web-сайта для ЗАО "Кондитерская фабрика "Саратовская".

    дипломная работа [4,1 M], добавлен 01.10.2012

  • Разработка приложения, представляющего собой графический многопользовательский чат с передачей данных в закодированном виде. Алгоритмы обработки данных. Графические диалоговые системы. Тестирование и анализ результатов. Алгоритм декодирования сообщений.

    курсовая работа [830,1 K], добавлен 12.03.2014

  • Описание файловой системы Unix. Работа основных команд ls, cmp, comm, их ключей. Разработка программного продукта, работающего в среде Windows и представляющего собой эмулятора командного процессора операционной системы Unix. Выбор средств реализации.

    курсовая работа [183,0 K], добавлен 29.04.2015

  • Создание программного продукта, предназначенного для автоматизированного учета гостиничных номеров, упрощения работы с базой данных, обеспечения быстрого поиска. Автоматизация резервирования номеров и регистрация постояльцев. Разработка экранных форм.

    курсовая работа [1,8 M], добавлен 08.01.2014

  • Принципы построения распределенных информационных приложений. Распределенное трех уровневое приложение. Необходимость использования приложений в средней школе. Системы управления контентом для создания сайта. Анализ сайтов учителей начальных классов.

    дипломная работа [2,1 M], добавлен 26.05.2014

  • Преимущества и недостатки статических и динамических сайтов. Эволюция и классификация web-приложений. Требования, предъявляемые к системам управления контентом (CMS). Создание структуры сайта, информационное наполнение страниц. Разработка базы данных CMS.

    дипломная работа [856,2 K], добавлен 27.06.2012

  • Разработка сайта, предназначенного для купли-продажи средств передвижения. Характеристика объекта программирования. Требования к исходным текстам и языкам программирования. Интерфейс информационной системы. Проект модуля управления записями о товаре.

    курсовая работа [35,7 K], добавлен 30.01.2016

  • Изучение возможностей среды создания анимированного приложения при помощи Macromedia Flash 8. Разработка автоматизированной системы обучения - программного продукта "Обучающая программа" для быстрого усвоения учащимися принципа сборки системного блока.

    дипломная работа [58,5 M], добавлен 21.11.2010

  • Структура, функциональные возможности программного обеспечения, предназначенного для решения задач синхронизации, анализа и оптимизации выпуска продукции в рамках производства. Программные продукты системы MES. Назначение и функции системы Teamcenter.

    контрольная работа [24,8 K], добавлен 24.11.2013

  • Описание системы управления реляционными базами данных MySQL. Изучение факторов влияющих на пропускную способность в беспроводных сетях. Особенности применения языка Java Script. Методы тестирования web-приложений. Разработка пользовательского интерфейса.

    дипломная работа [2,1 M], добавлен 24.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.