АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Прототип информационно – аналитической системы MCControl для поддержки процесса техобслуживания и ремонта дискретного производства малого производственного предприятия (ТОиР)

Читайте также:
  1. A. Рост цен, вызванный ростом издержек производства.
  2. ERP (Enterprise Resource Planning)- системы управления ресурсами предприятия.
  3. I. Постановка организационных задач предприятия.
  4. I. Электрофильтры. Характеристика процесса электрической очистки газов.
  5. II. Применение аналитической техники к исследованию психических образований
  6. III. СИСТЕМЫ УБЕЖДЕНИЙ И ГЛУБИННЫЕ УБЕЖДЕНИЯ
  7. III. Требования к организации системы обращения с медицинскими отходами
  8. IV Механическое оборудование металлургического производства
  9. Kз - коэффициент зависимости затрат от объема производства продукции.
  10. L.1.1. Однокомпонентные системы.
  11. L.1.2.Многокомпонентные системы (растворы).
  12. SCADA как часть системы автоматического управления

1. Класс «Repository» управляющий объектами в базе данных

using System;

using System.Collections.Generic;

using System.Linq;

using BDE.Client.Shared.Common.Logic.Persistence;

using BDE.Shared.Common.Domain;

using BDE.Shared.Utils;

using Microsoft.Practices.Unity;

 

namespace BDE.Client.Shared.Common.Logic

{

public interface IRepository<T>: IReadRepository<T>, IAsyncDomainStore<T>

where T: DomainObject

{

T CreateNew();

}

 

/// <summary>

/// Caching repository wrapping <see cref="IAsyncDomainStore{T}" />

/// </summary>

public class Repository<T>: ReadOnlyBaseRepository<T>, IRepository<T>

where T: DomainObject

{

[Dependency]

public IAsyncDomainStore<T> WrappedStore

{

private get { return (IAsyncDomainStore<T>)Store; }

set { Store = value; }

}

 

public virtual T CreateNew()

{

return ObjectCloneHelper.CreateProxy<T>();

}

 

#region IDomainPersistenceStore<T> Members

 

#region Async save methods

 

public virtual IAsyncResult BeginSaveObject(T obj, AsyncCallback saveCompletedCallback, object state)

{

T clone = ObjectCloneHelper.CloneReal(obj);

clone.TrimStringProperties();

return WrappedStore.BeginSaveObject(clone, saveCompletedCallback, state);

}

 

public T EndSaveObject(IAsyncResult asyncResult)

{

T result = (T)ObjectCloneHelper.CloneProxy(WrappedStore.EndSaveObject(asyncResult));

 

var cachedResult = AddToCache(result);

 

OnSaveObjectCompleted(cachedResult);

 

return cachedResult;

}

 

protected virtual void OnSaveObjectCompleted(T obj)

{

}

 

/// <summary>

/// Begins asynchronous group save operation on set of object of type <typeparamref name="T" />

/// </summary>

public virtual IAsyncResult BeginSaveObjects(IEnumerable<T> objs, AsyncCallback saveCompletedCallback, object state)

{

List<T> realObjs = objs

.Select(obj => (T)ObjectCloneHelper.CloneReal(obj))

.Do(obj => obj.TrimStringProperties())

.ToList();

 

return WrappedStore.BeginSaveObjects(realObjs, saveCompletedCallback, state);

}

 

/// <summary>

/// Ends initiated asynchronous group save operation

/// </summary>

public IList<T> EndSaveObjects(IAsyncResult asyncResult)

{

IList<T> originalCollection = WrappedStore.EndSaveObjects(asyncResult);

 

foreach(T obj in originalCollection)

{

OnSaveObjectCompleted(obj);

}

 

return originalCollection.Select(obj => (T)ObjectCloneHelper.CloneProxy(obj)).Select(AddToCache).ToList();

}

 

#endregion

 

#region Async delete methods

 

public IAsyncResult BeginDeleteObject(ObjectKey key, AsyncCallback deleteCompletedCallback, object state)

{

return WrappedStore.BeginDeleteObject(key, deleteCompletedCallback, state);

}

 

public ObjectKey EndDeleteObject(IAsyncResult asyncResult)

{

ObjectKey result = WrappedStore.EndDeleteObject(asyncResult);

 

RemoveFromCache(result);

 

return result;

}

 

public IAsyncResult BeginDeleteObjects(IEnumerable<ObjectKey> keys, AsyncCallback saveCompletedCallback, object state)

{

return WrappedStore.BeginDeleteObjects(keys, saveCompletedCallback, state);

}

 

public IList<ObjectKey> EndDeleteObjects(IAsyncResult asyncResult)

{

IList<ObjectKey> result = WrappedStore.EndDeleteObjects(asyncResult);

 

foreach (var key in result)

{

RemoveFromCache(key);

}

 

return result;

}

 

public IAsyncResult BeginDeleteObjectsByParamInfo(ParamInfoBase paramInfo, AsyncCallback deleteCompliteCallback, object state)

{

return WrappedStore.BeginDeleteObjectsByParamInfo(paramInfo, deleteCompliteCallback, state);

}

 

public IList<ObjectKey> EndDeleteObjectsByParamInfo(IAsyncResult asyncResult)

{

return WrappedStore.EndDeleteObjectsByParamInfo(asyncResult);

}

 

#endregion

 

#endregion

}

}

 

