/// <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(); }
/// <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 void DeleteNotActualAnniversaryRemindings(string anniversarySchemaName) { var notActualRemindingsList = new List <Guid>(); var notActualRemindingsQuery = GetNotActualAnniversaryRemindingQuery(anniversarySchemaName); notActualRemindingsQuery.ExecuteReader(r => notActualRemindingsList.Add(r.GetColumnValue <Guid>("Id"))); foreach (var remindingId in notActualRemindingsList) { var reminding = new Reminding(_userConnection); if (reminding.FetchFromDB(remindingId)) { reminding.Delete(); } } }
private bool FindRecordByHash(Reminding entity, string hash) { return(entity.FetchFromDB(new Dictionary <string, object> { { "Hash", hash } }, false)); }