예제 #1
0
        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);
        }
예제 #2
0
        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);
        }