2. Основное окно приложения, описанное на языке разметки xaml.

<Window x:Class="BDE.Client.WPF.PROtool.View.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="{Binding Title}"

Icon="/BDE.Client.WPF.PROtool.View;component/Resources/Images/PROtoolIcon.png"

xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"

xmlns:helpers="clr-namespace:BDE.Client.WPF.PROtool.View.Helpers"

xmlns:viewModelMapping="http://schemas.dmdevelopment.ru/view/viewModelMapping/"

xmlns:viewBehavior="http://schemas.dmdevelopment.ru/view/behavior/"

xmlns:controls="http://schemas.dmdevelopment.ru/controls/"

xmlns:view="http://schemas.dmdevelopment.ru/view"

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

xmlns:controlsConvert="http://schemas.dmdevelopment.ru/controls/convert/"

>

 

<Window.Resources>

<helpers:ResourceHelper x:Key="ResourceHelper" />

<view:ViewModelContextTabConverter x:Key="ViewModelContextTabConverter" />

<controlsConvert:EnumerableToCollectionView x:Key="EnumerableToCollectionViewConverter" />

<view:RibbonButtonVisibilityConverter x:Key="RibbonButtonVisibilityConverter" />

</Window.Resources>

 

<telerik:RadBusyIndicator IsBusy="{Binding IsAsyncOperationInProgress}" BusyContent="{Binding Resources.MainView_ServerOperationInProgressText, Source={StaticResource ResourceHelper}}">

<DockPanel>

 

<controls:ContextedRibbonBar x:Name="Ribbon" ApplicationButtonVisibility="Collapsed"

CollapseThresholdSize="Empty"

Context="{Binding TabViewModelManager.SelectedViewModel, Converter={StaticResource ViewModelContextTabConverter}}"

TitleBarVisibility="Collapsed" DockPanel.Dock="Top">

<controls:ContextedRibbonBar.TabStripAdditionalContent>

<StackPanel Orientation="Horizontal">

<TextBlock Margin="0,0,4,0" Text="{Binding CurrentUserName}" VerticalAlignment="Center" />

<telerik:RadRibbonButton Content="{Binding Resources.MainView_LogoutText, Source={StaticResource ResourceHelper}}"

Command="{Binding LogoutCommand}" VerticalAlignment="Center"/>

</StackPanel>

</controls:ContextedRibbonBar.TabStripAdditionalContent>

 

<telerik:RadRibbonTab Header="{Binding Resources.MainView_MasterDataTabHeader, Source={StaticResource ResourceHelper}}">

<telerik:RadRibbonGroup Header="{Binding Resources.MainView_DataGroupHeader, Source={StaticResource ResourceHelper}}">

 

