/// <summary>
        /// Creates notification message for user.
        /// </summary>
        /// <param name="userConnection">Instance of user connection.</param>
        /// <param name="config">Configuration object for notification message.</param>
        public virtual void CreateReminding(UserConnection userConnection, RemindingConfig config)
        {
            ValidateConfig(config);
            DateTime  userDateTime    = GetUserDateTime(userConnection, config);
            string    subject         = TruncateString(config.Description, SubjectCaptionTypeStringLength);
            string    description     = TruncateString(config.Description, DescriptionTypeStringLength);
            Reminding remindingEntity = GetRemindingEntity(userConnection, config);

            remindingEntity.SetColumnValue("ModifiedOn", userDateTime);
            remindingEntity.SetColumnValue("AuthorId", config.AuthorId);
            remindingEntity.SetColumnValue("ContactId", config.ContactId);
            remindingEntity.SetColumnValue("SourceId", config.SourceId);
            remindingEntity.SetColumnValue("RemindTime", userDateTime);
            remindingEntity.SetColumnValue("Description", description);
            remindingEntity.SetColumnValue("SubjectCaption", subject);
            remindingEntity.SetColumnValue("SysEntitySchemaId", config.EntitySchemaUId);
            remindingEntity.SetColumnValue("SubjectId", config.SubjectId);
            remindingEntity.SetColumnValue("NotificationTypeId", config.NotificationTypeId);
            remindingEntity.SetColumnValue("LoaderId", config.LoaderId);
            remindingEntity.SetColumnValue("SenderId", config.SenderId);
            remindingEntity.SetColumnValue("IsNeedToSend", config.IsNeedToSend);
            remindingEntity.SetColumnValue("PopupTitle", config.PopupTitle);
            remindingEntity.SetColumnValue("Config", config.Config != null
                                ? JsonConvert.SerializeObject(config.Config)
                                : string.Empty);
            remindingEntity.Save();
        }
        /// <summary>
        /// Creates reminding whith custom text.
        /// </summary>
        /// <param name="remindingText">Text to be shown in reminding</param>
        protected virtual void CreateReminding(string remindingText)
        {
            Reminding remindingEntity = new Reminding(_userConnection);
            var       manager         = _userConnection.GetSchemaManager("EntitySchemaManager");
            var       targetSchema    = manager.FindItemByName(_schemaName);

            manager = _userConnection.GetSchemaManager("ClientUnitSchemaManager");
            var      loaderSchema  = manager.FindItemByName("DuplicatesSearchNotificationTargetLoader");
            string   subject       = _schemaName;
            DateTime userDateTime  = _userConnection.CurrentUser.GetCurrentDateTime();
            Guid     userContactId = _userConnection.CurrentUser.ContactId;
            var      condition     = new Dictionary <string, object> {
                {
                    "Author", userContactId
                }, {
                    "Contact", userContactId
                }, {
                    "Source", RemindingConsts.RemindingSourceAuthorId
                }, {
                    "SubjectCaption", subject
                }, {
                    "SysEntitySchema", targetSchema.UId
                },
            };
            string description = GetRemindingDescription(_userConnection);
            string hash        = GetRemindingHash(condition);

            if (!string.IsNullOrEmpty(remindingText))
            {
                subject = GetRemindingSubject(_userConnection, _schemaName, remindingText);
            }
            if (!remindingEntity.FetchFromDB(new Dictionary <string, object> {
                { "Hash", hash }
            }, false))
            {
                remindingEntity.SetDefColumnValues();
            }
            remindingText = TruncateString(remindingText, DescriptionTypeStringLength);
            subject       = TruncateString(subject, SubjectCaptionTypeStringLength);
            remindingEntity.SetColumnValue("ModifiedOn", userDateTime);
            remindingEntity.SetColumnValue("AuthorId", userContactId);
            remindingEntity.SetColumnValue("ContactId", userContactId);
            remindingEntity.SetColumnValue("SourceId", RemindingConsts.RemindingSourceAuthorId);
            remindingEntity.SetColumnValue("RemindTime", userDateTime);
            remindingEntity.SetColumnValue("Description", description);
            remindingEntity.SetColumnValue("SubjectCaption", subject);
            remindingEntity.SetColumnValue("NotificationTypeId", RemindingConsts.NotificationTypeNotificationId);
            remindingEntity.SetColumnValue("Hash", hash);
            remindingEntity.SetColumnValue("SysEntitySchemaId", targetSchema.UId);
            remindingEntity.SetColumnValue("LoaderId", loaderSchema.UId);
            remindingEntity.SetColumnValue("IsRead", false);
            remindingEntity.Save();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates user remindings.
        /// </summary>
        /// <param name="userConnection">User connection instance.</param>
        /// <param name="entity">Object on which reminding is created.</param>
        /// <param name="description">Reminding text.</param>
        /// <param name="schemaCaption">Custom reminding header.</param>
        public static void CreateReminding(
            UserConnection userConnection, Entity entity, string description, string schemaCaption = "")
        {
            Reminding remindingEntity = new Reminding(userConnection);
            string    subject         = entity.PrimaryDisplayColumnValue;
            DateTime  userDateTime    = userConnection.CurrentUser.GetCurrentDateTime();
            Guid      userContactId   = userConnection.CurrentUser.ContactId;
            var       condition       = new Dictionary <string, object> {
                {
                    "Author", userContactId
                }, {
                    "Contact", userContactId
                }, {
                    "Source", RemindingConsts.RemindingSourceAuthorId
                }, {
                    "SubjectCaption", subject
                }, {
                    "SysEntitySchema", entity.Schema.UId
                },
            };
            string hash = GetRemindingHash(condition);

            if (!string.IsNullOrEmpty(description))
            {
                subject = string.Format("{0} \"{1}\" {2}",
                                        string.IsNullOrEmpty(schemaCaption) ? entity.Schema.Caption.Value : schemaCaption,
                                        entity.PrimaryDisplayColumnValue,
                                        description);
            }
            if (!remindingEntity.FetchFromDB(new Dictionary <string, object> {
                { "Hash", hash }
            }, false))
            {
                remindingEntity.SetDefColumnValues();
            }
            description = TruncateString(subject, DescriptionTypeStringLength);
            subject     = TruncateString(subject, SubjectCaptionTypeStringLength);
            remindingEntity.SetColumnValue("ModifiedOn", userDateTime);
            remindingEntity.SetColumnValue("AuthorId", userContactId);
            remindingEntity.SetColumnValue("ContactId", userContactId);
            remindingEntity.SetColumnValue("SourceId", RemindingConsts.RemindingSourceAuthorId);
            remindingEntity.SetColumnValue("RemindTime", userDateTime);
            remindingEntity.SetColumnValue("Description", description);
            remindingEntity.SetColumnValue("SubjectCaption", subject);
            remindingEntity.SetColumnValue("Hash", hash);
            remindingEntity.SetColumnValue("SysEntitySchemaId", entity.Schema.UId);
            remindingEntity.SetColumnValue("SubjectId", entity.PrimaryColumnValue);
            remindingEntity.Save();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates user remindings.
        /// </summary>
        /// <param name="userConnection">User connection instance.</param>
        /// <param name="description">Reminding text.</param>
        /// <param name="sysEntitySchemaId">UId of entity schema on which reminding is created.</param>
        public static void CreateReminding(UserConnection userConnection, string description, Guid sysEntitySchemaId)
        {
            DateTime  userDateTime    = userConnection.CurrentUser.GetCurrentDateTime();
            Guid      userContactId   = userConnection.CurrentUser.ContactId;
            Reminding remindingEntity = new Reminding(userConnection);

            remindingEntity.SetDefColumnValues();
            string subject = TruncateString(description, SubjectCaptionTypeStringLength);

            description = TruncateString(description, DescriptionTypeStringLength);
            remindingEntity.SetColumnValue("AuthorId", userContactId);
            remindingEntity.SetColumnValue("ContactId", userContactId);
            remindingEntity.SetColumnValue("SourceId", RemindingConsts.RemindingSourceAuthorId);
            remindingEntity.SetColumnValue("RemindTime", userDateTime);
            remindingEntity.SetColumnValue("Description", description);
            remindingEntity.SetColumnValue("SubjectCaption", subject);
            remindingEntity.SetColumnValue("SysEntitySchemaId", sysEntitySchemaId);
            remindingEntity.SetColumnValue("SubjectId", Guid.Empty);
            remindingEntity.Save();
        }
        private void SaveReminding(string schemaName, string infoMessage, string description, Guid?recordId = null)
        {
            var          currentUser  = UserConnection.CurrentUser;
            var          remindTime   = currentUser.GetCurrentDateTime();
            EntitySchema entitySchema = UserConnection.EntitySchemaManager.FindInstanceByName(schemaName);
            Reminding    reminding    = new Reminding(UserConnection);

            reminding.SetDefColumnValues();
            reminding.AuthorId   = currentUser.ContactId;
            reminding.SourceId   = RemindingConsts.RemindingSourceAuthorId;
            reminding.ContactId  = currentUser.ContactId;
            reminding.RemindTime = remindTime;
            reminding.PopupTitle = infoMessage;
            if (recordId != null)
            {
                reminding.SubjectId = recordId.Value;
            }
            reminding.SubjectCaption    = PrepareRemindingSubjectCaption(description);
            reminding.SysEntitySchemaId = entitySchema.UId;
            reminding.Save();
        }
Ejemplo n.º 6
0
 private void CreateRemindings(UserConnection userConnection, List <Guid> recipientIds,
                               string remindingSubjectCaption)
 {
     foreach (var recipientId in recipientIds)
     {
         var currentUser = userConnection.CurrentUser;
         var remindTime  = currentUser.GetCurrentDateTime();
         var reminding   = new Reminding(userConnection);
         reminding.SetDefColumnValues();
         reminding.AuthorId          = currentUser.ContactId;
         reminding.SourceId          = RemindingConsts.RemindingSourceAuthorId;
         reminding.ContactId         = recipientId;
         reminding.RemindTime        = remindTime;
         reminding.Description       = GetLczString(userConnection, "ActiveContactsNotificationDescription");
         reminding.LoaderId          = _actualizeActiveContactsProcessUId;
         reminding.SysEntitySchemaId = _remindingBulkEmailSysEntitySchemaId;
         reminding.SubjectCaption    = remindingSubjectCaption;
         reminding.SetColumnValue("NotificationTypeId", RemindingConsts.NotificationTypeNotificationId);
         reminding.Save();
     }
 }