Диплом: Автоматизация контроля исполнения задач по проектам в ООО «Норс Студиос»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
107
Исходя их вышесказанного можно сказать, что поставленные в рамках
данной дипломной работы задачи были решены в полном объеме.
Разработанное решение является не только экономически эффективным,
но и за счет методов и использованных парадигм крайне гибкая в дальнейшей
разработке. Данное обстоятельство является крайне позитивным, поскольку
целесообразно продолжать развитие данного продукта и в дальнейшем.
Расширение функционала системы обеспечит в дальнейшем повышение
эффективности использования ресурсов компании "Норс Студиос".
108
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Head First C#, 3rd Edition; Jennifer Greene, Andrew Stellman, O'Reilly Media,
Inc. 2020 - 696с
2. Совершеннный код; Стив Макконнелл; БХВ, ООО 2019 - 896с
3. Паттерны Проектирования; Эрик Фриман, Элизабет Фриман, Кэтти
Сьерра, Берт Бейтс; ООО Издательство "Питер" 2017 - 656с
4. Responsive Web Design with HTML5 and CSS, 3rd Edition; Ben Frain; Packt
Publishing 2017 - 410с
5. PHP и MYSQL от новичка к профессионалу; Кевин Янк; Эксмо 2018 - 384c
6. THE HOW AND WHY OF MINIMALISM; режим доступа:
https://www.webdesignerdepot.com/2013/07/the-how-and-why-of-
minimalism/
7. Corporate Identity; режим доступа:
https://en.wikipedia.org/wiki/Corporate_identity
8. Искусство автономного тестирования с примерами на С#; Рой Ошероув;
МК Пресс, 2019 - 360с
9. Пишем максимально эффективный тестовый кейс; режим доступа:
https://habr.com/ru/post/246463/
10. Dark mode is easier on your eyes - and battery | Popular Science; режим
доступа: https://www.popsci.com/night-dark-mode-design/
11. Software as a service; режим доступа:
https://en.wikipedia.org/wiki/Software_as_a_service
12. Цены на Jira Стоимость месячной и годовой подписки для одного
пользователя; режим доступа:
https://www.atlassian.com/ru/software/jira/pricing
13. Купить Rider: цены и лицензирование, скидки — подписка на JetBrains
Toolbox; режим доступа: https://www.jetbrains.com/ru-
ru/rider/buy/#commercial?billing=monthly
109
ПРИЛОЖЕНИЯ
Приложение 1. Фрагмент программного кода Mabord
//
// Copyright 2020 © North Studios AB
//This file is part of Mabord™.
//All rights reserved. Unauthorized copying of this file, via any medium is strictly
prohibited
//Proprietary and confidential
// Written by: Vladimir Zotkin
//
using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
using AppSettings;
using MabordObjects;
namespace MabordDBS
{
class Database
{
private MySqlConnection connection;
private MySqlCommand command;
private bool isConnected = false;
private MySqlDataReader data;
private Database() {}
private static Database database;
110
public static Database Singleton
{
get
{
if (database is null)
{
database = new Database();
}
return database;
}
}
public bool Connect()
{
Console.WriteLine("Attempting to connect to a Database");
string connectionPath =
string.Format("SERVER={0};PORT={1};UID={2};PASSWORD={3};DATABASE
=mabord;",
SettingsManager.GetSetting(Settings.DATABASE_IP),
SettingsManager.GetSetting(Settings.DATABASE_PORT),
SettingsManager.GetSetting(Settings.DATABASE_USER),
SettingsManager.GetSetting(Settings.DATABASE_PASSWORD));
connection = new MySqlConnection(connectionPath);
command = new MySqlCommand() { Connection = connection };
try
111
{
connection.Open();
isConnected = true;
Console.WriteLine("Connection estabilished");
return true;
}
catch (Exception e)
{
Console.WriteLine("Cannot estabilished connection to database: {0}",
e.Message);
return false;
}
}
public bool Disconnect()
{
if (isConnected)
{
connection.Close();
isConnected = false;
connection = null;
Console.WriteLine("Connection to a database is closed");
return true;
}
else
{
Console.WriteLine("Cannot disconnect from a database if there is no
connection");
112
}
return false;
}
private bool ReadRequest(string request)
{
if (!isConnected)
{
Console.WriteLine("Error: Trying to add dataset without connection to the
database");
return false;
}
try
{
command.CommandText = request;
data = command.ExecuteReader();
return true;
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.Message);
return false;
}
}
private bool WriteRequest(string request)
{
113
if (!isConnected)
{
Console.WriteLine("Error: Trying to add dataset without connection to the
database");
return false;
}
try
{
command.CommandText = request;
command.ExecuteNonQuery();
return true;
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.Message);
return false;
}
}
private void ClearRequest()
{
if (data != null)
{
data.Close();
data.Dispose();
data = null;
}
114
}
public void ClearTheRequest()
{
ClearRequest();
Console.WriteLine("Request for database is cleared");
}
private bool CheckObjectForNull(object o)
{
if (o is null)
{
Console.WriteLine("Error: trying add a empty dataset");
return false;
}
else
return true;
}
public bool AddProject(Project project)
{
if (CheckObjectForNull(project))
{
string request = string.Format("INSERT INTO project (Name, Description)
VALUES('{0}','{1}')", project.Name, project.Description);
return WriteRequest(request);
}
return false;
}
115
public bool UpdateProject(Project project)
{
if (CheckObjectForNull(project))
{
string request = string.Format("UPDATE project SET Name = '{1}',
Description = '{2}' WHERE idproject = {0}", project.Id, project.Name,
project.Description);
return WriteRequest(request);
}
return false;
}
public bool RemoveProject(Project project)
{
if (CheckObjectForNull(project))
{
string request = string.Format("DELETE FROM project WHERE idproject
= {0}", project.Id);
return WriteRequest(request);
}
return false;
}
public Project GetProject(int id)
{
string request = string.Format("SELECT * FROM project WHERE idproject =
{0}", id);
116
ReadRequest(request);
if (data != null && data.HasRows)
{
while (data.Read())
{
try
{
return new Project((int)data["idproject"], (string)data["Name"],
(string)data["Description"], new List<Quarter>());
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.Message);
return null;
}
finally
{
ClearRequest();
}
}
}
return null;
}
public Project[] GetProjects()
{
ReadRequest("SELECT * FROM project");
List<Project> projects = new List<Project>();

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")