public virtual void CreateReminding() { if (ForecastId == Guid.Empty || CurrentUserContactId == Guid.Empty) { return; } string forecastName = string.Empty; var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Forecast"); string columnName = esq.AddColumn("Name").Name; IEntitySchemaQueryFilterItem filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal, esq.RootSchema.GetPrimaryColumnName(), ForecastId); esq.Filters.Add(filter); EntityCollection entities = esq.GetEntityCollection(UserConnection); if (entities.Count > 0) { forecastName = entities[0].GetTypedColumnValue <string>(columnName); } Reminding reminding = new Reminding(UserConnection); reminding.SetDefColumnValues(); reminding.AuthorId = UserConnection.CurrentUser.ContactId; reminding.SourceId = RemindingConsts.RemindingSourceAuthorId; reminding.ContactId = CurrentUserContactId; reminding.RemindTime = DateTime.UtcNow; reminding.Description = string.Format(RemindingDescription, forecastName); reminding.SubjectCaption = RemindingSubjectCaption; reminding.SubjectId = ForecastId; reminding.SysEntitySchemaId = ForecastConsts.ForecastEntitySchemaUId; reminding.Save(); }
/// <inheritdoc cref="IDeduplicationRemindingRepository.CreateReminding"/>> public void CreateReminding(UserConnection userConnection, string remindingDesription, string remindingSubject, string schemaName) { Reminding remindingEntity = new Reminding(userConnection); var manager = userConnection.GetSchemaManager("EntitySchemaManager"); var targetSchema = manager.FindItemByName(schemaName); manager = userConnection.GetSchemaManager("ClientUnitSchemaManager"); var loaderSchema = manager.FindItemByName("DuplicatesSearchNotificationTargetLoader"); var 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 = remindingDesription; string hash = GetRemindingHash(condition); subject = remindingSubject; if (!remindingEntity.FetchFromDB(new Dictionary <string, object> { { "Hash", hash } }, false)) { remindingEntity.SetDefColumnValues(); } 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> /// ####### ########### ############. /// </summary> /// <param name="userConnection">######### ################# ###########.</param> /// <param name="entity">######, ## ######## ##### ####### ###########.</param> /// <param name="description">##### ###########.</param> /// <param name="schemaCaption">######### ######### ###### ###########.</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(); }
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(); }
public void RemindingFill(int id) { ClierRemindings(id); //Reminders of Field Culture. var fieldtypes = new List<string> { "Bread", "Leguminous", "Tuber", "Spicy", "Melon", "Olive", "Silage", "Fodder", "Fodder", "Forage" }; var newremind = new Reminding(); var user = _usersRepository.Get().FirstOrDefault(i => i.Id == id); foreach (var profit in fieldtypes.Select(type => _growingFieldProfitsRepository.Get().Where(i => i.User.Id == id && i.GrowingType.Name == type).ToList()).SelectMany(fieldprofits => fieldprofits.Where(profit => profit.ExpirationDate != null). Where(profit => DateTime.Now > profit.ExpirationDate.Value.AddDays(-21) && profit.Remind))) { newremind.Name = profit.Name; newremind.ExpirationDate = profit.ExpirationDate; newremind.User = user; if (!IsReminding(profit.Name, profit.ExpirationDate)) _remindingRepository.Add(newremind); } //Reminders of Fruit Culture. var fruittypes = new List<string> { "Bergamot", "Kepel", "Finik", "Crataegus", "Tern", "Strawberry", }; foreach (var profit in fruittypes.Select(type => _growingFruitProfitsRepository.Get().Where(i => i.User.Id == id && i.GrowingType.Name == type).ToList()).SelectMany(fruitprofits => fruitprofits.Where(profit => profit.ExpirationDate != null). Where(profit => DateTime.Now > profit.ExpirationDate.Value.AddDays(-21) && profit.Remind))) { newremind.Name = profit.Name; newremind.ExpirationDate = profit.ExpirationDate; newremind.User = user; if (!IsReminding(profit.Name, profit.ExpirationDate)) _remindingRepository.Add(newremind); } //Reminders of Breeding. var breendingtypes = new List<string> { "Сamel", "Goat", "Horse", "Pony", "RabbitSkin", "RabbitMeat", "Sheep", "HenMeat", "HenEgg", "Goose", "Quail", "Bee", "TeplovyeFish", "СoldwaterFish", "Swine", "Cattlemeat", "Cattlemilk", "Cattlemixed", "Pinscherdog", "Houndsdog", "Сopsdog", "Borzoidog" }; foreach (var remind in breendingtypes.Select(type => _breedingRemindingRepository.Get().Where(i => i.User.Id == id && i.BreedingType.Name == type).ToList()).SelectMany(breedingprofits => breedingprofits.Where(remind => remind.RemindDate != null). Where(remind => DateTime.Now >= remind.RemindDate && DateTime.Now <= remind.RemindDate.Value.AddDays(Convert.ToInt32(remind.RemindDays))))) { newremind.Name = remind.Text; newremind.ExpirationDate = remind.RemindDate; newremind.User = user; if (!IsReminding(remind.Text, remind.RemindDate)) _remindingRepository.Add(newremind); } }
public void RemindingFill(int id) { ClierRemindings(id); //Reminders of Field Culture. var fieldtypes = new List <string> { "Bread", "Leguminous", "Tuber", "Spicy", "Melon", "Olive", "Silage", "Fodder", "Fodder", "Forage" }; var newremind = new Reminding(); var user = _usersRepository.Get().FirstOrDefault(i => i.Id == id); foreach (var profit in fieldtypes.Select(type => _growingFieldProfitsRepository.Get().Where(i => i.User.Id == id && i.GrowingType.Name == type).ToList()).SelectMany(fieldprofits => fieldprofits.Where(profit => profit.ExpirationDate != null). Where(profit => DateTime.Now > profit.ExpirationDate.Value.AddDays(-21) && profit.Remind))) { newremind.Name = profit.Name; newremind.ExpirationDate = profit.ExpirationDate; newremind.User = user; if (!IsReminding(profit.Name, profit.ExpirationDate)) { _remindingRepository.Add(newremind); } } //Reminders of Fruit Culture. var fruittypes = new List <string> { "Bergamot", "Kepel", "Finik", "Crataegus", "Tern", "Strawberry", }; foreach (var profit in fruittypes.Select(type => _growingFruitProfitsRepository.Get().Where(i => i.User.Id == id && i.GrowingType.Name == type).ToList()).SelectMany(fruitprofits => fruitprofits.Where(profit => profit.ExpirationDate != null). Where(profit => DateTime.Now > profit.ExpirationDate.Value.AddDays(-21) && profit.Remind))) { newremind.Name = profit.Name; newremind.ExpirationDate = profit.ExpirationDate; newremind.User = user; if (!IsReminding(profit.Name, profit.ExpirationDate)) { _remindingRepository.Add(newremind); } } //Reminders of Breeding. var breendingtypes = new List <string> { "Сamel", "Goat", "Horse", "Pony", "RabbitSkin", "RabbitMeat", "Sheep", "HenMeat", "HenEgg", "Goose", "Quail", "Bee", "TeplovyeFish", "СoldwaterFish", "Swine", "Cattlemeat", "Cattlemilk", "Cattlemixed", "Pinscherdog", "Houndsdog", "Сopsdog", "Borzoidog" }; foreach (var remind in breendingtypes.Select(type => _breedingRemindingRepository.Get().Where(i => i.User.Id == id && i.BreedingType.Name == type).ToList()).SelectMany(breedingprofits => breedingprofits.Where(remind => remind.RemindDate != null). Where(remind => DateTime.Now >= remind.RemindDate && DateTime.Now <= remind.RemindDate.Value.AddDays(Convert.ToInt32(remind.RemindDays))))) { newremind.Name = remind.Text; newremind.ExpirationDate = remind.RemindDate; newremind.User = user; if (!IsReminding(remind.Text, remind.RemindDate)) { _remindingRepository.Add(newremind); } } }