/// <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(); }
private Reminding GetRemindingEntity(UserConnection userConnection, RemindingConfig config) { string hash = config.UpdateExisting ? CreateRemindingHash(config.ContactId, config.AuthorId, config) : string.Empty; EntitySchema remindingSchema = userConnection.EntitySchemaManager.GetInstanceByName("Reminding"); Reminding newReminding = (Reminding)remindingSchema.CreateEntity(userConnection); if (!config.UpdateExisting || !FindRecordByHash(newReminding, hash)) { newReminding.SetDefColumnValues(); } if (config.UpdateExisting) { newReminding.SetColumnValue("Hash", hash); } return(newReminding); }
/// <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 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(); } }
/// <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(); }