public SNGroupDiscussionDTO Save(SNGroupDiscussionDTO discussion) { if (discussion == null) { throw new ArgumentNullException(nameof(discussion)); } ValidationResult validationResult; if (IsValid(discussion, out validationResult)) { var model = this.SNGroupDiscussionModel; bool isTransient = discussion.snGroupDiscussionId == 0; var instance = isTransient ? null : model.GetOneById(discussion.snGroupDiscussionId).Value; instance = this.ConvertDto(discussion, instance); model.RegisterSave(instance, true); this.UpdateCache(); //IoC.Resolve<RealTimeNotificationModel>().NotifyClientsAboutChangesInTable<AppletResult>(NotificationType.Update, discussion.companyId, instance.Id); return(new SNGroupDiscussionDTO(instance)); } var error = this.GenerateValidationError(validationResult); LogError("SNGroupDiscussion.Save", error); throw new FaultException <Error>(error, error.errorMessage); }
private SNGroupDiscussion ConvertDto(SNGroupDiscussionDTO groupDiscussion, SNGroupDiscussion instance) { instance = instance ?? new SNGroupDiscussion(); instance.GroupDiscussionTitle = groupDiscussion.groupDiscussionTitle; instance.GroupDiscussionData = groupDiscussion.groupDiscussionData; if (instance.IsTransient()) { instance.DateCreated = DateTime.Now; } instance.DateModified = DateTime.Now; instance.ACSessionId = this.ACSessionModel.GetOneById(groupDiscussion.acSessionId).Value.With(x => x.Id); instance.IsActive = groupDiscussion.isActive; return(instance); }