Example #1
0
        public async Task <ServiceObjectResult <Panel> > UpdatePanelAsync(Panel updatedPanel)
        {
            var validationResult = await _validationService.ValidateAsync <UpdatePanelValidator, Panel>(updatedPanel);

            if (!validationResult.IsValid)
            {
                return(ServiceObjectResult <Panel> .Error(validationResult));
            }

            var model = await GetPanelByIdAsync(updatedPanel.Id);

            if (model == null)
            {
                return(null);
            }

            if (updatedPanel.Discriminator != model.Discriminator)
            {
                return(null);
            }

            if (updatedPanel.ProjectId.HasValue)
            {
                var project = await _projectRepository.GetByIdAsync(updatedPanel.ProjectId.Value);

                model.Project = project;
            }

            var r = await _panelRepository.UpdateAsync(updatedPanel, model.Id);

            await _panelRepository.SaveAsync();

            return(ServiceObjectResult <Panel> .Ok(r));
        }