|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Прототип информационно – аналитической системы MCControl для поддержки процесса техобслуживания и ремонта дискретного производства малого производственного предприятия (ТОиР)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/
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.027 сек.) |