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)); }