<telerik:RadRibbonButton Command="{Binding OpenCustomersGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_CustomersButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/CustomerIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenDocumentsGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_DocumentsButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/DocumentIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenToolsGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_ToolsButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/ToolIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenModelsGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_ModelsButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/ModelIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenToolMachinesGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_ToolMachinesButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/ToolMachineIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenMaintenancePlansGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_MaintenancePlansButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/MaintenancePlanIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenRepairsGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_RepairsButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/RepairIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenRepairGroundGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_RepairGroundsButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/RepairGroundIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenToolStatusGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_ToolStatusesButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/ToolStatusIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenToolmakerGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_ToolmakersButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/ToolmakerIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenItemGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_ItemsButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/ItemIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenPeripheryGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_PeripheriesButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/PeripheryIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<telerik:RadRibbonButton Command="{Binding OpenToolTypeGridTabCommand}" Size="Large" Text="{Binding Resources.MainView_ToolTypesButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.WPF.PROtool.View;component/Resources/Images/ToolTypeIcon.png"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.MasterDataRead' }" />

 

<i:Interaction.Behaviors>

<viewBehavior:RibbonGroupVisibilityBehavior />

</i:Interaction.Behaviors>

</telerik:RadRibbonGroup>

 

<telerik:RadRibbonGroup Header="{Binding Resources.MainView_HelpGroupHeader, Source={StaticResource ResourceHelper}}">

 

<!--<telerik:RadRibbonButton Command="{Binding OpenSystemInfoTabCommand}" Size="Large" Text="{Binding Resources.MainView_SystemInfoButtonText, Source={StaticResource ResourceHelper}}"

Visibility ="{Binding Converter={StaticResource RibbonButtonVisibilityConverter}, ConverterParameter ='Common.Administration' }"

LargeImage="/BDE.Client.Shared.Common.View;component/Resources/Images/Report2.png"/>-->

 

<telerik:RadRibbonButton Command="{Binding OpenAboutCommand}" Size="Large" Text="{Binding Resources.MainView_AboutButtonText, Source={StaticResource ResourceHelper}}"

LargeImage="/BDE.Client.Shared.Common.View;component/Resources/Images/Info_001.png"/>

 

<i:Interaction.Behaviors>

<viewBehavior:RibbonGroupVisibilityBehavior />

</i:Interaction.Behaviors>

</telerik:RadRibbonGroup>

</telerik:RadRibbonTab>

 

</controls:ContextedRibbonBar>

 

<telerik:RadTabControl Align="Right" TabStripPlacement="Left" ItemsSource="{Binding TabViewModelManager.ViewModels}"

SelectedItem="{Binding TabViewModelManager.SelectedViewModel, Mode=TwoWay}" TabOrientation="Vertical">

<telerik:RadTabControl.ItemContainerStyle>

<Style TargetType="telerik:RadTabItem">

<Setter Property="ContentTemplate">

<Setter.Value>

<DataTemplate>

<viewModelMapping:ViewModelPresenter ViewModel="{Binding}" />

</DataTemplate>

</Setter.Value>

</Setter>

<Setter Property="HeaderTemplate">

<Setter.Value>

<DataTemplate>

<Grid>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="Auto" />

<ColumnDefinition Width="*" />

</Grid.ColumnDefinitions>

 

<telerik:RadRibbonButton Command="{Binding CloseTabCommand}"

SmallImage="/BDE.Client.Shared.Common.View;component/Resources/Images/errorMessage.png"

Grid.Column="0" />

<ContentPresenter Content="{Binding Title}" VerticalAlignment="Center" Grid.Column="1" />

</Grid>

</DataTemplate>

</Setter.Value>

</Setter>

<Setter Property="HorizontalContentAlignment" Value="Stretch" />

</Style>

</telerik:RadTabControl.ItemContainerStyle>

</telerik:RadTabControl>

</DockPanel>

</telerik:RadBusyIndicator>

 

</Window>

 

3. Окно входа в программу.

 

 

Окно входа в программу (рисунок 1)

Заключение

В ходе курсового проектирования были сформированы умения и получены навыки разработки программного обеспечения, работы с паттернами проектирования.

Были выполнены все задания курсового проектирования:

– получены навыки работы в программных пакетах Microsoft Visual Studio 2012, Microsoft SQL Server 2012, VisualHG;

– получены навыки работы с некоторыми шаблонами проектирования;

– разработан прототип информационно-аналитической системы;

– оформлена пояснительная записка и документация по курсовому проекту.

Список использованных источников

1 Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования. – СПб: «Питер», 2007. — С. 366. — ISBN 978-5-469-01136-1

2 Стив Макконнелл Совершенный код. — СПб.: Питер, 2005. — С. 896. — ISBN 5-7502-0064-7

3 http://ru.wikipedia.org/

4 http://msdn.microsoft.com/

 


 


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.028 сек.)