示例#1
0
        public IActionResult Create([FromBody] CreateEntityViewModel model)
        {
            try
            {
                using (var connectionRepository = ResolverFactory.Resolve <ConnectionRepository>())
                    using (var entityRepository = ResolverFactory.Resolve <EntityRepository>())
                        using (var attributeRepository = ResolverFactory.Resolve <AttributeRepository>())
                        {
                            var result = entityRepository.Create(new
                            {
                                model.Name,
                                model.Description,
                                model.SourceConnectionId,
                                model.DestinationConnectionId,
                                model.SourceProcessorId,
                                model.DestinationProcessorId
                            });

                            if (model.Options != null && model.Options.Count() > 0)
                            {
                                entityRepository.LinkOptions(result, model.Options);
                            }

                            transaction.Commit();
                            return(Ok(result));
                        }
            }
            catch
            {
                transaction.Rollback();
                throw;
            }
        }
示例#2
0
 private void OnCloseCreateEntityViewModel(CreateEntityViewModel createViewModel)
 {
     if (_createWindows.ContainsKey(createViewModel))
     {
         _createWindows[createViewModel].Close();
         _createWindows.Remove(createViewModel);
     }
 }
示例#3
0
 private void OnOpenCreateEntityViewModel(CreateEntityViewModel createViewModel)
 {
     if (_createWindows.Count < 3)
     {
         CreateWindow createWindow = new CreateWindow();
         createWindow.DataContext = createViewModel;
         _createWindows.Add(createViewModel, createWindow);
         createWindow.Show();
     }
     else
     {
         MessageBox.Show("Trop de fenêtres de création sont ouvertes, veuillez terminer les créations existantes et recommencez!");
     }
 }
示例#4
0
        public IActionResult Update(string id, [FromBody] CreateEntityViewModel model)
        {
            try
            {
                using (var connectionRepository = ResolverFactory.Resolve <ConnectionRepository>())
                    using (var entityRepository = ResolverFactory.Resolve <EntityRepository>())
                        using (var attributeRepository = ResolverFactory.Resolve <AttributeRepository>())
                        {
                            var entity = entityRepository.GetById(id);
                            var state  = entity.State;
                            if (model.Enabled)
                            {
                                state = (state | EntityState.Disabled) ^ EntityState.Disabled;
                            }
                            else
                            {
                                state = state | EntityState.Disabled;
                            }

                            var result = entityRepository.Update(id, new
                            {
                                model.Name,
                                model.Description,
                                model.SourceConnectionId,
                                model.DestinationConnectionId,
                                model.SourceProcessorId,
                                model.DestinationProcessorId,
                                State = state
                            });

                            if (model.Options != null && model.Options.Count() > 0)
                            {
                                entityRepository.LinkOptions(id, model.Options);
                            }

                            transaction.Commit();
                            return(Ok(result));
                        }
            }
            catch
            {
                transaction.Rollback();
                throw;
            }
        }