public AppletItemDTO Save(AppletItemDTO appletResultDTO) { if (appletResultDTO == null) { throw new ArgumentNullException(nameof(appletResultDTO)); } ValidationResult validationResult; if (this.IsValid(appletResultDTO, out validationResult)) { var sessionModel = this.AppletItemModel; var isTransient = appletResultDTO.appletItemId == 0; var appletItem = isTransient ? null : sessionModel.GetOneById(appletResultDTO.appletItemId).Value; appletItem = this.ConvertDto(appletResultDTO, appletItem); sessionModel.RegisterSave(appletItem, true); //int companyId = appletItem.With(x => x.SubModuleItem).With(x => x.SubModuleCategory).With(x => x.User).With(x => x.Company.Id); //IoC.Resolve<RealTimeNotificationModel>().NotifyClientsAboutChangesInTable<AppletItem>(NotificationType.Update, companyId, appletItem.Id); return(new AppletItemDTO(appletItem)); } var error = this.GenerateValidationError(validationResult); this.LogError("AppletItem.Save", error); throw new FaultException <Error>(error, error.errorMessage); }
private AppletItem ConvertDto(AppletItemDTO itemDTO, AppletItem instance) { instance = instance ?? new AppletItem(); instance.AppletName = itemDTO.appletName; instance.DocumentXML = itemDTO.documentXML; instance.SubModuleItem = itemDTO.subModuleItemId.HasValue ? this.SubModuleItemModel.GetOneById(itemDTO.subModuleItemId.Value).Value : null; if (instance.SubModuleItem != null) { instance.SubModuleItem.DateModified = DateTime.Now; this.SubModuleItemModel.RegisterSave(instance.SubModuleItem); } return(instance); }