diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels')
2 files changed, 42 insertions, 2 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs index 71e9fad18..de6772bf8 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs @@ -180,7 +180,6 @@ namespace Tango.MachineStudio.DB.ViewModels ValidationErrors.Clear(); DialogOpenMode = DialogOpenMode.Editing; EditEntity = GetEditableEntity(DialogOpenMode); - //_notification.ShowDialog(DialogOpenMode, this); Messenger.Default.Send(new OpenEntityEditViewMessage(DialogOpenMode, this, typeof(T))); IsDialogOpen = true; } @@ -193,7 +192,18 @@ namespace Tango.MachineStudio.DB.ViewModels ValidationErrors.Clear(); DialogOpenMode = DialogOpenMode.Adding; EditEntity = GetEditableEntity(DialogOpenMode); - //_notification.ShowDialog(DialogOpenMode, this); + + var codeProp = EditEntity.GetType().GetProperty("Code"); + + if (codeProp != null) + { + if (EditEntity.GetDbSet<T>(Adapter.Context).Count() > 0) + { + int lastCode = EditEntity.GetDbSet<T>(Adapter.Context).ToList().Max(x => (int)codeProp.GetValue(x)); + codeProp.SetValue(EditEntity, lastCode + 1); + } + } + Messenger.Default.Send(new OpenEntityEditViewMessage(DialogOpenMode, this, typeof(T))); IsDialogOpen = true; } @@ -208,6 +218,19 @@ namespace Tango.MachineStudio.DB.ViewModels if (ValidationErrors.Count > 0) return; + var codeProp = entity.GetType().GetProperty("Code"); + + if (codeProp != null) + { + int code = (int)codeProp.GetValue(entity); + + if (entity.GetDbSet<T>(Adapter.Context).ToList().Where(x => x.Guid != entity.Guid).Select(x => (int)codeProp.GetValue(x)).Contains(code)) + { + _notification.ShowError("The entity code specified already exists."); + return; + } + } + Messenger.Default.Send(new CloseEntityEditViewMessage()); if (mode == DialogOpenMode.Editing) diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/EventTypesGroupsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/EventTypesGroupsViewVM.cs new file mode 100644 index 000000000..abdb00e32 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/EventTypesGroupsViewVM.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.MachineStudio.Common.Notifications; + +namespace Tango.MachineStudio.DB.ViewModels +{ + public class EventTypesGroupsViewVM : DbTableViewModel<EventTypesGroup> + { + public EventTypesGroupsViewVM(INotificationProvider notification) : base(notification) + { + } + } +} |
